-
Автор темы
- #1
Так как гайдов на тему нахождения этой "злостной" сигнатуры нет НИГДЕ, то я решил это выложить нашим форумчанам (ft, ev0, idk..)
Сразу предупреждаю заядлых IDA мастеров, которые шарят как-либо найти её "быстрее" по определенным текстам из функи перед получением длины идут лесом, гайд предназначался для новичков-новичков, которые желают хоть чему-то научиться для обновления (и не только) своей пасты. 1. Первым шагом перед вступлением в великую команду IDA менеджеров, Вам нужно как ни странной зайти в саму: (иду 32?!) и выбрать нашу
2. Далее как ида получила всё что ей нужно, заходим в строку поиска, которая находиться в search -> Text... и вписываем туда следующий текст (на самом деле можно и по другому, но в данном гайде я указываю как удобно конкретно мне):
3. Как мы дождались поиска текста, мы увидим следующую картину:
Конкретно нас же интересует практически каждая строчка с Failed хуком, которая проверяет Valve (Это помогает нам найти уже саму функцию хука).
4. После того как мы выбрали любую из строчек с неудачным хуком, Вам понадобиться перейти к ней (двойным кликом ЛКМ) и нажать F5 (для получения псевдокода)
Мы получаем следующую практически всегда полностью похожую во всех фейлах (для своего удобства я выбрал хук FreeLibrary):
5. Так как эта проверка по сути наша подсказка напрямую к функции, то как можно увидеть dword_1010FFB0 проверяется после вызова функции sub_10072B90 (Это есть наша попытка хука функции с указанием некоторых чеков)
Нас от сюда интересует: sub_10072290, потому что это и есть хук, он и даёт возврат на его успешность. (Перейти также можно и путем одного нажатия ЛКМ и после же F5, либо же двойным кликом ЛКМ)
6. После успешного перехода, мы можем увидеть огромный кусок кода, из которого нас интересует лишь пару вещей:
Как и где устанавливается просчёт размера (size) конкретного оппкода?
Нам достаточно просто оттолкнуться от массива Size, который даёт полную наводку над работой с размером. И увидеть то что он устанавливается в первой же строчке по поиску:
7. Успех? Функция LDG (lenght_disasm_game) успешно была обнаружена нашими ручками. Ведь именно sub_100777D0 он и есть, теперь осталось по нему кликнуть 2 раза и перейти в представление общего кода (IDA View) и использовать sigmaker на инструкцию: push edi.
Затем получаем данную сигнатуру: 57 8B 7D ?? B8 ?? ?? ?? ?? 33 F6