Сейчас на форуме: _MBK_, ManHunter, Magister Yoda, rtsgreg1989 (+9 невидимых)

 eXeL@B —› Основной форум —› Интересный крякми
. 1 . 2 . >>
Посл.ответ Сообщение

Ранг: 2.2 (гость)
Активность: 0.010
Статус: Участник

Создано: 17 июня 2005 19:32
· Личное сообщение · #1

Очень интересный крякми.... Но вот проблема - под отладчиком никак не запустить... IsDebuggerPresent нету... Под отладчиком сразу Exception. может кто глянет?

b775_crackme.rar



Ранг: 16.7 (новичок)
Активность: 0.010
Статус: Участник

Создано: 17 июня 2005 19:52
· Личное сообщение · #2

Тоже мне - классический SEH типа как у ASProtect...
4012dd
401200
Адреса, ignore на Access Violation(0) для Olly и всё, в SEH уже собственно и MessageDlg...



Ранг: 2.2 (гость)
Активность: 0.010
Статус: Участник

Создано: 17 июня 2005 19:54
· Личное сообщение · #3

О! Стоп машина. Простите, а можно для тупых Попроще,
1. Как это сделано
2. Почему и как работает
3. Как обойти

Заранее благодарю



Ранг: 2.2 (гость)
Активность: 0.010
Статус: Участник

Создано: 18 июня 2005 13:29
· Личное сообщение · #4

Помогите, пожалуйста, кто-нибудь, очень хочется хоть на немного больше узнать...



Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 18 июня 2005 14:05
· Личное сообщение · #5

XPiS пишет:
Помогите, пожалуйста, кто-нибудь, очень хочется хоть на немного больше узнать...

Долго это объяснять, проще сделать.
Проанализируй отличия, посмотри как с SEH'ами работать...
ЗЫ А если честно, я и сам наугад натыкал .



9871_crackme_2.rar

-----
Всем привет, я вернулся




Ранг: 2.2 (гость)
Активность: 0.010
Статус: Участник

Создано: 18 июня 2005 14:21
· Личное сообщение · #6

Спасибо! а может кто-нибудь еще документации какой подкинет? на английском тоже хорошо....



Ранг: 45.1 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 18 июня 2005 14:27
· Личное сообщение · #7

Bitfry

Ну заткнул ты NOP-ами два вызова SEH - а толк ?
в этих SEH что-то делалось ведь наверняка ?
А так оконная процедура не работает как надо (кнопочка Check не обрабатывается)



Ранг: 2.2 (гость)
Активность: 0.010
Статус: Участник

Создано: 18 июня 2005 14:35
· Личное сообщение · #8

ага! дайте пожалуйста кто-нить линк где почитать можно.... или может кто умный знает общий под
ход



Ранг: 45.1 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 18 июня 2005 14:50
· Личное сообщение · #9

XPiS
h**p://www.softera.ru/literature/visual/1/head25.htm




Ранг: 115.8 (ветеран)
Активность: 0.080
Статус: Участник

Создано: 18 июня 2005 14:52
· Личное сообщение · #10

XPiS пишет:
дайте пожалуйста кто-нить линк где почитать можно


"Об упаковщиках, часть 2", и тут и на васме лежит. Посмотри, там про сехи была инфа.
И ещё какая то отдельная статья на васме про сехи была, не помню уж как называется.
GO TO -> WASM

-----
Ни одно доброе дело не должно остаться безнаказанным !!!




Ранг: 2.2 (гость)
Активность: 0.010
Статус: Участник

Создано: 18 июня 2005 14:53
· Личное сообщение · #11

там кнопка действительно перестала работать



Ранг: 2.2 (гость)
Активность: 0.010
Статус: Участник

Создано: 18 июня 2005 14:54 · Поправил: XPiS
· Личное сообщение · #12

так это же Рихтер! спасибо, уже нашел на васме



Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 18 июня 2005 15:32
· Личное сообщение · #13

xDriver пишет:
Ну заткнул ты NOP-ами два вызова SEH - а толк ?
в этих SEH что-то делалось ведь наверняка ?
А так оконная процедура не работает как надо (кнопочка Check не обрабатывается)

Человек попросил, чтоб под отладчиком запускалось, вот я и сделал
А если серьёзно, то вся суть выделена нопами.

-----
Всем привет, я вернулся




Ранг: 516.1 (!), 39thx
Активность: 0.280
Статус: Участник

Создано: 18 июня 2005 22:08 · Поправил: Av0id
· Личное сообщение · #14

посмотрел я это чудо, ничего особенного (даже на запаковано), используется SetUnhandledExceptionFilter (обработчик прерываний), внутри процедуры обработчика проверяется код исключения, вот немного теории:


When exception happens, Win2K/XP gives control to NTDLL!KiUserExceptionFilter,
which in turn calls KERNEL32!UnhandledExceptionFilter. This function checks if
faulty software is being debugged. If not, UnhandledExceptionFilter calls
softwares' exception handler.


поэтому программа не запускается

ps. в seh-обработчике обрабатывается структура EXCEPTION_POINTERS, которая в дальнейшем и управляет программой



Ранг: 8.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 18 июня 2005 22:10
· Личное сообщение · #15

Че то походу из трех вызовов рубать надо тока два: 401227 и 4012BD, т.к снятие имени и пароля висит на обработке INTEGER_DIVIDE_BY_ZERO. А что Olly'я никак эти места пропустить мимо ушей не может - пусть прога сама свой косяк обработает а потом как нить взять ее на обработчике DIV 0?



Ранг: 8.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 18 июня 2005 22:12
· Личное сообщение · #16

