metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2009-03-01 01:38 pm

Отладка прог в windbg

Не могу избавиться странного ощущения, возникающего, когда приходится отлаживать виндовские проги или анализировать их дампы в windbg. Ощущение, как будто вернулся на 10-15 лет назад, в благословенные времена доса, ручного хождения по памяти и записи в порты, вплоть до залезания с осциллографом/логическим анализатором внутрь компа.

Всякие там дотнеты, фреймворки, языки высокого уровня совершенно не дают такого эндорфиново-наркоманского ощущения, как выполнение команд в windbg под отладчиком и раскручивания стека вызовов, приводящего к багу, одновременно в мозгу, в исходном коде, в IDA и в выполняемой программе.

[identity profile] vp.livejournal.com 2009-03-01 06:52 pm (UTC)(link)
Ух, вспоминаю, как писал прогу, которая из двух досовских дампов памяти восстанавливала таблицу релокации и таким образом выдирала и сохраняла EXE файл, отработавший после всех защит :)
А потом вроде готовую прогу кто-то сделал по мотивам..

Вот, 15 лет назад:

 DUMP2EXE [Dump1] [Dump2] [Out] [PSP1] [PSP2] [CS] [IP] [SS] [SP] [/AUTO]
 Dump1,Dump2 - файлы с дампами памяти (делаются с PSP:0100 нужной длины)
 Out --------- создаваемый EXE-файл
 PSP1,PSP2 --- параграфы PSP для 1-го и 2-го дампов
 CS,IP,SS,SP - Шестнадцатиричные значения регистров (для 1-го дампа)
 /AUTO ------- Автоматическое определение длины создаваемого EXE-файла
               Необязательный параметр, по умолчанию берется длина Dump1


Пример:  DUMP2EXE  aaa.bin bbb.bin 2A37 2E45 2A47 0000 3FC0 4000 /auto 

[identity profile] metaclass.livejournal.com 2009-03-01 06:54 pm (UTC)(link)
Мрак. Как-то читал про снятие упаковщиков с прог, так там такими же методами обычно делается, только еще сначала надо антиотладочный код повыдирать, чтобы прогу остановить можно было :)

[identity profile] vp.livejournal.com 2009-03-01 08:00 pm (UTC)(link)
это делалось уже на каком-то нормальном этапе, типа "хождение по меню"