Сейчас на форуме: asfa, bartolomeo (+7 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Как посмотреть маску в отладчике |
. 1 . 2 . >> |
Посл.ответ | Сообщение |
|
Создано: 20 марта 2012 12:11 · Поправил: KokoIN · Личное сообщение · #1 Всем добрый день господа и дамы! Как посмотреть маску FindPattern в OllyDbg Вот исходный код финдпаттерна DWORD Hack = FindPattern(Адрес, откуда начинаем искать,диапазон сканирования,[Байты, которые ищем],[Байты, в виде маски]); Пример: DWORD Hack = FindPattern(frostcollector.dll,0x100500,(PBYTE)"\x90\x90\x90\x90\x90,"xxxxxxxxxx"); В отладчике заместо байтов будет стоять маска "xxxxxxxxxx" как вскрыть байты? помогите пожалуйста. ![]() P.S: И можно узнать чем запакована длл-ка ![]() ![]() |
|
Создано: 20 марта 2012 12:15 · Личное сообщение · #2 |
|
Создано: 20 марта 2012 12:34 · Личное сообщение · #3 |
|
Создано: 20 марта 2012 12:57 · Личное сообщение · #4 Видите строчку ASCII "xxxxxxxxxx" на скриншоте, это отображается маска FindPattern, которую указали в исходном коде DWORD Hack = FindPattern(frostcollector.dll,0x100500,(PBYTE)"\x90\x90\x90\x90\x90-это рабочие байты, которые взаимодействуют с frostcollector.dll,"xxxxxxxxxx- вот эта "маска" отображается в отладчике OllyDbg"); Маска-отображение левого кода. Мне нужно узнать байты которые взаимодействуют с frostcollector.dll, я не пойму просто как их посмотреть, если отображается только "маска" ![]() |
|
Создано: 20 марта 2012 14:16 · Личное сообщение · #5 KokoIN видите строчку которую вы сами указали? DWORD Hack = FindPattern(frostcollector.dll,0x100500,(PBYTE)"\x90\x90\x90\x90\x90,"xxxxxxxxxx"); так вот в отладчике видимо как раз и отображается xxxxxxxxxx из этой строчки а указатель на массив байтов (PBYTE)"\x90\x90\x90\x90\x90 может находиться где угодно. исследуйте внутренности своей процедуры FindPattern ![]() |
|
Создано: 20 марта 2012 14:31 · Личное сообщение · #6 |
|
Создано: 20 марта 2012 15:39 · Поправил: Konstantin · Личное сообщение · #7 KokoIN пишет: P.S: И можно узнать чем запакована длл-ка ![]() KokoIN пишет: Мне нужно узнать байты которые взаимодействуют с frostcollector.dll, я не пойму просто как их посмотреть, если отображается только "маска" ![]() Есть некая функция - FindPattern, оперирующая данными - (Адрес, откуда начинаем искать,диапазон сканирования,[Байты, которые ищем],[Байты, в виде маски]). Вам нужно найти в коде этой функции переменную - [Байты, которые ищем], точнее узнать, что она из себя представлят в ассемблерном коде, (данные из стека, регистров, ячейки памяти) так? ![]() |
|
Создано: 20 марта 2012 16:14 · Личное сообщение · #8 Сдается мне, что топикстартер под тем, что являет его ник. ![]() |
|
Создано: 20 марта 2012 16:28 · Поправил: KokoIN · Личное сообщение · #9 Vovan666 пишет: сдается мне что массив это mov ebx,6e16b7ac нет, должно быть 10 символов (смотри на маску состоящая из 10 - x, каждый X число от 1 до F, 0 - обозначается в "маске" - "?" знаком. Konstantin пишет: Вам нужно найти в коде этой функции переменную - [Байты, которые ищем], точнее узнать, что она из себя представлят в ассемблерном коде, (данные из стека, регистров, ячейки памяти) так? Да. ![]() |
|
Создано: 20 марта 2012 16:40 · Поправил: Konstantin · Личное сообщение · #10 Если значение переменной известны, то проще поставить бряк на начало функции и потрассировать. Оценить алго по вашим скринам - зрение сломаешь. Выкладывайте скрины лучше с превью, и картинку заливайте на хостинг без изменения размера. Есть еще соответствующий bbcod на этом форуме, чтобы выложить код в текстовом виде. ![]() |
|
Создано: 20 марта 2012 16:52 · Поправил: tihiy_grom · Личное сообщение · #11 |
|
Создано: 20 марта 2012 16:53 · Личное сообщение · #12 Code:
![]() |
|
Создано: 20 марта 2012 16:56 · Личное сообщение · #13 |
|
Создано: 20 марта 2012 17:04 · Поправил: Konstantin · Личное сообщение · #14 tihiy_grom пишет: чего там трассировать? в функцию передаётся 4 параметра.Когда в отладчике мы зашли в эту функцию - все эти 4 параметра лежат в стеке. Не судьба что ли их посмотреть? Видимо судьба у всех разная. ![]() P.S. Вот и ответ. KokoIN пишет: Поподробнее можно со стеком ![]() ![]() |
|
Создано: 20 марта 2012 17:14 · Личное сообщение · #15 |
|
Создано: 20 марта 2012 17:48 · Поправил: KokoIN · Личное сообщение · #16 |
|
Создано: 20 марта 2012 18:13 · Поправил: Konstantin · Личное сообщение · #17 KokoIN пишет: А смысл тут в чем? типа x - это 78? и "?" знак = 3F Допустим сигнатура - 010203, маска - x?x Вот байты сигнатуры - 01, 03 будут сравниваться в цикле, а байт 02 будет игнорироваться(может быть любым). Т.е. мы ищем - 01??03. Чё куришь? Поделись. ![]() Кoму, зачем и для чего нужны такие байты? В EAX находится адрес - 6af5b3e0. Байты выделенные красным это тот же адрес в текстовом виде. ![]() |
|
Создано: 20 марта 2012 18:20 · Личное сообщение · #18 |
|
Создано: 20 марта 2012 18:25 · Поправил: KokoIN · Личное сообщение · #19 |
|
Создано: 20 марта 2012 18:32 · Личное сообщение · #20 |
|
Создано: 20 марта 2012 18:45 · Поправил: KokoIN · Личное сообщение · #21 |
|
Создано: 20 марта 2012 18:51 · Поправил: Konstantin · Личное сообщение · #22 ЭЭЭЭЭ, мдя. Hellspawn пишет: KokoIN в окне дампа, ctlr+g 6AF9B7AC Вроде уже ответили, или всё по кругу? Вот по этому адресу - 6AF9B7AC паттерн и находится. Удобнее всего его посмотреть в окне дампа отладчика. P.S. Вот сюда загляните. ![]() |
|
Создано: 20 марта 2012 20:00 · Поправил: KokoIN · Личное сообщение · #23 Konstantin, вот смотри. Code:
P.S: Где тут можно увидеть байты паттерна? покажи плиз, а то я туплю... ![]() |
|
Создано: 20 марта 2012 20:19 · Поправил: tihiy_grom · Личное сообщение · #24 ну давайте третий раз попробуем ... Hellspawn пишет: KokoIN в окне дампа, ctlr+g 6AF9B7AC сейчас надо будет очень сильно напрячься, чтобы третий раз не протупить с адресом, и в окне дампа перейти именно на тот адрес, который указан в строке Code:
и надо снова не протупить, и не лезть в окно дампа именно по этому адресу - потому что ImageBase у библиотеки будет другой, и адрес тоже изменится с учетом этой новой ImageBase. и следующий вопрос наверное будет такой - а что такое ImageBase, да? я вот только одного не могу понять (у меня много вопросов сейчас к вам будет) - на кой черт вам сдались эти байты? - что это вам даст, если вы их посмотрите в отладчике? - почему не посмотреть эти байты в стеке, куда они передаются как параметр для функции? - почему сначала не почитать где находится окно стека в отладчике ollydbg ? - почему сначала не почитать цикл статей "Введение в крэкинг с нуля, используя OllyDbg", ссылку на которые дал Konstantin ? ![]() |
|
Создано: 20 марта 2012 21:07 · Поправил: Konstantin · Личное сообщение · #25 KokoIN пишет: Konstantin, вот смотри. Если программу постоянно перезагружать в отладчике, то длл каждый раз грузится по разным адресам. Чтобы узнать адрес сигнатуры нужно заново отыскать тот код. А именно строку Code:
Но адрес соответственно будет уже другой, и вот по этому адресу пройти в окне дампа отладчика. Судя по приведенному коду в посте выше длл была загружена предположительно по базе 6e4?????, соответственно адрес сигнантуры будет - 6e4aB7AC KokoIN пишет: P.S: Где тут можно увидеть байты паттерна? покажи плиз, а то я туплю... 6E4AB798, а нужно 6e4aB7AC. P.S. Щас посмотрел что написал, и я уже под столом. Заразительно однако. Да действительно адреса теже. А что смущает в данной сигнатуре ? E8 F8 0F 00 00 8B C3 8B 4D F4 00 ... не знаю её длину. Сама сигнатура что из себя должна предсталять? Часть кода, текстовою строку, какие то другие данные? ![]() |
|
Создано: 20 марта 2012 21:37 · Поправил: KokoIN · Личное сообщение · #26 Konstantin пишет: Сама сигнатура что из себя должна предсталять? Часть кода, текстовою строку, какие то другие данные? Сигнатура должна из себя представлять цифры и буквы из шестнадцатеричной системы счисления, вот например маска "xxxxxxxxxx" состоит из 10 x, в ней нет ? знака - а значит что двух нулей соответственно нет. Пример сигнатуры \x90\x90\x90\x90\x90 - тут могут быть другие значения от 1 до F, исключение составляет \x00 = ? знак. ![]() |
|
Создано: 20 марта 2012 21:53 · Поправил: Konstantin · Личное сообщение · #27 KokoIN пишет: Пример сигнатуры \x90\x90\x90\x90\x90 - тут могут быть другие значения от 1 до F значения от 00 до ff KokoIN пишет: исключение составляет \x00 = ? знак. Исключений нет, так как присутствует маска, которая в данном случае определяет ещё длину сигнатуры, а вот если бы маски не было, то было бы исключение. E8F80F00008BC38B4DF4 - сигна xxxxxxxxxx или (78787878787878787878) или (\x78\x78\x78\x78\x78\x78\x78\x78\x78\x78) - маска Что не так? ![]() |
|
Создано: 20 марта 2012 22:02 · Поправил: KokoIN · Личное сообщение · #28 |
|
Создано: 20 марта 2012 22:13 · Личное сообщение · #29 KokoIN пишет: где ты взял 78 KokoIN пишет: А смысл тут в чем? типа x - это 78? Именно. KokoIN пишет: 10 символов Ай яй яй. Должно быть 10 байт. в виде дампа байтов: E8F80F00008BC38B4DF4 - сигна 78787878787878787878 - маска в текстовом виде: \xE8\xF8\x0F\x00\x00\x8B\xC3\x8B\x4D\xF4 - сигна \x78\x78\x78\x78\x78\x78\x78\x78\x78\x78 - маска ![]() |
|
Создано: 20 марта 2012 22:18 · Поправил: KokoIN · Личное сообщение · #30 |
. 1 . 2 . >> |
![]() |
eXeL@B —› Вопросы новичков —› Как посмотреть маску в отладчике |
Эта тема закрыта. Ответы больше не принимаются. |