|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Июл 14, 2003 15:13:40 Насколько я понимаю - нижепреведенный кусок кода - пример антиотладочного приема. Что подскажете делать в этой ситуации? 00466080 LEA EAX, DWORD PTR SS:[EBP+46] 00466083 PUSH EAX 00466084 XOR EAX, EAX 00466086 PUSH DWORD PTR FS:[EAX] 00466089 MOV DWORD PTR FS:[EAX], ESP 0046608C INT3 0046608D NOP 0046608E MOV EAX, EAX 00466090 STC 00466091 NOP 00466092 LEA EAX, DWORD PTR DS:[EBX*2+1234] 00466099 CLC 0046609A NOP 0046609B SHR EBX, 5 0046609E CLD 0046609F NOP 004660A0 ROL EAX, 7 004660A3 NOP 004660A4 NOP 004660A5 XOR EBX, EBX 004660A7 DIV EBX 004660A9 POP DWORD PTR FS:[0] |
|
|
Дата: Июл 14, 2003 16:01:46 · Поправил: Four-F Почитать про SEH, например тут Win32 Exception Handling for assembler programmers, и использовать команду айса xframe. |
|
|
Дата: Июл 14, 2003 19:33:08 На счет XFRAME: в теле ф-ции CreateFileA, в начале, есть аналогичная конструкция: PUSH DWORD PTR FS:[EAX] MOV DWORD PTR FS:[EAX], ESP Дак вот, XFRAME после них говорит "NO FRAMES" !!! Может у меня баг ? |
|
|
Дата: Июл 15, 2003 16:20:21 Очень странно, т.к по этой команде айс просто тупо берет адрес с fs:[0] и считает, что это указатель на SEH-фрейм. Только если там 0 или -1 он скажет "There are no try/finally/except handlers installed", а если недопустимы адрес, то "exception information is inaccessible". Если же esp кажет на SEH-фрейм (или даже просто куда нибудь, где выделена память), а в eax 0, то xframe должна работать. Попробуй руками посмотреть. Такая последовательность должна дизассемблировать верхний обработчик: dd fs:0 d *ss:dataaddr u *(dataaddr+4) |
|
|
Дата: Июл 15, 2003 23:57:41 Какая классная тема, почему никто не продолжает? Как вам такая идея: многие пакеры, сволочи вонючие, наловчились играть на нашем поле и теперь секут S-Ice по имени (старый трюк MELTICE), RegMon (это делает Armadillo, скрывая clockback трюки), детект софт-айса через OpenServiceA (опять-таки армадилла) и т.п. Я вот думаю... Скажем, не секрет, что уже есть прямо-таки таблицы имен программ, которые попадают в список на прицел у авторов пакеров. Стоит ли попробовать дописать пару строк кода в PE Tools, чтобы программа динамически меняла свое имя в соответствии с генератором псевдослучайных чисел (взять из Кнута), так, чтобы уже нельзя было обнаружить ее никаким OpenService и т.п. Как звучит? Или я с головой не дружу? |
|
|
Дата: Июл 16, 2003 00:29:09 · Поправил: Asterix Ага, Volodya, вот тебе свежий пример ACProtect(не путать с ASProtect). У него в коде зашита такая вот табличка имён ;-) {EXESPY,WXR95,REGMON,FILE MONITOR,REGMONEX,WINDOW DETECTIVE, DEBUGVIEW,RESSPY,ADVANCED REGISTRY TRACER,REGSNAP,MEMSPY, MEMORY DOCTOR,PROCDUMP32,MEMORY EDITOR,FROGSICE,SMU WINSPECTOR,MEMORY DUMPER,MEMORYMONITOR,NUMEGA SOFTICE LOADER,URSOFT W32DASM,-=CHINA CRACKING GROUP=-,OllyDbg, TRW2000} "Наивные китайские мальчики" :-) (c) ??? |
|
|
Дата: Июл 16, 2003 00:37:25 Ну ты меня совсем за чайника, брат, держишь. Т.е. я, конечено, чайник и есть, но не настолько :) Так как тебе идея? Стоит этот код в PE Tools добавить? ... Непонятного нет для меня под луной, Мне известно, что мне ничего неизвестно, Вот последняя тайна, раскрытая мной. Омар Хайям, Рубайят |
|
|
Дата: Июл 16, 2003 00:45:28 [ volodya: Стоит ли попробовать дописать пару строк кода в PE Tools, чтобы программа динамически меняла свое имя в соответствии с генератором псевдослучайных чисел (взять из Кнута), так, чтобы уже нельзя было обнаружить ее никаким OpenService и т.п. Как звучит? Или я с головой не дружу?] Ну это ты загнул :-) Достаточно заставить программу, в данном случае PETools, читать имя из какого-нибудь файла ini в каталоге программы, которое задаёт сам пользователь программы(вручную или с помощью специальной фичи), и выводить его везде где это нужно, например в заголовке окна программы. P.S. Письмо прочитал, к выходным будет в самый раз. Не пропадай надолго ;-) |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.067 |