121112
.pdfОТЛАДКА БЕЗ ОТЛАДЧИКА
или
DLL INJECTION FOR FUN AND PROFIT
by domi
ПРОБЛЕМЫ ОТЛАДКИ
Антиотладочные приемы
Исключения
Чувствительность к контексту
Зависимость от внешнего мира
Искажение результатов Ошибки
ЗАВИСИМОСТЬ ОТ ВНЕШНЕГО МИРА
Время
Сетевое общение Донглы
И ЧТО ЖЕ ДЕЛАТЬ?
Писать скрипты к отладчику Не использовать отладчик
А ЗАЧЕМ НАМ ВООБЩЕ ОТЛАДЧИК?
40% — понять, как мы попадаем в точку кода 40% — посмотреть на регистры/память 10% — изменить регистры/память 10% — понять, кто использует память
ЖИЗНЬ БЕЗ ОТЛАДЧИКА — PRINTF
40% — понять, как мы попадаем в точку кода 40% — посмотреть на регистры/память 10% — изменить регистры/память 10% — понять, кто использует память
ЖИЗНЬ БЕЗ ОТЛАДЧИКА — PRINTF
PROS
Наш код становится частью исследуемой программы Мы сохраняем 90% функциональности отладчиков
CONS
Теряем брейкпойнты на памяти
Трудоемкость Изменение отладки на ходу невозможно
ВНЕДРЕНИЕ СВОЕГО КОДА
|
|
|
Было: |
|
|
|
|
|
|
00402C9F F6 C4 05 |
|
test |
ah, 5 |
|
00402CA2 7A 07 |
58 |
|
jp |
short 00402CAB --+ |
00402CA4 DD 05 |
04 4A 00 fld |
ds:dbl_4A0458 | |
||
00402CAA C3 |
24 |
0C |
retn |
| |
00402CAB DD 44 |
fld |
[esp+8+arg_0] <--+ |
|
|
Стало: |
|
|
|
|
|
|
|
00402C9F F6 C4 05 |
test |
ah, 5 |
|
|
00402CA2 7A |
07 |
jp |
short 00402CAB --+ |
|
00402CA4 DD 05 58 04 4A 00 fld |
ds:dbl_4A0458 |
| |
||
00402CAA D9 FF |
fcos |
|
<-+ |
|
00402CAC C3 |
|
retn |
[esp+8+arg_0] |
|
00402CAD DD 44 24 0C |
fld |
|
|
00402CAB FF C3 |
inc |
ebx |
|
|
00402CAD DD 44 24 0C |
fld |
[esp+8+arg_0] |
|
|
|
|
|
|
ВНЕДРЕНИЕ СВОЕГО КОДА
Code squeezing
Call hijacking Jumps