
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