Сейчас на форуме: asfa, _MBK_, Rio (+6 невидимых)

 eXeL@B —› Вопросы новичков —› Зацикливание (EBFE) и как отладить процесс подключаемый к основному
Посл.ответ Сообщение

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

Создано: 19 февраля 2009 02:10
· Личное сообщение · #1

Привет, кто знаком с защитой Crypkey или просто с техникой зацикливания в реверсинге, поясните пожалуйста сл. ситуацию.
Есть прога, при запуске она создает файл cksXX.tmp, которому впоследствии передается управление над ней и он становится отладчиком данной проги используя CreateDebugEvent, ContinueDebugEvent, WriteProcessMemory
Мне надо отлаживать именно этот cksXX.tmp а не саму прогу, поэтому для этого сразу после создания этого файла на диске в коде основной проги надо как-то зациклить отладчик чтобы он остановился на месте передачи управление в cksXX.tmp
1. попробовал изменять файл cksXX.tmp на диске, сразу после его создания основной программой, во время ее выполнения
2. попробовал патчить этот файл прямо в памяти основной проги во время выполнения
Результат один, программа зацикливается, только почему-то не в пропатченном месте, где должен вызываться cksXX.tmp, а где-то в недрах ntdll и выйти отсюда я уже не могу.

Вобщем, в двух словах, я не знаю как мне отладить процесс, который подключается к тому, что уже отлаживается через OllyDebug но надеюсь кто-то может пояснить мне как это сделать.

Спасибо

P.S. Скорее всего это вопрос к Archer'u, как человеку знакомому с CrypKey.



Ранг: 138.7 (ветеран), 135thx
Активность: 0.110
Статус: Участник

Создано: 19 февраля 2009 12:01
· Личное сообщение · #2

Это читал?
http://exelab.ru/rar/dl/CRACKLAB.rU_52.rar




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 19 февраля 2009 20:13
· Личное сообщение · #3

А чо сразу Archer, я так, не при делах.
А если серьёзно-то статья тут лежит, в принципе хорошая, по ней вполне можно сделать. Непонятно, где он у тебя застревает в нтдлл, если там циклов нет. Видимо, аттачишься олькой. Дык она при аттаче стопится в нтдлл-это нормально, надо отпустить на выполнение и остановить руками уже. Ещё олька аттачится иногда коряво, надо заново запускать ольку перед аттачем. Короче, не совсем понятен вопрос, где оно у тебя застряло и что ты сделал.



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

Создано: 19 февраля 2009 23:06
· Личное сообщение · #4

http://exelab.ru/rar/dl/CRACKLAB.rU_52.rar
Это читал. В связи с этим собственно и возник вопрос.

После создания CRYPKEY debugger (файл cksXX.tmp) основная прога пишет в него код, который теперь будет ее парсить, т.е. заменять в ней места СС на реальный код. Вот этот "парсер" я и попытался отладить двумя вышеописаными способами.
1. пока основная прога висит в Olly, пошел во временную папку, нашел там свежесозданный cksXX.tmp, открыл его, переписал первые 2 байта на EBFE (прыжок на себя), сохранил, в Olly нажал F9, потом F12 но остановился в NTDLL (7C90EB94h) а не на цикле EBFE
2. второй способ - дописал байты EBFE в код "парсера" в основной проге еще до записи их cksXX.tmp, но оказываюсь там же

Если я правильно понял, мне надо не F9 нажимать а CTRL+F8 и суметь вовремя остановить цикл на EBFE?
Как-то это непрофессионально, или я не понимаю намеков?



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

Создано: 19 февраля 2009 23:12 · Поправил: artemiusgreat
· Личное сообщение · #5

А вообще в данном туториале непонятна одна фраза вот здесь:

"А теперь можно запустить OD и приаттачиться к cksXX.tmp. Затем надо приостановить процесс, жмем F9 и затем F12, теперь мы на EP лоадера."

Я не понимаю что значит приаттачиться к процессу? Это ведь можно только DLL, при чем здесь Olly Debug, как им можно приаттачиться к чему-то?




Ранг: 154.2 (ветеран), 66thx
Активность: 0.080
Статус: Участник
REVENGE Crew

Создано: 20 февраля 2009 11:44
· Личное сообщение · #6

