singlepost

Декомпилятор BIN в ASM << На главную или назад  

Есть бинарник(*.bin) скомпилированый из исходного кода написанного на ассемблере. Исходника нету( Надо получиться обратно исходный код. Перепробовал много известный декомпиляторов и дебагеров, но почти все отказались работаь с *.bin. Только с исполняемыми фалами(*.exe, *.elf, *.dll, *.so, *.com). Только когда я переименовал файл в *.com то его смог опознать IDA Pro единственный! Но он опзнал только первые пять строк кода, остальные принял за сегмент кода и вывел переменные. Хотя точно известно что там идёт код!!!!!!!

Может кто то кто сталкивался с такими проблемами поделиться секретом как всётаки дизасемблировать бинарник??????)

49 ответов в теме “Декомпилятор BIN в ASM”

  1. 12
    Дамир Алиев ответил:

    Есть там код, а таблица разделов занимает 64 байта.

    В самом бут-секторе ничего интересного то и нету. Обычно он только находит на диске файлик, грузит его в память и передает ему управление. Ну еще и мессагу могет вывести что все ОК, либо нету файлика.

  2. 11
    Расул Фазлыев ответил:

    Найди в гуглУ машинные коды инструкций x86 и переводи вручную )) Сам для своего виртуального процессора в hex-редакторе программы пишу. Потому как лень транслятор писать.

  3. 10
    Нгамдкхе Кверос ответил:

    блин, да найдите вы статью по мбр и будет вам счастье раз, поймёте какой фигнёй вы сейчас страдаете два. ничего там кроме джапа в этом секторе нет иначе бы таблицу разделов запороли.

    вот оно, ваше счастье.
    //ru.wikipedia.org/wiki/Главная_загрузочная_запись

  4. 9
    Лёха Воронин ответил:

    Алиев Дамир спасибо большое!!!
    так бы долго сам копался)

  5. 8
    Дамир Алиев ответил:

    Демо… На офф.сайте гриться что
    it will only load 80×86 & ARM PE files
    У мну полная, а так при загрузке указываем что это бинарник, сегмент – 0х0000000, оффсет – 0х7C00. Тыркаем ОК и она спрашивает как его иметь, как 32-х битный ? Грим что нет, и имеем его как 16-битный. Далее я нинаю как у Вас, но у меня надо поставить курсор на первую инструкцию и тыркнуть кнопарь Convert to instruction ну или бкуву С на клаве, и понеслася…

    Что касается бутявок под разные ОС, мож стоит просто почитать как загрузка то происходит ? И структуру на сырцах изучить…

    //sysbin.com/

    Сайт на русской мове.

  6. 7
    Лёха Воронин ответил:

    а как указать IDA Pro все эти тонкости????
    в демо версии или free-версии IDA-Pro это можно настроить???

  7. 6
    Дамир Алиев ответил:

    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)

    Ну нету в сырых бинарниках данных под какой это проц, и вообще что это за код. У других то хоть заголовки есть.

  8. 5
    Леонид Максимов ответил:

    а может оно его само съест, если обозвать как .img?

  9. 4
    Дамир Алиев ответил:

    Да, IDA Pro лучший дизасмер. Тип файла определяет по расширению. Фишка в том что в сырых бинарниках нет данных что это за код. В твоем случае это бут-сектор. Ну во-первых, он 16-ти бытный, это нужно явно указать ИДЕ. Во-вторых он помещается в память по адресу 0000:7C00. и все остальные адреса базируются на этом. Первой командой там должен быть jmp, далее идет блок переменных, которые ИДА, не обязанна распознать, но вот за ним идет сам код, на который указывает первая команда… далее все просто…

  10. 3
    Дмитрий Коковцев ответил:

    MBR содержит в себе, помимо кода, таблицу размещения разделов. Может быть, в ней дело?

  11. 2
    Дмитрий Бабий ответил:

    Бинарник под микроконтроллер?

  12. 1
    Лёха Воронин ответил:

    да если бы. считал MBR с жесткого диска и получил файл.
    Хочу разобраться какие бывают и как работают MBR в разных ОС.

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.