1. Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.

    Скрыть объявление
  2. Пожалуйста, внимательно прочитайте правила раздела.
  3. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

Реверс в DOSBox с помощью IDA

Тема в разделе "Мастерская", создана пользователем Quester, 10 апр 2013.

  1. Quester

    Quester

    Legacy

    Регистрация:
    25 сен 2003
    Сообщения:
    713
    IDADOS/DSBXIDA plugin
    Плагин для связки IDA Pro - Dosbox/Dosbox-X

    Ссылки на исходники
    Сам плагин: wjp/idados
    Пропатченный для работы с плагином DosBox: wjp/dosbox
    (ветка по-умолчанию должна быть idados, если нет, откройте Branches и выберете idados)

    Ссылки на бинарники
    Для версии 6.1 Посмотреть вложение idados61.7z
    Для версии 6.4 Посмотреть вложение idados64.7z

    Ссылка на сборки от DrMefistO
    "Вот свежая сборка этого инструмента (у меня поправлены прыжки по смещениям во время отладки):"
    Исходники для версии 6.х: https://github.com/lab313ru/idados_dosbox
    Релизы для версии 6.х: https://github.com/lab313ru/idados_dosbox/releases
    Релизы для версии 7.х: lab313ru/dsbxida
    Релизы для версии 7.х: Releases · lab313ru/dsbxida

    Описание
    Плагин, позволяющий в IDA Pro в качестве отладчика использовать Dosbox. Встроенный в Dosbox отладчик при этом отключается. Позволяет ставить брекпоинты, совершать трассировку. Перед первым запуском изменяет адреса на правильные (IDA Pro в 16-битных DOS приложениях зачастую эти адреса искажает).

    Использование версии 6.х
    Скопировать плагин dosbox_stub.plw в папку %IDAPro%\PLUGINS.
    Остальные файлы (Dosbox и набор dll) скопировать в установленный заранее оригинальный DosBox. Запустить пропатченный Dosbox, присоединить нужные диски. Запустить программу для отладки командой debug имяпрограммы.exe.
    В IDA Pro открыть программу для отладки, выбрать тип процессора, дождаться окончания анализа. Выбрать в качестве отладчика Dosbox, в настройках указать hostname (для локальной машины - localhost). Запустить отладку. Если необходимо, указать в настройках отладчика, что при начале отладки останавливать исполнение кода.

    Использование версии 7.х
    1. Скопировать папки PLUGINS и LOADERS в корень папки с IDA Pro.
    2. Запустить DosBox-X, через меню смонтировать диск (запуск mount автоматически переводит досбокс в режим отладки приложения mount). Перейти в папку с отлаживаемым файлом.
    3. Запустить IDA Pro, открыть проект, выбрать в качестве отладчика по-умолчанию dsbxida debugger plugin и запустить режим отладки.
    4. Запустить в Dosbox-X отлаживаемый файл.


    Напоминаю, что IDA Pro является платным продуктом и вопросы "где скачать бесплатно" неуместны.
    Желающие приобрести IDA Pro могут сделать это на сайте программы - https://www.hex-rays.com/products/ida/overview.shtml (стоимость Name лицензии порядка 500$).
    Если жалко денег, можно найти старую бесплатную версию IDA Pro и плагин IDADOS версии 0.1. Работать будет, но еще более криво.

    Благодарности
    Спасибо jack7277 за настойчивость и поднятие темы на нужных форумах.
    Огромное СПАСИБО gloomdemon за сборку бинарников для версий 6.4 и 6.1.
    Огромное спасибо DrMefistO за новые сборки бинарников.

    Ссылки на полезное
    http://blog.yurichev.com/
    Блог Дениса Юричева по дизассемблированию. Там же можно скачать постоянно пополняемую книгу по обратной разработке для начинающих (на русском и английском языках).
     
    Последнее редактирование: 25 апр 2021
    longhorn_gnu, bvedargh, BeetLight и 15 другим нравится это.
  2.  
  3. daemolisher

    daemolisher

    Регистрация:
    2 дек 2009
    Сообщения:
    1.704
    а почему idasdk61,

    ведь в мейкфайле с гитхаба указан путь - idaskd57

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

    хотя наверно дело не в версии...

    если быть честным, то довольно редки случаи когда исходники хорошо компилируются по разные ОС без переписывания кода...

    имхо, надо бы вдумчиво покурить сорсы, вдруг там чего платформозависимое есть...
     
  4. jack7277

    jack7277

    Регистрация:
    23 май 2004
    Сообщения:
    1.115
  5. jack7277

    jack7277

    Регистрация:
    23 май 2004
    Сообщения:
    1.115
    Ругается на необьявленные структуры.

    Компилировать cygwin, idasdk5.7 класть рядом
     

    Вложения:

    • idados.zip
      Размер файла:
      299,9 КБ
      Просмотров:
      81
  6. Quester

    Quester

    Legacy

    Регистрация:
    25 сен 2003
    Сообщения:
    713
    Я говорил с wjp, судя по всему, 5.7 в билде стоит еще от старой, 0.1 версии плагина. Ида, в принципе, нормально работать с 16-битным кодом стала только с 6.1. Хотя, как я смотрю, с адресацией до сих пор нехилые проблемы.
     
  7. jack7277

    jack7277

    Регистрация:
    23 май 2004
    Сообщения:
    1.115
    Quester, то есть авторы забили на проект и он не рабочий раз такое в исходниках ?
     
  8. Quester

    Quester

    Legacy

    Регистрация:
    25 сен 2003
    Сообщения:
    713
    Авторы забили на mingw версию. Приоритет для них - linux и mac.
     
  9. MisterGrim Very old

    MisterGrim

    Legacy

    Регистрация:
    29 ноя 2007
    Сообщения:
    25.423
    Проще линукс в виртуалку поставить :)
     
    Bato-San нравится это.
  10. Quester

    Quester

    Legacy

    Регистрация:
    25 сен 2003
    Сообщения:
    713
    Посмотрел ченжлог ветки idados досбокса. Судя по всему, различия в версиях SDK существенные, если wjp каждый раз выправляет в нем глюки. Но что интересно, после 6.0 он работал сразу над 6.3. Возможно, что изменений с 6.0 по 6.2 особых не было, можно попробовать откатить версию чуть назад и сбилдить.
    Там же замечено, что он начал работу над определением ключа IDA.
     
  11. jack7277

    jack7277

    Регистрация:
    23 май 2004
    Сообщения:
    1.115
    sendersu на краклабе пишет:
    Коллеги с екзетула поделились (narciszu, thanks)
    Name: idasdk64.zip Size: 15 MB
    http://www36.zippyshare.com/v/50679160/file.html

    Сами авторы idados на этом же 6.4 пока что, ставлю убунту, наконец-то погляжу что за линупсы такие.
    НО, как пишут там же, SDK какой-то покалеченный ((

    ЗЫ: Quester, насчет ключа иды поподробней, что где.
     
    Последнее редактирование: 22 апр 2013
    A.P.$lasH нравится это.
  12. Quester

    Quester

    Legacy

    Регистрация:
    25 сен 2003
    Сообщения:
    713
    Вот такие изменения сделаны недавно:
     
  13. jack7277

    jack7277

    Регистрация:
    23 май 2004
    Сообщения:
    1.115
    Простыня ошибок под cygwin (c http://cygwin.com/install.html ) и ida sdk 6.4
    Куча "не был декларирован".
    Едем дальше.
    PS: Это под виндой, с пингвином надо разбираться ))
    ЗЗЫ: И еще надо заменить файлы из нового sdk 6.4 в проект компиляции, а то у меня всё что выше от 6.1, каша же получается.
    Сравнил по содержимому, ад же, там огромные отличия в sdk 6.4 от 6.1
     

    Вложения:

    • out2.txt
      Размер файла:
      6,8 КБ
      Просмотров:
      871
    Последнее редактирование: 22 апр 2013
  14. jack7277

    jack7277

    Регистрация:
    23 май 2004
    Сообщения:
    1.115
    Проблема в том, что авторы тестировали на 6.4, соберется он из-за огромных различий только под SDK 6.4, а на паблике IDA только 6.1, плагин даже если скомпилируется, то не заработает.
    Подсказывают, что демка 6.4 давно появилась, есть шанс что ее хватит и она поддерживает плагины.

    Не компилируется под 6.4, пробовал под cygwin командой make. В скрепке собраны все файлы из sdk 6.4

    Не понимаю, что же мне пишет компилятор, ругается на следующую структуру в файлеrpc_engine.h:
    socket rpc_socket; // то есть нет такого типа SOCKET

    In file included from rpc_client.h:4:0,
    from dosbox_rstub.cpp:21:
    rpc_engine.h:32:3: ошибка: ‘socket’ не является именем типа
    rpc_engine.h:49:23: ошибка: expected ‘)’ before ‘rpc_socket’
    In file included from dosbox_rstub.cpp:21:0:
    rpc_client.h:14:23: ошибка: expected ‘)’ before ‘rpc_socket’
    make: *** [dosbox_rstub.o] Error 1

    Он объявлен в idadbg_local.h, он подключен но чето не то.
    #define socket WINDOWS::socket


    Всё, для меня тупик наступил.
     

    Вложения:

    • idados64.zip
      Размер файла:
      303,4 КБ
      Просмотров:
      77
    Последнее редактирование: 22 апр 2013
  15. Quester

    Quester

    Legacy

    Регистрация:
    25 сен 2003
    Сообщения:
    713
    Я так думаю, что оба два (досбокс и плагин) нужно откатить до версии 6.1. Это где-то полгода назад. Судя по ченжлогу, именно тогда все это работало с 6.1/6.2/6.3.
    Плюс ко всему, нужно проверить компилятор на версию. Оригинальный досбокс билдится довольно старой версией, она есть в wiki досбокса.
    Да, и демка IDA Pro разбирает только х32, х16 она не возьмет.

    ---------- Сообщение добавлено в 20:28 ---------- Предыдущее сообщение размещено в 20:08 ----------

    jack7277, попробуй описать ошибку на IRC #exult freenode. Там сидит wjp, может что подскажет.
     
    Последнее редактирование: 22 апр 2013
  16. jack7277

    jack7277

    Регистрация:
    23 май 2004
    Сообщения:
    1.115
    Quester, у меня руки опускаются, всё плохо (
    Ну поговорил я с ним, он поотвечал односложными фразами, использует gentoo, говорит плагин под ней работает,
    нужно сперва скомпилировать sdk, затем idados плагин и затем специальную сборку dosbox. Говорит я не вин разработчик мне всё равно. Говорит делал его для узкого круга лиц и у плагина узкая ниша какая-то.

    Может быть кто-нибудь поумнее прочитает эту тему и поможет, у меня не хватает знаний С++, работа от си очень далека.
    Я забиваю, простите.

    ЗЫ: Ждем публичный слив 6.4 с SDK ;)
     
    Последнее редактирование: 22 апр 2013
  17. Quester

    Quester

    Legacy

    Регистрация:
    25 сен 2003
    Сообщения:
    713
    Забавно, но к wjp присоединился кто-то из виндоузников, судя по всему. По коммитам видно, что обновился проект VS до 2010 версии. Может, добьют совместно.
     
  18. Quester

    Quester

    Legacy

    Регистрация:
    25 сен 2003
    Сообщения:
    713
    Удалось сбилдить досбокс с идой дебаггером после последних коммитов.
    ДобБокс запускается, ищет мам... IDA, после чего радостно сообщает, что не найден порядковый номер 59 в библеотеке DLL. В какой именно DLL, сообщить забывает...
    Хотя, по-моему, он сам в себе же найти и не может. Бред какой-то...
     
  19. jack7277

    jack7277

    Регистрация:
    23 май 2004
    Сообщения:
    1.115
    Quester, ты про последний коммит от LowLevelMahn ?
    Компилировал студией ?
     
  20. Quester

    Quester

    Legacy

    Регистрация:
    25 сен 2003
    Сообщения:
    713
    jack7277, да, он коммитит как в плагине, так и в досбоксе.
    Досбокс я в студии собрал, но вываливается вот эта ошибка. Плагин сейчас буду смотреть. Возможно, что исправления плагина уберут ошибку и в досбоксе.
     
  21. jack7277

    jack7277

    Регистрация:
    23 май 2004
    Сообщения:
    1.115
    Quester, Если открыть проект досбокс, он скомпилится без ключей, а в build файле написано:

    To build dosbox on a 32-bit system:
    ./autogen.sh
    ./configure --enable-debug=ida32 --with-ida-sdk=$IDA --with-ida-plugin=/path/to/idaplugin

    То есть запустить автоген и потом конфигур с ключами.
    Сам по себе досбокс собирается и даже работает.
     
  22. Quester

    Quester

    Legacy

    Регистрация:
    25 сен 2003
    Сообщения:
    713
    Работает досбокс с встроенной идой? Ему для работы еще нужен файл IDA.WLL?
    Текуще правки под студию как раз и добавляют дебаг с идой. Сам досбокс без SDK я тоже билдил, но смысл в этом.
     
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление