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. Alex Dub

    Alex Dub

    Регистрация:
    6 янв 2018
    Сообщения:
    1
    UPD. Извиняюсь, это я сам дурак. В папке с программой забыл debug.exe, которым начинал ковырять программу, вот он и запускался под Досбоксом. Новый год не прошел даром :).


    Подскажите, плиз, что я не так делаю?
    Бьюсь уже неделю с этим плагином, но как-то все не идет :(.

    Скомпилировать самому так и не удалось, это какой-то квест для очень продвинутых, так что пробовал разные версии скомпиленных бинарников, остановился на версии от @WaSanya, т.к. у меня ИДА 6.8 и этот плагин компилился с СДК 6.8.

    Запускаю ДосБокс, монтирую диски, запускаю debug file.exe.
    В ИДА-е открываю тот же файл, пытаюсь соединиться с ДосБоксом, не соединяется совсем, выдает ошибку по таймауту. В ДосБоксе при этом живет нормальный сеанс отладки под DEBUG-ом.
    Если после запуска debug file.exe нажать alt-Pause, то плагин видит ДосБокс, но ругается на неправильные пути к файлу. Меняю пути в настройках плагина, после этого он соединяется с ДосБоксом, запускается сеанс отладки. Но отлаживаемая программа не запускается и вообще создается впечатление, что сеанс отладки в ИДА-е и сеанс DEBUG-а живут параллельно, мне удается запустить под DEBUG-ом программу, но это никак не влияет на сеанс в ИДА-е. Адресное пространство у программ разное.

    Если не запускать debug в ДосБоксе, а сразу нажать alt-Pause, то плагин видит ДосБокс и сеанс отладки запускается (после исправления путей к файлу), но опять же запустить программу на исполнение не удается.

    Какой бубен нужно взять, кто-нибудь может сказать?

    Система - Win7 x64
    IDA Pro 6.8
     
    Последнее редактирование: 6 янв 2018
  4. Алексей Сафонов

    Алексей Сафонов

    Регистрация:
    18 дек 2010
    Сообщения:
    30
    Парни, вопрос есть. Какая IDA Pro точно работает с данным плагином для отладки? Я уже штук 5 разных версий попробовал(и новые, и старые, и те, что якобы нужны), прога тупо не грузит плагин и всё. Нет варианта с выбором DosBox качестве отладчика.

    Второй вопрос - скомпиленый досбокс из шапки темы у меня почему то виснет. Запускаю программу, монтирую диски, пишу "debug trilogy.exe" и досбокс намертво зависает. Что я делаю не так?
    последние пробы я делал на IDA PRO 6.1
    Система Windows 7 64.
     
  5. Quester

    Quester

    Legacy

    Регистрация:
    25 сен 2003
    Сообщения:
    713
    Новая версия плагина для IDA Pro с версии 7.5 и старше от DrMefistO:
    lab313ru/dsbxida
    В релиз вложен как плагин, так и сам Doxbox-X.
     
    BeetLight, jack7277, bvedargh и 4 другим нравится это.
  6. Quester

    Quester

    Legacy

    Регистрация:
    25 сен 2003
    Сообщения:
    713
    bvedargh, BeetLight и Gamerun нравится это.
  7. SereZa

    SereZa

    Регистрация:
    3 июл 2009
    Сообщения:
    25
    господа, вопрос о дос софте и дос боксе... сами мы не местные, как говорится. запускаю софтину мышкой перенося на ярлык дос бокса и все работает. до некоторого момента. это официальная программа для написания музыки на звуковом драйвере GEMS для приставки Sega Mega Drive 2 \ Genesis. и в момент, когда я пытаюсь загрузить файл размером более 32 килобайт - все накрывается медным тазом. точнее он вроде бы даже загружается в программу и даже даст нажать кнопку "компиляции" и обработает этот файл. но вот сам редактор секвенций (нот, или вернее событий) не откроется и вылетит ошибка в момент попытки открыть этот самый редактор. иногда текст ошибки пишет в консоли: Runtime overlay error. но обычно ничего не пишет. просто висит.

    в связи с чем вопрос - может это какая-то небольшая проблема и можно решить малой кровью? создал файл 29 килобайт - все нормально. создаешь 33кб - все. брыкается при попытке открыть. просто мы решили маленько тут упоротся... и сделать конвертер из скомпилированных файлов обратно в проект, который может быть открыт в этом софте. так то обычно таких тяжелых песен в играх как бы и не бывает... и в эти 32кб думаю вполне можно вписаться. но хотелось бы иметь возможно загружать очень тяжелые треки тоже.

    в настройках дос бокса пытался командой мемчто-то там увеличить размер памяти до 32. но видимо это общая память самого дос бокса, а не некий Allocatememory, которому видимо указали всего 32кб внутри самой этой программы.
     
  8. Tigoro AI General

    Tigoro

    Регистрация:
    4 фев 2010
    Сообщения:
    3.151
    @SereZa, не та тема и проблема не в dosbox. Стоит проверить работу программы на живом железе и в других эмуляторах. 32к это не спроста. По смыслу - ограничения либо программы - либо самой платформы SMD2 (скорее-всего), посмотрите как в других играх было сделано, почитайте мануалы по железу если в руководствах к GEMS ничего нет.
     
    Последнее редактирование: 2 сен 2023
  9. SereZa

    SereZa

    Регистрация:
    3 июл 2009
    Сообщения:
    25
    документации там не очень мягко говоря. и сама программа несколько выходит за ограничения драйвера. например там есть баг для создания слайдов для ноты - может быть 10 "шагов" так сказать - направлений изменения частоты ноты вверх или вниз. точнее даже 9, поскольку один шаг 3 байта. и если рисовать сложный слайд, с большим количеством шагов - это дело зависает. все дело оказалось в буфере 128 байт для 4х одновременно возможных слайда. соответственно по 32 байта на брата. а программа же дает возможность рисовать до 20 шагов этого самого слайда, то есть превышает этот возможный лимит в 9 штук. то есть слайды драйвер не умеет подгружать порционно. только один заход и соответственно на 9 шагов максимум, чтобы на 10 был 0, чтобы слайд был так сказать законченным с точки зрения программы и корректно завершился. вот сэмплы - там да. умеет порционно загружать в буфер, в два буфера точнее и проигрывать, и при доигрывании - загружать следующую порцию. там сэмплы до 65к размером могут быть. с самими мелодиями - при загрузке этой же самой тяжелой песни напрямую - все играется адекватно на приставке. проблемы здесь нет. это именно софт (ну или дос бокс) брыкается. только первые 32килобайта грузит. дальше виснет. хотя сам этот редактор событий (нот) отображается постранично, а не сразу целиком. так что с самой приставкой, я бы сказал, проблем нет.
     
  10. Tigoro AI General

    Tigoro

    Регистрация:
    4 фев 2010
    Сообщения:
    3.151
    @SereZa, повторюсь, попробуйте запустить программу на реальном железе (если есть возможность) и в других эмуляторах. Вместо dosbox попробуйте его форки - dosbox-x, dosbox daum. Либо полноценные эмуляторы ПК с установкой ms-dos внутри - Pcem и его форки, Virtualbox, Vmware, Qemu. Вполне возможно под тем же dosbox необходимо запустить полноценный ms-dos, а не его встроенную имитацию, т.е. делать сборку программы в окружении ms-dos. Если вы хотите чтобы кто-то попробовал воспроизвести ошибку - нужна программа и сбойный пример. Будет ли править кто-то править ошибки старого трекера?...
    Что еще стоит сделать - посмотреть в сторону современных программ, возможно уже есть с нужной поддержкой платформы этой приставки (Deflemask в первую очередь стоит глянуть), ну и поспрашивать в сообществе приставки, может быть что-то подскажут.
    Старая тема GEMS YouTube video - SpritesMind.Net (умерла в 2012 году, плохой признак для программы :-) на русском коротенько было здесь
     
    Последнее редактирование: 2 сен 2023
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление