Посл.ответ |
Сообщение |
Ранг: 8.7 (гость) Активность: 0.01↘0 Статус: Участник
|
Создано: 28 мая 2008 16:33 · Личное сообщение · #1
Доброй ночи.
Друг попросил поковырять программку:
www.examen.h18.ru/Exam2008_FSFR_Setup.exe
Проблема в том, что не могу понять как ее начать анализировать.
При запуске из под Оли с разными плагинами для ее скрытия,
программа все равно находит отладчик, говорит, что работает,
со всеми функциями и окно регистрации не доступно.
IDA тоже просекает.
При наличии softice map32 вообще секции не показывает.
PEiD говорит что ничем не упаковано.
В общем хотелось бы самому разобраться, но знаний явно не хватает.
Придайте вектор движения, в какую сторону копать ?
Спасибо.
| Сообщение посчитали полезным: |
|
Ранг: 221.3 (наставник), 135thx Активность: 0.19↘0.07 Статус: Участник
|
Создано: 28 мая 2008 17:11 · Личное сообщение · #2
Файл не запакован, антиотладка есть)))
0044289C /> \55 push ebp
0044289D |. 8BEC mov ebp, esp
0044289F |. 81EC 28030000 sub esp, 328
004428A5 |. A3 30114700 mov dword ptr ds:[471130], eax
004428AA |. 890D 2C114700 mov dword ptr ds:[47112C], ecx
004428B0 |. 8915 28114700 mov dword ptr ds:[471128], edx ; ntdll.KiFastSystemCallRet
004428B6 |. 891D 24114700 mov dword ptr ds:[471124], ebx
004428BC |. 8935 20114700 mov dword ptr ds:[471120], esi
004428C2 |. 893D 1C114700 mov dword ptr ds:[47111C], edi
004428C8 |. 66:8C15 48114>mov word ptr ds:[471148], ss
004428CF |. 66:8C0D 3C114>mov word ptr ds:[47113C], cs
004428D6 |. 66:8C1D 18114>mov word ptr ds:[471118], ds
004428DD |. 66:8C05 14114>mov word ptr ds:[471114], es
004428E4 |. 66:8C25 10114>mov word ptr ds:[471110], fs
004428EB |. 66:8C2D 0C114>mov word ptr ds:[47110C], gs
004428F2 |. 9C pushfd
004428F3 |. 8F05 40114700 pop dword ptr ds:[471140]
004428F9 |. 8B45 00 mov eax, dword ptr ss:[ebp]
004428FC |. A3 34114700 mov dword ptr ds:[471134], eax
00442901 |. 8B45 04 mov eax, dword ptr ss:[ebp+4] ; Тренажер.00429834
00442904 |. A3 38114700 mov dword ptr ds:[471138], eax
00442909 |. 8D45 08 lea eax, dword ptr ss:[ebp+8]
0044290C |. A3 44114700 mov dword ptr ds:[471144], eax
00442911 |. 8B85 E0FCFFFF mov eax, dword ptr ss:[ebp-320]
00442917 |. C705 80104700>mov dword ptr ds:[471080], 10001
00442921 |. A1 38114700 mov eax, dword ptr ds:[471138]
00442926 |. A3 34104700 mov dword ptr ds:[471034], eax
0044292B |. C705 28104700>mov dword ptr ds:[471028], C0000409
00442935 |. C705 2C104700>mov dword ptr ds:[47102C], 1
0044293F |. A1 B4D44600 mov eax, dword ptr ds:[46D4B4]
00442944 |. 8985 D8FCFFFF mov dword ptr ss:[ebp-328], eax
0044294A |. A1 B8D44600 mov eax, dword ptr ds:[46D4B8]
0044294F |. 8985 DCFCFFFF mov dword ptr ss:[ebp-324], eax
00442955 |. FF15 00614500 call dword ptr ds:[<&KERNEL32.IsDebug>; [IsDebuggerPresent
0044295B |. A3 78104700 mov dword ptr ds:[471078], eax
00442960 |. 6A 01 push 1
00442962 |. E8 330E0000 call Тренажер.0044379A
00442967 |. 59 pop ecx
00442968 |. 6A 00 push 0 ; /pTopLevelFilter = NULL
0044296A |. FF15 FC604500 call dword ptr ds:[<&KERNEL32.SetUnha>; \SetUnhandledExceptionFilter
00442970 |. 68 BCF44500 push Тренажер.0045F4BC ; /pExceptionInfo = Тренажер.0045F4BC
00442975 |. FF15 F8604500 call dword ptr ds:[<&KERNEL32.Unhandl>; \UnhandledExceptionFilter
0044297B |. 833D 78104700>cmp dword ptr ds:[471078], 0
00442982 |. 75 08 jnz short Тренажер.0044298C
00442984 |. 6A 01 push 1
00442986 |. E8 0F0E0000 call Тренажер.0044379A
0044298B |. 59 pop ecx
0044298C |> 68 090400C0 push C0000409 ; /ExitCode = C0000409 (-1073740791.)
00442991 |. FF15 94614500 call dword ptr ds:[<&KERNEL32.GetCurr>; |[GetCurrentProcess
00442997 |. 50 push eax ; |hProcess = 00000001
00442998 |. FF15 F4604500 call dword ptr ds:[<&KERNEL32.Termina>; \TerminateProcess
0044299E |. C9 leave
0044299F \. C3 ret
Глубоко не копал, заметил только это.
00429749 /$ 55 push ebp вот тут думаю все что тебе нужно
----- xchg dword [eax], eax | Сообщение посчитали полезным: |
Ранг: 8.7 (гость) Активность: 0.01↘0 Статус: Участник
|
Создано: 28 мая 2008 17:34 · Поправил: daiver · Личное сообщение · #3
Большое спасибо.
Если не затруднит, принцип поиска антиотладочных средств, хотя бы в двух словах ?
Полагаю 0044289C ___report_gsfailure, можно найти посмотрев откуда вызывается импортируемая IsDebugPresent.
Есть ли более универсальный способ ?
Т.е. скажем так принцип поиска, если не знаком с большинством антиотладочных средств.
| Сообщение посчитали полезным: |
Ранг: 221.3 (наставник), 135thx Активность: 0.19↘0.07 Статус: Участник
|
Создано: 28 мая 2008 19:05 · Личное сообщение · #4
Эм... Вообщето в инете много статей про антидебаг. Так что читать читать и еще раз читать. Проштудируй форум, потом сходи на васм, там почитай, кстати там недавно тема про антидебаг была
----- xchg dword [eax], eax | Сообщение посчитали полезным: |
Ранг: 8.2 (гость) Активность: 0.01↘0 Статус: Участник
|
Создано: 30 мая 2008 11:02 · Личное сообщение · #5
daiver пишет:
Т.е. скажем так принцип поиска, если не знаком с большинством антиотладочных средств. - это реверсинг, исследуешь сам, тут нету определённого алгоритма
| Сообщение посчитали полезным: |
Ранг: 8.7 (гость) Активность: 0.01↘0 Статус: Участник
|
Создано: 30 мая 2008 12:23 · Личное сообщение · #6
Угу. Спасибо всем.
Полностью разобрался.
Антиотладка окзаалась полной ерундой.
Нашел где пропатчить, чтобы любой ключ подходил,
и уже выковырял алгоритм генерации ключей.
Жаль времени на это увлекательное занатие нет.
| Сообщение посчитали полезным: |