artemiusgreat пишет:
Я не понимаю что значит приаттачиться к процессу? Это ведь можно только DLL, при чем здесь Olly Debug, как им можно приаттачиться к чему-то?


Меню «File» — «Attach».




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 20 февраля 2009 19:23
· Личное сообщение · #7

Сдаётся мне, автор слабо понимает возможно отладчика, что такое процесс, как происходит его отладка и тд. Почитайте общие статьи для ликбеза, потом уже вернитесь к этой лучше.
Аттач-это аттач олькой к новому процессу, либы здесь вообще не при чём.



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

Создано: 20 февраля 2009 22:21
· Личное сообщение · #8

Сдается мне, автор создал тему в разделе "Вопросы новичков" а не "Я крут, т.к. хакнул 5000 прог и знаю дебаггер наизусть"
1. Мануал по дебаггеру читал, но запоминать все его функции и нужные и ненужные как-то нерационально (я бы даже сказал, не побоюсь сего слова, невозможно), да и запоминается все в основном уже при использовании
2. В разработке Windows не участвовал, увы, но зато писал под него, в том числе и подобие виндового Task Manager, поэтому кое-что о процессах и тредах мне, как это ни странно, известно
Поэтому собственно и возник вопрос, Olly ведь работает в Ring3 а поэтому оказаться в адресном пространстве процесса можно лишь в качестве подгруженной в него DLL, дочернего процесса или WriteProcesMemory. Вот я и подумал что возможно в мануале что-то другое имелось в виду, решил уточнить чтобы на пустом месте не гадать несколько дней

kioresk пишет:
Меню «File» — «Attach»


Большое спасибо.
Все бы так писали а не описывали теретические возможности Гугла и мануалов



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

Создано: 27 февраля 2009 02:01
· Личное сообщение · #9

Матриализовалось еще некоторое кол-во вопросов
Простите что я юн и зелен
1. Хотелось бы поинтересоваться, если в CRYPKEY запакован не основной ЕХЕ а подключаемая DLL, надо ли в ней после распаковки восстанавливать таблицу импорта, ОЕР и производить еще какие-то изменения?
2. Как понять что таблица импорта неправильная?




Ранг: 154.2 (ветеран), 66thx
Активность: 0.080
Статус: Участник
REVENGE Crew

Создано: 27 февраля 2009 11:52 · Поправил: kioresk
· Личное сообщение · #10

1. Хотелось бы поинтересоваться, если в CRYPKEY запакован не основной ЕХЕ а подключаемая DLL, надо ли в ней после распаковки восстанавливать таблицу импорта, ОЕР и производить еще какие-то изменения?

С CrypKey дел не имел, но обычно достаточно просто понять чем скомпилирован файл и проверить указан ли OEP в секции кода/похож ли он на нормальный/нет ли редиректа с OEP на другой код.

Например:
1. для Delphi либо в конце секции .CODE (для старых версий), либо во 2-й секции .itext (если кратко, то можно найти OEP, если посмотреть конец секции .text — там будет ссылка на процедуру в .itext, после которой расположен OEP).
2. для Borland C — в начале секции кода перед строкой «C++HOOK».
3. для Microsoft C — на OEP'е часто идет push 58/60/70.

Обычно достаточно просто сравнить в Ida нормальный файл и подопытный и все станет понятно.

2. Как понять что таблица импорта неправильная?

С импортом тоже самое. Смотришь где он расположен в нормальном файле и сравниваешь со своим. У Delphi/Borland C импорт обычно храниться отдельно в секции .idata, у Miscrosoft C — в секции .rdata (Thunk'и или указатели на функции хранятся в самом начале файла, а IAT или директория импорта — почти в самом конце секции).

Открой файл в PE Tools, посмотри что указано в таблице импорта (Directories — Import Directory), т.е. где он храниться и просмотри сам импорт (...), т.е. сколько библиотек/функций используется.
У упакованных файлов в импорте обычно хранятся только пара функций (нужных для распаковки файла и заполнения импорта) вроде GetModuleHandle/LoadLibrary/GetProcAddress/VirtualAlloc.

П.С.
Еще не забывай, что у библиотеки обязательно должны быть релоки (relocation table) и если файл был запакован и изменена TLS, то ее тоже надо подправить.


 eXeL@B —› Вопросы новичков —› Зацикливание (EBFE) и как отладить процесс подключаемый к основному
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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