![]() |
eXeL@B —› Вопросы новичков —› Адреса в HIEW и SoftIce |
Посл.ответ | Сообщение |
|
Создано: 22 февраля 2007 11:57 · Личное сообщение · #1 |
|
Создано: 22 февраля 2007 14:12 · Личное сообщение · #2 |
|
Создано: 22 февраля 2007 14:16 · Личное сообщение · #3 The Cyber Загружаешь в сАйс прогу, смотришь ее начальный адрес. Сравниваешь его с начальным адресом в Hiew, а дальше СуперСложнаяМатематика... Другой вариант - если по 4BDBD5 (или рядом) вызывается API, то ставишь в сАйсе кряк на нее, а дальше - дело техники =) ЗЫ: А вообще прислушайся к совету Moonglow (насчет RFTM =) ----- программистом не рождаются - им умирают ![]() |
|
Создано: 22 февраля 2007 22:43 · Личное сообщение · #4 The Cyber, не слушай их ![]() The Cyber пишет: HIEW показывает, что нужный участок кода имеет адрес 4BDBD5. Тут много моментов. Какой именно файл? В каком режиме Hiew? Ну, допустим твой файл формата PE и это exe, а не dll. Тогда по умолчанию Hiew будет показывать VA (виртуальные адреса). С вероятностью 99% образ PE-exe-файла будет размещён в памяти, так как показывает Hiew. Твой код будет именно по адресу 4BDBD5. Только нужно учесть, что дело идёт об адресном пространстве конкретно этого процесса (выбирай контекст командой addr). Если dll – то нужно пересчитывать VA через RVA (от реального размещения образа). The Cyber пишет: Если написать bpx 4BDBD5, бряк не срабатывает А кто сказал, что этот код вызывается вообще? И опять-таки, перед бряком не забудь "addr ID или имя процесса (если копия одна)". А вообще: курите PE-формат ребята. ;) ----- Всем привет, я вернулся ![]() |
|
Создано: 23 февраля 2007 12:41 · Личное сообщение · #5 |
|
Создано: 23 февраля 2007 13:15 · Личное сообщение · #6 RVA = VA - IMAGE_OPTIONAL_HEADER.ImageBase VA = RVA + IMAGE_OPTIONAL_HEADER.ImageBase offset = RVA – IMAGE_SECTION_HEADER.VirtualAddress + IMAGE_SECTION_HEADER.PointerRawData Если смещение находится вне секции, т.е. в заголовке, таблице секций или еще где-нибудь, то естественно файловое смещение равно RVA. ----- Уважайте других и пишите грамотно. ![]() |
|
Создано: 23 февраля 2007 23:29 · Личное сообщение · #7 |
|
Создано: 24 февраля 2007 00:37 · Личное сообщение · #8 The Cyber пишет: Код точно выполняется; если его изменить в HIEW, прога ведет себя по-другому. Как именно она себя ведёт. Одно дело по-другому, а другое – в соответствие с тем, что ты изменил. Поставь int3 (ССh) и включи в Морозильнике на него бряк (SET I3HERE ON). The Cyber пишет: ImgBase=40000, так прибавлять к адресу BDBD5? И напишите про математику без RTFM! Разговор становится беспредметным. Всё доку PE-формата на форуме никто излагать не будет. А на вопросы ты не отвечаешь... Exe или dll? Если exe, то на всякий случай посмотри, нет ли там релоков, мало ли. =) В Hiew'e F4,F8,F10 – смотри, есть ли таблица релоков (fixups не 0). ----- Всем привет, я вернулся ![]() |
|
Создано: 25 февраля 2007 07:52 · Поправил: ZxMagnatec · Личное сообщение · #9 |
|
Создано: 25 февраля 2007 08:24 · Личное сообщение · #10 Изучаем PE-формат по следующим документам: - PE.TXT. Написал Bernd Luevelsmeyer (лучшая дока) - Здесь в разделе статей две части "Об упаковщиках в последний раз" - На openRCE.org есть графическое представление внутренностей PE-файла (кажись "PE Format graph.pdf" называется) - Исходники загрузчика PE-файлов на С++ (линуксовщикам респект): stanson.chat.ru/yaw_ru.html - Статья на RSDN, название: "Загрузчик PE-файлов": www.rsdn.ru/?article/baseserv/peloader.xml - И на (для тех у кого) худой конец от MS дебильная дока PECOFF.pdf А на вопрос: что такое RVA, есть ответ даже в старом добром FAQ (ссылка в шапке ^). ----- Всем привет, я вернулся ![]() |
![]() |
eXeL@B —› Вопросы новичков —› Адреса в HIEW и SoftIce |