Есть бинарник(*.bin) скомпилированый из исходного кода написанного на ассемблере. Исходника нету( Надо получиться обратно исходный код. Перепробовал много известный декомпиляторов и дебагеров, но почти все отказались работаь с *.bin. Только с исполняемыми фалами(*.exe, *.elf, *.dll, *.so, *.com). Только когда я переименовал файл в *.com то его смог опознать IDA Pro единственный! Но он опзнал только первые пять строк кода, остальные принял за сегмент кода и вывел переменные. Хотя точно известно что там идёт код!!!!!!!
Может кто то кто сталкивался с такими проблемами поделиться секретом как всётаки дизасемблировать бинарник??????)
10 августа 2009 в 9:01
Есть там код, а таблица разделов занимает 64 байта.
В самом бут-секторе ничего интересного то и нету. Обычно он только находит на диске файлик, грузит его в память и передает ему управление. Ну еще и мессагу могет вывести что все ОК, либо нету файлика.
10 августа 2009 в 9:00
Найди в гуглУ машинные коды инструкций x86 и переводи вручную )) Сам для своего виртуального процессора в hex-редакторе программы пишу. Потому как лень транслятор писать.
10 августа 2009 в 8:04
блин, да найдите вы статью по мбр и будет вам счастье раз, поймёте какой фигнёй вы сейчас страдаете два. ничего там кроме джапа в этом секторе нет иначе бы таблицу разделов запороли.
вот оно, ваше счастье.
//ru.wikipedia.org/wiki/Главная_загрузочная_запись
9 августа 2009 в 13:02
Алиев Дамир спасибо большое!!!
так бы долго сам копался)
9 августа 2009 в 13:01
Демо… На офф.сайте гриться что
it will only load 80×86 & ARM PE files
У мну полная, а так при загрузке указываем что это бинарник, сегмент – 0х0000000, оффсет – 0х7C00. Тыркаем ОК и она спрашивает как его иметь, как 32-х битный ? Грим что нет, и имеем его как 16-битный. Далее я нинаю как у Вас, но у меня надо поставить курсор на первую инструкцию и тыркнуть кнопарь Convert to instruction ну или бкуву С на клаве, и понеслася…
Что касается бутявок под разные ОС, мож стоит просто почитать как загрузка то происходит ? И структуру на сырцах изучить…
//sysbin.com/
Сайт на русской мове.
9 августа 2009 в 13:00
а как указать IDA Pro все эти тонкости????
в демо версии или free-версии IDA-Pro это можно настроить???
9 августа 2009 в 12:02
IDA determines the default processor using the input file extension and the contents of the input file. The table which describes the input file extensions and the corresponding processor types is located in IDA.CFG file and looks like:
DEFAULT_PROCESSOR = {
/* Extension Processor */
"com" : "8086"// IDA will try the specified
"exe" : "80386r"// extensions if no extension is
"dll" : "80386r"// given.
"drv" : "80386r"
"o" : "68000"
"prc" : "68000" // PalmPilot programs
"axf" : "arm710a"
"h68" : "68000" // MC68000 for *.H68 files
"i51" : "8051"// i8051 for *.I51 files
"sav" : "pdp11" // PDP-11for *.SAV files
"rom" : "z80" // Z80 for *.ROM files
"cla" : "java"// Java classes
"class":"java"// Java classes
"s19":"6811"
"*":"80386p"// Default processor
}
FT_EXE//MS DOS EXE File
FT_COM//MS DOS COM File
FT_BIN//Binary File
FT_DRV//MS DOS Driver
FT_WIN//New Executable (NE)
FT_HEX//Intel Hex Object File
FT_MEX//MOS Technology Hex Object File
FT_LX //Linear Executable (LX)
FT_LE //Linear Executable (LE)
FT_NLM//Netware Loadable Module (NLM)
FT_COFF //Common Object File Format (COFF)
FT_PE //Portable Executable (PE)
FT_USER //file is loaded using IDP loader function
FT_OMF//Object Module Format
FT_SREC //R-records
FT_ZIP//ZIP file
FT_OMFLIB //Library of OMF Modules
FT_AR //ar library
FT_LOADER //file is loaded using LOADER DLL
FT_ELF//Executable and Linkable Format (ELF)
FT_W32RUN //Watcom DOS32 Extender (W32RUN)
FT_AOUT //Linux a.out (AOUT)
Ну нету в сырых бинарниках данных под какой это проц, и вообще что это за код. У других то хоть заголовки есть.
9 августа 2009 в 12:00
а может оно его само съест, если обозвать как .img?
9 августа 2009 в 10:04
Да, IDA Pro лучший дизасмер. Тип файла определяет по расширению. Фишка в том что в сырых бинарниках нет данных что это за код. В твоем случае это бут-сектор. Ну во-первых, он 16-ти бытный, это нужно явно указать ИДЕ. Во-вторых он помещается в память по адресу 0000:7C00. и все остальные адреса базируются на этом. Первой командой там должен быть jmp, далее идет блок переменных, которые ИДА, не обязанна распознать, но вот за ним идет сам код, на который указывает первая команда… далее все просто…
9 августа 2009 в 9:04
MBR содержит в себе, помимо кода, таблицу размещения разделов. Может быть, в ней дело?
9 августа 2009 в 2:01
Бинарник под микроконтроллер?
9 августа 2009 в 2:01
да если бы. считал MBR с жесткого диска и получил файл.
Хочу разобраться какие бывают и как работают MBR в разных ОС.