![]() |
eXeL@B —› Вопросы новичков —› Как разобратся в бреду?) |
Посл.ответ | Сообщение |
|
Создано: 02 февраля 2007 14:12 · Личное сообщение · #1 После некоторых действий прога джампится на кусок кода который можно посмотреть в аттаче, но там ьред какой-то =) Мне нужно понять что там происходит... Но я не понимаю как в этом бреде можно разобратся)) Как в таких случаях следует поступать и т.д. Help plz =) ![]() ![]() |
|
Создано: 02 февраля 2007 14:32 · Личное сообщение · #2 |
|
Создано: 02 февраля 2007 15:17 · Личное сообщение · #3 |
|
Создано: 03 февраля 2007 02:33 · Личное сообщение · #4 |
|
Создано: 03 февраля 2007 05:32 · Поправил: tundra37 · Личное сообщение · #5 KilUSlf пишет: Сам волкер я уже давно распаковал. То что ты видишь на скрине приходит от сервера и причем каждый раз приходит разный код) От сервера приходит исполняемый код - не смеши. Скорее всего ты что-то неправильно распаковал. 1000хххх - это адрес в DLL. Раз код разный - значит код на входе ее неправильно распаковывает и берет мусор откуда-то. Причем здесь сервер ?! Конечно бывает, что апдейтят, но явно, а не через ![]() ![]() |
|
Создано: 03 февраля 2007 05:47 · Личное сообщение · #6 |
|
Создано: 03 февраля 2007 06:07 · Личное сообщение · #7 tundra37 пишет: От сервера приходит исполняемый код - не смеши. Скорее всего ты что-то неправильно распаковал. 1000хххх - это адрес в DLL. Раз код разный - значит код на входе ее неправильно распаковывает и берет мусор откуда-то. Причем здесь сервер ?! Конечно бывает, что апдейтят, но явно, а не через Это модифицированный волкер. Я писал свой снифер, смотрел в нем пакеты, то что на скрине в прямом виде соответствует тому что приходит от сервера =) И еще я нашел функцию которая данные с сервера в память записывает) Еще я знаю что прежде чем с сервера приходит этот кусок кода ему отпраявлется смещение в памяти где это кусок кода будет (что бы сервер сгенерировал правельный код) gegter пишет: писали, что на валкере висит termida, я проверить не могу, т.к. надо качать 13 метров. по скрину мало, что скажешь. одно ясно - ты в dll. Да нету там никакой крутой защиты, после запуска волкера по нему можно спакойно трейсится =) Облом только после того как на этот кусок кода попадаешь. ![]() |
|
Создано: 03 февраля 2007 06:22 · Личное сообщение · #8 |
|
Создано: 03 февраля 2007 06:51 · Личное сообщение · #9 |
|
Создано: 03 февраля 2007 07:46 · Поправил: Gambit · Личное сообщение · #10 |
|
Создано: 03 февраля 2007 08:14 · Личное сообщение · #11 |
|
Создано: 03 февраля 2007 12:27 · Личное сообщение · #12 |
|
Создано: 03 февраля 2007 22:35 · Личное сообщение · #13 |
|
Создано: 03 февраля 2007 23:40 · Личное сообщение · #14 KilUSlf пишет: Облом только после того как на этот кусок кода попадаешь. Вариантов все равно куча : 1) версия клиента и сервера не совпадает и они не понимают друг друга. 2) защита в шифровании кода и нужно знать "ключ" 3) ты попался на хитрый антиотладочный прием - тогда без отладчика должно работать. 4) распаковал все-таки неправильно и данные попадают на место команд. Это легко проверить, если кусок кода до затирания был "разумным". Версия, что клиент расшифровывает код на лету сомнительна с чисто практической точки зрения - замедление работы. Если же расшифровка производится до "игры", тогда все возможно. Без сравнения с правильно работающей версией боюсь тебе не справиться. ![]() |
|
Создано: 04 февраля 2007 02:22 · Поправил: KilUSlf · Личное сообщение · #15 2 tundra37: Без отладчика все работает, если пытаешься с отладчиком пройти то выкидывает в ntdll с эксепшеном и там зависает. Тоесть это вариант номер три... Что посоветуете? Кстате волкер тут вообще не причем =) Могу на самом ла2 клиенте вам тоже самое показать. Только я джамп в клиенте на этот код найти не могу... Но могу найти возврат из call'a на этот кусок кода, после этого там можно отладчиком гулять. ![]() |
|
Создано: 04 февраля 2007 07:00 · Личное сообщение · #16 KilUSlf пишет: Тоесть это вариант номер три... Что посоветуете? Прежде всего приатачится и не ставить int3 бряки (железные попробовать). Если поможет, то возможно CRC кода участвует в формировании... Приатач пожалуйста PNG сохранённый в PhotoShop'e через Save for Web (цветов как можно меньше, типа 4 =). Тогда многие глянут на этот странный мусор (и я в том числе). ----- Всем привет, я вернулся ![]() |
|
Создано: 04 февраля 2007 22:34 · Личное сообщение · #17 KilUSlf пишет: Что посоветуете? 1) Сделать attach и посмотреть это кусок(адрес) до перехода в него из клиента. 2) Вроде говорили, что в 10.8 apsr Вчера прочел, что плаг IsDebugPresent ->Hide помогает против аспра - попробуй. И почитай про антиотладку в аспре. 3) Это аксиома для меня : ставить железные бряки, если дурить начинает и как последнее - бряк на память по выполнению. Последнее помогает, когда не срабатывает железный. Почему не знаю, но помогало. ![]() |
|
Создано: 05 февраля 2007 03:36 · Личное сообщение · #18 |
|
Создано: 05 февраля 2007 03:47 · Личное сообщение · #19 tundra37 пишет: не срабатывает железный. Отлаживаемая прога имеет доступ к Hardware регистрам на момент обработки исключения. Большинство протов просто обнуляют их, некоторые используют их для создания своих исключений. Бряк на память - вызов VirtualProtectEx(NO_ACCESS) на страницу с данным блоком памяти. При обращении к этой странице возникает исключение, которое обрабатывается отладчиком. Обход - вызов в самой проге VirtualProtect. KilUSlf пишет: Всегда думал что железный бряк это и есть на память на выполнение =) Даже с практической точки зрения - hardware можно установить только 4 штуки и размером только 1, 2, 4 байта. Бряк на память же ставится с любым размером и в любом количестве. При этом с такими бряками прога начинает ОЩУТИМО тормозить. ![]() |
|
Создано: 05 февраля 2007 05:10 · Личное сообщение · #20 |
|
Создано: 05 февраля 2007 05:34 · Поправил: gegter · Личное сообщение · #21 |
|
Создано: 05 февраля 2007 06:33 · Личное сообщение · #22 |
|
Создано: 06 февраля 2007 02:13 · Личное сообщение · #23 |
![]() |
eXeL@B —› Вопросы новичков —› Как разобратся в бреду?) |