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

 eXeL@B —› Программирование —› Записать байты по определенному адресу
Посл.ответ Сообщение

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

Создано: 28 июля 2015 03:33
· Личное сообщение · #1

Вообщем, нужно записать 2 байта по адресу 0041101E, когда процесс запущен - это можно сделать через WriteProcessMemory, а как быть без запуска файла? Не могу добратся до нужной позиции, в Seek нужно давать смещение в ввиде кол-ва байтов, так вот как узнать сколько байтов до адресса моего?



Ранг: 262.5 (наставник), 337thx
Активность: 0.340.25
Статус: Участник

Создано: 28 июля 2015 06:02
· Личное сообщение · #2

google -> rva to offset

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

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

Создано: 28 июля 2015 06:03
· Личное сообщение · #3

Сигнатурно или посчитать смещение от RVA.В некоторых случаях они равны.Самый простой способ - в олли выбрать Copy To Executable -> Selection и выползет окно смещений.

-----
TEST YOUR MIGHT





Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 28 июля 2015 09:08 · Поправил: Coderess
· Личное сообщение · #4

File offset
--> File Location Calculator <--
PE Editor -> FLC(File Location Calculator) -> File offset
--> PE Tools v1.5<--

ЗЫ: К сожалению не сохранилось своих исходников, поэтому советую прочитать эту тему, в ней есть несколько исходных кодов на ассемблере и на Delphi

--> Как написать патч к программе на delphi?<--

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes




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

Создано: 28 июля 2015 10:20 · Поправил: unknownproject
· Личное сообщение · #5

Coderess пишет:
ЗЫ: К сожалению не сохранилось своих исходников, поэтому советую прочитать эту тему, в ней есть несколько исходных кодов на ассемблере и на Delphi

Пф.Работа с бинарными файлами в любой нормальной книге рассматривается, так что тс не читал ничего, видимо.

-----
TEST YOUR MIGHT




Ранг: 431.7 (мудрец), 390thx
Активность: 0.730.32
Статус: Участник

Создано: 28 июля 2015 19:03 · Поправил: dosprog
· Личное сообщение · #6

Uz_ пишет:
а как быть без запуска файла?


Формулируйте вопрос чётче.
Если интересует статический патч файла, то это одно,
а если имеется в виду рантайм патч загруженного файла перед его запуском - то это две большие разницы.

Uz_ пишет:
в Seek нужно давать смещение в ввиде кол-ва байтов, так вот как узнать сколько байтов до адресса моего?

Это можно тупо посмотреть в hex-редакторе.




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


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