Чуток на руском :
Финальный обработчик исключений вызывается системой, если ни один из внутрипоточных обработчиков установленных для потока вызвавшего исключение (если таковые имеются) не обработал исключение. Поскольку этот обработчик является процессно-зависимым, то он вызывается, независимо от того, какой поток в процессе вызвал исключение.

Установка финального обработчика исключений

Обычно, он устанавливается в первичном потоке, как можно ближе к точке входа программы, вызовом API-функции SetUnhandledExceptionFilter. Таким образом, он защищает всю программу от этой точки и до конца



Ранг: 516.1 (!), 39thx
Активность: 0.280
Статус: Участник

Создано: 18 июня 2005 22:19
· Личное сообщение · #17

по адресу 401469 та самая установка обработчика: push crackme.004012DD (адрес процедуры обработчика, туда гляди и внимательно смотри как обрабатывается структура EXCEPTION_POINTERS, она будет указывать на новое место перехода после исключения)



Ранг: 8.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 18 июня 2005 22:26
· Личное сообщение · #18

Так что на счет Ольки? Никак не отмазать ее от такой вещи?




Ранг: 332.0 (мудрец)
Активность: 0.180
Статус: Участник
•Pr0tEcToRs KiLLeR•

Создано: 18 июня 2005 22:32
· Личное сообщение · #19

cust пишет:
Так что на счет Ольки? Никак не отмазать ее от такой вещи?

можно отмазать... юзай плагин HideDebugger.



Ранг: 516.1 (!), 39thx
Активность: 0.280
Статус: Участник

Создано: 18 июня 2005 22:36 · Поправил: Av0id
· Личное сообщение · #20

4013FC - меняем je на jmp, программа запускается (при это конечно нужно поставить все галки в Debugging Options -> Exceptions + добавить в список C0000005)

ps. на обработчике C0000094 (DIVISION BY ZERO) идёт дешифрация процедуры проверки валидности серийника - обычный xor (адрес самой дешифрации 4012F5, адрес начала процедуры 409000)



Ранг: 8.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 18 июня 2005 23:02
· Личное сообщение · #21

Mario555
можно отмазать... юзай плагин HideDebugger.
Че то такое странное очучение что исключения не по этой части (IsDebuggerPresent)



Ранг: 516.1 (!), 39thx
Активность: 0.280
Статус: Участник

Создано: 18 июня 2005 23:26
· Личное сообщение · #22

HideDebugger тут не поможет, тут ничего не поможет кроме временного патча (если кейген собрался писать), что патчить уже сказано в прошлом моём посте

ps. длина серийника 29 символов, вида "xxxxx-xxxxx-xxxxx-xxxxx-xxxxx"



Ранг: 8.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 18 июня 2005 23:33
· Личное сообщение · #23

А как на счет такого: вместо DIV ecx=0 прописать CALL 4012DD и в параметры ему дать указатель на собранный EXCEPTION_POINTERS для DIVIZION BY ZERO? А про первый exception вместо MOV BYTE PTR DS:[ESI],1 -->> mov ecx,110 чтоб до DIV ecx=0 спокойно дойти




Ранг: 332.0 (мудрец)
Активность: 0.180
Статус: Участник
•Pr0tEcToRs KiLLeR•

Создано: 18 июня 2005 23:41
· Личное сообщение · #24

Av0id пишет:
HideDebugger тут не поможет, тут ничего не поможет кроме временного патча

nocomments...
PS не шарите - не спорьте =)



Ранг: 8.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 18 июня 2005 23:48
· Личное сообщение · #25

А ты присоединяйся, не откажемся от дельного совета.
Я и правда не совсем догнал как HideDebugger поможет в этом случае. М.б. поведаеш тайну?



Ранг: 200.3 (наставник)
Активность: 0.090
Статус: Участник

Создано: 18 июня 2005 23:49
· Личное сообщение · #26

Mario555 пишет:
PS не шарите - не спорьте =)
- так объяснил бы народу про seh

-----
Само плывет в pуки только то, что не тонет.




Ранг: 8.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 19 июня 2005 00:16
· Личное сообщение · #27

4 15 ночи ) Надо бы чаю... А вы думайте думайте



Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 19 июня 2005 01:40
· Личное сообщение · #28

Mario555 пишет:
PS не шарите - не спорьте =)

Категорически не согласен .
Если со знающими людьми не спорить, полезных знаний и умений не будет вообще.
Вы ведь даже на спор с трудом реагируете.

-----
Всем привет, я вернулся




Ранг: 192.3 (ветеран), 18thx
Активность: 0.120
Статус: Участник
stoned machine-gunner

Создано: 19 июня 2005 02:19
· Личное сообщение · #29

Во-первых посмотрите на опции HideDebugger, во-вторых почитайте про SEH. Всё станет ясно.

DrFits
cust
Bitfry
Прекращайте флейм!

-----
once you have tried it, you will never want anything else




Ранг: 516.1 (!), 39thx
Активность: 0.280
Статус: Участник

Создано: 19 июня 2005 13:17
· Личное сообщение · #30

этому крякми HideDebugger всё равно что псу пятая нога

cust пишет:
А как на счет такого: вместо DIV ecx=0 прописать CALL 4012DD и в параметры ему дать указатель на собранный EXCEPTION_POINTERS для DIVIZION BY ZERO? А про первый exception вместо MOV BYTE PTR DS:[ESI],1 -->> mov ecx,110 чтоб до DIV ecx=0 спокойно дойти


о мой бох, зачем так сложно, самый простой способ пропатчить зашифрованную процедуру (там всего лишь убогий xor-байт), но для того чтобы программа нормально работала под отладчиком нужно изменить всего один jump (как уже было сказано: 4013FC - меняем je на jmp)


. 1 . 2 . >>
 eXeL@B —› Основной форум —› Интересный крякми
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати