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

 eXeL@B —› Вопросы новичков —› Запутался с адресами
Посл.ответ Сообщение

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

Создано: 04 августа 2015 17:05
· Личное сообщение · #1

День добрый, нашел программу необходимую с кряком, решил посмотреть где автор кряка сделал изменения, так для общего развития. Закинул ExamDiff Pro 7 два бинарника, оригинал и крякнутый, закинул в иду оригинал, запутлся что то я с адресами и офсетами. В иде http://i.piccy.info/i9/6933a5a21ec2c22ce635a68cb481287d/1438696175/52326/936211/1.png
адрес например одной из инструкций 6С0074 в ExamDiff смотрю нет такого адреса и в помине http://i.piccy.info/i9/8c421826b8c8c118664c566522874be6/1438696183/135171/936211/2.png
Подскажите где ошибся? Откуда такая путаница с адресами.
Кто то спросит как нашел эту инструкцию, а вверху изменения прога выделяет и это изменение по опкоду jnz это в хексе 75 нашел.



Ранг: 45.7 (посетитель), 40thx
Активность: 0.030
Статус: Участник

Создано: 04 августа 2015 17:21
· Личное сообщение · #2

Погуглите что такое va,rva,offset
Хотя вам это врядли поможет



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

Создано: 04 августа 2015 18:40 · Поправил: viksabur
· Личное сообщение · #3

Вот я и говорю, что запутался со смещениями и виртуальными адресами, собственно о чем и вопрос.

Вот адреса сегментов http://i.piccy.info/i9/c5af8ee83f087f4ada8819a565438620/1438703132/33346/936211/3.png




Ранг: 622.6 (!), 521thx
Активность: 0.330.89
Статус: Участник
_Вечный_Студент_

Создано: 04 августа 2015 19:08 · Поправил: plutos
· Личное сообщение · #4

Во-первых, в правилах форума ясно сказано:
Пункт 2:
При создании топика в качестве темы указывайте суть вопроса, НЕ надо тем топиков "помогите", "срочно".
или "Запутался с адресами"

Во-вторых, прежде чем что-то в ИДУ "закидывать", может быть все же почитать теорию, хотя бы основы?
ну хотя бы здесь:http://acmvm2.srv.mst.edu/wp-content/uploads/2014/07/PE-Header-Bible.pdf

-----
Give me a HANDLE and I will move the Earth.




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

Создано: 04 августа 2015 19:37
· Личное сообщение · #5

1. Так это и была суть вопроса, запутался с адресацией, никаких помогите, срочно там не было.
2. У меня нет цели стать реверсом номер один и знать все тонкости и нюансы РЕ заголовков и прочее, читал про VA, RVA но все равно не очень понял собственно поэтому и задал вопрос, для этого форумы собственно и существуют. Завязывайте поучать, что читать и где гуглить, есть желание подскажите по сабжу нет, ну проходите мимо.




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 04 августа 2015 19:43
· Личное сообщение · #6

не проще ли взять тогда нормальный diff-asm который покажет и "правильные" адреса, которые будут совпадать ?

а иначе тема выглядит именно как "хочу понять почему адреса разные", вот вам и дают правильные советы - читать и учиться



Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 04 августа 2015 19:53
· Личное сообщение · #7

viksabur
На пальцах, поверхностно:
Навернож ExamDiff показывает сырые смещения от начала файла. А в случае с IDA Pro, файло грузится по определенному адресу -базе (ImageBase). Для обычного ексешника (грубо говоря), база (ImageBase) всегда будет равна (конечно, это заблуждение, но для нубов сойдет) 0x400000h по дефолту. Т.Е. имеем:
Code:
  1. ImageBase + сырое смещение = RVA

не надо быть гениальным математиком, чтобы из адреса, который в IDA Pro (RVA), вычесть ImageBase и получить сырое смещение, которое можно найти в ExamDiff (первый раз слышу, кстати, за эту прогу).

А ВООБЩЕ: Можно было взять OllyDbg и не задавать такие вопросы. IDA Pro там совершенно не нужна.

Какие еще вопросы могут быть?!




Ранг: 52.0 (постоянный), 146thx
Активность: 0.030.08
Статус: Участник

Создано: 04 августа 2015 20:15
· Личное сообщение · #8

Сама IDA показывает offset от начала файла,
прямо под листингом (типа строка статуса), над горизонтальным скролл-баром...

| Сообщение посчитали полезным: viksabur

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

Создано: 04 августа 2015 20:18
· Личное сообщение · #9

reversecode пишет:
не проще ли взять тогда нормальный diff-asm

Нормальный это какой, можно ссылки или ссылку

ELF_7719116 пишет:
Для обычного ексешника (грубо говоря), база (ImageBase) всегда будет равна (конечно, это заблуждение, но для нубов сойдет) 0x400000h по дефолту

Как проверить ImageBase экзешника не для нюбов что бы, что бы наверняка знать, загрузить в любой РЕ редактор и посмотреть значение, или в иде или ольке как то можно проще?



Ранг: 89.1 (постоянный), 134thx
Активность: 0.060.07
Статус: Участник

Создано: 04 августа 2015 20:33 · Поправил: LinXP
· Личное сообщение · #10

viksabur пишет:
В иде http://i.piccy.info/i9/6933a5a21ec2c22ce635a68cb481287d/1438696175/52326/936211/1.png
адрес например одной из инструкций 6С0074 в ExamDiff смотрю нет такого адреса

неудачно ты картинку подрезал, смотри внимательней:
http://i.piccy.info/i9/8c396a56047d85c4d3583f541517d685/1438709427/10497/936314/ida.png

viksabur пишет:
Кто то спросит как нашел эту инструкцию

дык не трудно: сравнить два бинарника, прыгнуть в иде на нужное смещение: Jump > Jump to file offset...

| Сообщение посчитали полезным: viksabur


Ранг: 52.0 (постоянный), 146thx
Активность: 0.030.08
Статус: Участник

Создано: 04 августа 2015 20:38 · Поправил: UniSoft
· Личное сообщение · #11

viksabur пишет:
любой РЕ редактор

в любом PE редакторе обычно есть конвертер...
CFF Explorer VIII (http://www.ntcore.com/) так и называется Address Converter...
PE Tools - кнопочка FLC (File Location Calculator)...
и т.д.

LinXP пишет:
http://i.piccy.info/i9/8c396a56047d85c4d3583f541517d685/1438709427/10497/936314/ida.png
RVA - offset = ImageBase

ну это же далеко не так,
проверьте это утверждение на своем же скриншоте ;)
может все таки VA - RVA = ImageBase? (а offset вовсе не равен RVA для нормализованного PE)

ELF_7719116 пишет:
ImageBase + сырое смещение = RVA

и тут все совсем как-то не так...
VA - ImageBase = RVA

вводите новичка в заблуждение...
уже ввели...



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

Создано: 04 августа 2015 21:05 · Поправил: viksabur
· Личное сообщение · #12

Спасибо всем кто помог на практике разобраться.

По ImageBase вопрос, решил посчитать его, что имеем
RVA = 6c0074
Offset = 2bf474
соответственно ImageBase = 400с00
Если взять любой РЕ редактор и посмотреть РЕ заголовок нашего файла пишет, что ImageBase = 400000h
Ну явно 400с00 не 400000

Добавлено спустя 1 час 14 минут
UniSoft оказался прав всех правых))
Внизу у иды в нижней строке offset и VA, а не RVA. RVA еще высчитать нужно, не сложно или в PE Tools или руками RVA = VА – Image Base = 2с0074, соответсвенно если захотим узнать какой Image Base точно, а не для нюбов, как выше понтился (с понтом какие еще вопросы могут быть?!) ELF_7719116
Image Base = VA - RVA = 400000h, теперь все сходится.
Спасибо еще раз UniSoft.



Ранг: 89.1 (постоянный), 134thx
Активность: 0.060.07
Статус: Участник

Создано: 04 августа 2015 22:26
· Личное сообщение · #13

UniSoft туплю за работой...


 eXeL@B —› Вопросы новичков —› Запутался с адресами
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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