![]() |
eXeL@B —› Основной форум —› Про Debug API |
Посл.ответ | Сообщение |
|
Создано: 25 ноября 2005 13:52 · Личное сообщение · #1 Всем привет! Заломал я прожкуу запротекченную армой и теперь делаю патчик-лодырь для нее. И вот такая коллизия: Мой лодырь садится на прогу как отладчик (CreateProcess, lpProgName, ... DEBUG_PROCESS ....) и все идет нормально до тех пор пока арма сама не выполняет DebugActiveProcess, тут облом-то и настает - EAX=0 , ну и дальше зависалово. Внимание вопрос: Могут ли два разных процесса(мой и армовский) отлаживать третий процесс одновременно, используя при этом Debug API. Или права на отладку есть только у моего процесса, а армовский бреется ? ![]() |
|
Создано: 25 ноября 2005 14:09 · Поправил: Step · Личное сообщение · #2 |
|
Создано: 25 ноября 2005 14:14 · Личное сообщение · #3 2Step По пункту 1: Это есть принципиальное ограничение Das Windows ???? Я в msdn ни слова не встретил о таком ограничении. По пункту 2: Чтобы добраться до места которое нужно отпатчить, нужно сперва дотрейситься до нужного места, для этого и юзаю debug api Пункт 3: ну за 1,5 года перебрал архив, вроде такого не видал ![]() |
|
Создано: 25 ноября 2005 14:15 · Личное сообщение · #4 |
|
Создано: 25 ноября 2005 14:21 · Поправил: Step · Личное сообщение · #5 |
|
Создано: 25 ноября 2005 14:22 · Личное сообщение · #6 |
|
Создано: 25 ноября 2005 14:28 · Личное сообщение · #7 TOG Ещё раз. Два отладчика не сядут на прогу. В адр.пространстве процеса, есть недокумент.структура, а там поле - контекст отладчика. Так что даже при большом желании два отладчика юзер-режима на прогу не сядут ! Если уж тебя несёт на крайности, то теоретически можно ковырнуть загрузчик армы, а на практике - садо-мазо. ![]() |
|
Создано: 25 ноября 2005 14:29 · Личное сообщение · #8 Patcher-Loader -> ArmaLoader -> MainApp т.о. образом тебе изначально до MainApp не дотянуться, т.к. на момент запуска ArmaLoader, MainApp ещё не активен/запущен выход - ловить момент ContinueDebugEvent самого ArmaLoader и патчить MainApp - либо проерять через ReadProcessMemory какой-либо флаг в ArmaLoader - ... рекомендую почитать ARTeam Tutorials http://intechhosting.com/~access/ARTeam/ar/cracking/tuts.html на тему Cracking with Loaders ----- EnJoy! ![]() |
|
Создано: 25 ноября 2005 14:34 · Личное сообщение · #9 TOG Я запускал два отладчика на один процесс, после чего винда загружала проц на 100 процентов и начинала тормозить... Вероятно, это из-за того, что ядро перегружается сообшениями от обоих отладчиков об отлаживаемом процессе и не в состоянии в реальном времени контролировать сообщения сразу от двух отладчиков, хотя, может, это только у меня винда лагает ![]() ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. ![]() |
|
Создано: 25 ноября 2005 14:36 · Личное сообщение · #10 |
|
Создано: 25 ноября 2005 14:45 · Поправил: Step · Личное сообщение · #11 |
|
Создано: 25 ноября 2005 22:37 · Личное сообщение · #12 |
|
Создано: 25 ноября 2005 23:33 · Личное сообщение · #13 |
|
Создано: 26 ноября 2005 00:18 · Личное сообщение · #14 |
|
Создано: 26 ноября 2005 00:22 · Личное сообщение · #15 |
|
Создано: 26 ноября 2005 11:07 · Личное сообщение · #16 |
|
Создано: 26 ноября 2005 13:04 · Личное сообщение · #17 Инлайн это конечно хорошо, а если бы небыло этих туторов ?! Для создания инлайна пришлось бы разбираться еще и с CRC. Мне кажется, что лодырь-отладчик нулевого кольца есть перспективное решение проблемы. Он подойдет для патча ЛЮБЫХ защит. Можно ставить железные бряки на ЛЮБОЙ процесс, патчить опять-же ЛЮБОЙ процесс. Этож просто красота - не нужно париться с обходом CRC, которая от версии к версии будет все более извращенной. Бряк,.... узнали адрес второго процесса,......бряк....., узнали адрес аллоченной памяти,..... бряк,..... патч ! Надо попробовать ![]() ![]() |
|
Создано: 26 ноября 2005 13:12 · Личное сообщение · #18 что мешает ставить hardware break point в ring3 с помощью того же DebugAPI? бряк, установленный в ring0 по своей функиональности не отличается от ring3 если вспомнишь tElock, он убирал hardware bp, устанавливаемые SoftIce, так что hwbp - не панацея ExeCryptor также убирает их короче, для нормального фукнционала тебе так или иначе потребуется грамотный драйвер (см. статьи Ms Rem), либо предварительное исследование кода программы, что уже не универсально ----- EnJoy! ![]() |
|
Создано: 26 ноября 2005 14:07 · Личное сообщение · #19 Дык, Jupiter. Железный бряк то надо в контексте нужного процесса ставить, а не глобально. Ну и соответственно из ring3 мне не доступны какие угодно процессы, а только порожденные моим процессом. Так ведь ? Вот я и не смогу поставить железный бряк на второй процесс армы. Или я что-то путаю ? А чтобы мои железные бряки не слетали, я так понимаю юзается 13-й бит Dr7. Если он установлен то при ЛЮБОМ обращении к отладочным регистрам возникает исключение, которое будет мной получено, ну и можно принять контрмеры. ![]() |
|
Создано: 26 ноября 2005 15:50 · Личное сообщение · #20 |
![]() |
eXeL@B —› Основной форум —› Про Debug API |
Эта тема закрыта. Ответы больше не принимаются. |