Декомпиляция игры DOS 16-bit

Тема в разделе "WASM.BEGINNERS", создана пользователем xor2003, 22 июн 2011.

  1. KPG

    KPG Member

    Публикаций:
    0
    Регистрация:
    13 янв 2021
    Сообщения:
    121
    Автор и использует его на втором этапе при "причёсывании" полученного первичного листинга программ,
    а так пришлось бы подобие IDA добавлять к DosBox.

    P.S. Дизассемблер IDA Pro 7.5 для восстановления исходного кода игры (C/C++)
     
  2. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.995
    Приведенный тобой masm2c это буквально интерпретатор. То есть листинг ты получаешь ручками, а потом кормишь им интерпретатор, неспособный это сделать самостоятельно.
    Код (Text):
    1. start:
    2.     R(STI); // 12 sti
    3.     R(CLD); // 13 cld
    4.     R(PUSH(seg_offset(_data))); // 14 push _data
    5.     R(POP(ds)); // 15 pop ds
    6.     R(ah = 9;); // 16 mov ah,9
    7.     R(dx = offset(_data,_msg););    // 17 mov dx,offset _msg
    8.     R(_INT(0x21));  // 18 int 21h
    9.     R(ax = 0x4c00;);    // 20 mov ax,4c00h
    10.     R(_INT(0x21));  // 21 int 21h
    11.  
    12. struct Memory m = {
    13. {0}, // padding
    14. {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, // segment _data
    15. {'H','e','l','l','o',' ','W','o','r','l','d','!','\n','\r','$'}, // _msg
    А саму эту стаью я уже однажды комментировал.
     
  3. KPG

    KPG Member

    Публикаций:
    0
    Регистрация:
    13 янв 2021
    Сообщения:
    121
    Да, приводил уже 2-а года назад ссылку на этот тред, но подзабылось. :)

    P.S. Встретился на Github c патчами для убирания ограничений (отмотав дату на 2020г. программа запускается и без патчинга)
    IDA 7.5 Demo on Linux
     
  4. KPG

    KPG Member

    Публикаций:
    0
    Регистрация:
    13 янв 2021
    Сообщения:
    121
    В тематике использования для возможного реверса с использованием Эмуляторов для Dos программ.

    Под Linux была/есть программа DosEmu и её форк DosEmu2 (проект на Github) позволяющая максимально близко аппаратно запускать DOS программы.
    Эту программу можно дополнять плагинными модулями.


    P.S. С парой незначительных правок DosEmu2 не последней версии собралась под Linux Puppy 32 (Хеnial)
    Взятая отсюда от 2020г. на Launchpad.net “Dosemu2” teamt для сборки взял бинарный пакет FDPP (Free Dos 64+) т.к. для её сборки необходим CLang++, но при запуске у меня плагин не подхватывается и для проверки добавляю в "/usr/local/share/dosemu/fdboot" сборку файлов FreeDOS из DosEmu, но ещё при запуске сначала нужно выполнить dosemu а потом dosemu.bin.

    Можно ещё посмотреть что мешает собираться и 'полнофункционально" стартовать сo всеми плагинами последней DosEmu2 у меня (некоторые плагины не включаются в сборку т.к. в системе может не быть в системе нужных им библиотек)
     
    Последнее редактирование: 17 июл 2023