Сейчас на форуме: _MBK_, vsv1, ut2004 (+6 невидимых)

 eXeL@B —› Вопросы новичков —› Адреса в HIEW и SoftIce
Посл.ответ Сообщение

Ранг: 1.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 22 февраля 2007 11:57
· Личное сообщение · #1

HIEW показывает, что нужный участок кода имеет адрес 4BDBD5. Если написать bpx 4BDBD5, бряк не срабатывает. Как преобразовать его чтоб он соответствовал формату SoftIce?



Ранг: 2.5 (гость)
Активность: 0.010
Статус: Участник

Создано: 22 февраля 2007 14:12
· Личное сообщение · #2

Дык это не "формат SoftIce" ;) RTFM
Hiew тебе показал физический адрес, а отладчик работает с адресами в памяти, что практически то же самое, но еще плюс смещение от начала сегмента. Читай книжки, бери калькулятор и ты за пару минут его посчитаешь, прибавишь и получишь адрес "формата SoftIce" ;))




Ранг: 107.6 (ветеран)
Активность: 0.110
Статус: Участник

Создано: 22 февраля 2007 14:16
· Личное сообщение · #3

The Cyber
Загружаешь в сАйс прогу, смотришь ее начальный адрес. Сравниваешь его с начальным адресом в Hiew, а дальше СуперСложнаяМатематика...
Другой вариант - если по 4BDBD5 (или рядом) вызывается API, то ставишь в сАйсе кряк на нее, а дальше - дело техники =)
ЗЫ: А вообще прислушайся к совету Moonglow (насчет RFTM =)

-----
программистом не рождаются - им умирают




Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 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-формат ребята. ;)

-----
Всем привет, я вернулся




Ранг: 1.4 (гость)
Активность: 0=0
Статус: Участник

Создано: 23 февраля 2007 12:41
· Личное сообщение · #5

Я писал
addr myname
bpx 4BDBD5
Код точно выполняется; если его изменить в HIEW, прога ведет себя по-другому.
ImgBase=40000, так прибавлять к адресу BDBD5? И напишите про математику без RTFM!




Ранг: 120.9 (ветеран), 5thx
Активность: 0.080
Статус: Участник
Programmer and reverser

Создано: 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.

-----
Уважайте других и пишите грамотно.





Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 23 февраля 2007 23:29
· Личное сообщение · #7

Executioner пишет:
offset = RVA – IMAGE_SECTION_HEADER.VirtualAddress + IMAGE_SECTION_HEADER.PointerRawData


надо ещё учитывать выранивание
также, если оффсет секции = 0, то она виртуальная...

-----
[nice coder and reverser]




Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 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).

-----
Всем привет, я вернулся




Ранг: 0.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 25 февраля 2007 07:52 · Поправил: ZxMagnatec
· Личное сообщение · #9

Сылки нет на RTFM...



Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 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
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати