Comments 15
Статья интересная, но выявлено несколько допущений:
Под DOSBox пригодится Turbo Debugger, DEBUG.EXE или другой отладчик.
Хороший Turbo Debugger трудно найти и если вы используете какой-то конкретный из всего списка указанного на сайте old-dos, то указывайте какой именно из списка, там не все корректно работают. Я хороший нашел в Turbo Assember 4.0 (TASM) (последняя строка)
Сам DOSBox "дохлик", у меня стоят DOSBox 0.74.3 и DOSBox-X (этот форк DB развивается)
Почему то не увидел совета по использованию PCEmu для использования DOS/Windows софта на современных машинах? DOS программы, по разному могут себя вести в DB и под PCEmu
Если Вы рекомендуете использовать TD, то почему листинги даёте из Ghidra? Ghidra не видит упаковки таких как PKLITE и других... в TD, можно в работающем коде, хотя бы догадаться. Надо уже иметь опыт в реверсе, чтобы работать с упакованными данными в Ghidra или в IDA
Спасибо за дополнения.
Это мой первый реверс под MS-DOS, так что я не претендую на звание профессора :) Удовлетворил любопытство - нашел повод поработать с 16-битным ассемблером под MS-DOS и познакомиться с Ghidra.
Работает первый же TurboDebugger из списка, аерсия 3.1 от 1992. В том и прелесть реверса - каждый пробует и выбирает инструменты, что работают у него :) Не работает TD.EXE, бросаем, берем другой отладчик.
Автор crackme указал в README, что программа работает под MS-DOS, WinXP и DOSBox - так и скопировал.
Надо уже иметь опыт в реверсе, чтобы работать с упакованными данными
Вот с этим согласен :) Для меня дизассемблер еще ни разу не опознал упаковщик автоматически. Сохраняю распакованную программу с помощью отладчика.
Еще один намек, что файл упакован - мы не найдем инструкций INT
в исходном файле, хотя, кажется, они должны быть.
Почему, найти можно - это проходил на одной из моих любимых игр созданной на Watcom C + 2ная упаковка PKLITE + UPX В этом году еще руки не дошли до продолжения, так как начал создавать дизассемблер для DOS под Windows, Именно для того, чтобы точно видеть упаковщики и можно было их "выпиливать", такие как: ExePack, LzExe, PKLite, TityProg, Upx
На каждую новую версию упаковщика ведь нужен новый распаковщик? Наверное, универсального и всесильного распаковщика никогда не создадут, но задача интересная - автоматически опознать и вырубать хотя бы один распаковщик. А затем еще один, и еще... :)
Нашел файл с сигнатурами для PeID - говорит, содержит 1832 сигнатуры, но это только для PE-файлов. Сколько еще алгоритмов можно выдумать для других форматов - не счесть. Пожалуй, составлять сигнатуры упакованных или зараженных файлов - то еще искусство.
Да, универсального распаковщика нет, у меня есть исходники для всех известных, кроме PKLite. А вот распаковщики для самого PKLite, пересоздавались и одна из версий называется PKLite Arena, другая PKLite 1.2 и т.д.

Интересно, что упаковщик предлагает опцию -x expand a compressed file
. Жаль, что от иных программ остаются только скриншоты и воспоминания.
Упаковщики сжимают файл - за это их и любили? Двоичные файлы сжимать трудно, но когда на дискете всего 1.44 Мб, радовались каждому лишнему байту?
Должно быть, порядочный крекер распаковывал программу, побеждал защиту, а затем упаковывал не хуже оригинала :)
Ух ты, это та забавная игра, в которой играешь за могущественное зло, заставляешь работать местную нечисть, а она не всегда делает то, что приказано?:)
А Вы что-то другое хотели от нечисти? ;)
Привыкаешь в играх к абсолютной власти над юнитами, но юниты Dungeon Keeper живут сами по себе? Получил приказ, пошел выполнять, пока шел - забыл за чем посылали :) Видимо, нечисть древняя, забывчивая. А, может, бессмертная, потому и заряжена пофигизмом. Сегодня один начальник, завтра - другой.
Еще не играл, но слышал, заинтересовало.
Похоже, разработчики Dungeon Keeper просто взяли патч-ноты из реального офиса: это не случайные юниты, а менеджеры в прошлой жизни. Получили задачу - пошли, забыли. Напомнили - обиделись и пошли пить чай. А если повезёт - сами начнут строить себе отдельный логово-офис с видом на пропасть. Единственное, чего им не хватает - это "важной встречи, которая ни к чему не ведёт"
...
Дизассемблер Sourcer надо использовать, чтобы всё было «лампово»)
Занимательная некромантия 01H: ломаем программу под MS-DOS