Народ, дизассемблирую DOS программу с DOS/4GW. Использую IDA, но это, впрочем, не важно. Получаю в результате код DOS/4GW и кучу ругани по поводу неправильной величины сегментов. В принципе, оно и понятно, дизассемблируется только DOS/4GW, но как это обойти? Т.е. получить код самой программы?
Для начала надо "отсоединить" dos4gw от файла, чтобы получить чистый LE файл, а потом его скормить иде. Формат LE документирован, так что глюков с сегментами быть не должно, в файле могут быть как 16-ти битовые, так и 32 (чащи всего) кодовые сегменты. Да, получить чистый LE можно через pmwbind, например...
остаётся добавить что "PMWBIND из комплекта PMODE/W" В Ваткоме есть какой-то bind, но за давностию уже хз. http://faqs.org.ru/progr/c_cpp/watcom_c.htm
ненада удалять , вдруг пригодится, например мне, спасибо - тоже такаяже проблема нужно снять стаб pmode/w .
у меня следующий вопрос, а как расковырять LE ? отладчик или какой дизасм есть который адекватно перемалывает 16/32 бит мешанину сегментов ?.
Nothing блин, остается 2 вопроса - после отбиндивания прога обратно не прибиндивается... ( то что получается глючит на самом старте.... ( и файл не пакованный, но при отбиндивании выходной файл содержит код которого нет в исходном... откеда бы?
с прибиндиванием решил вопрос - снял оригинальный стаб и вбиндил его... но что интересно.... снимая стаб я получил ДРУГОЙ оригинальный исполняемый код... насколько другой не знаю - просто размеры отличаются и некой последовательонсти байтов одного нет в другом.... странноо...