Сейчас на форуме: hgdagon, asfa, bartolomeo (+4 невидимых) |
![]() |
eXeL@B —› Программирование —› Patch не через Offset |
Посл.ответ | Сообщение |
|
Создано: 22 января 2007 15:48 · Личное сообщение · #1 Вобщем кто знает как осуществить сабж? Я патчу вот таким макаром: //----------------------------------- Seek(F, $<Offset>); Ch:=Char($<byte>); BlockWrite(F, Ch, 1); //----------------------------------- Кто знает как выполнять поиск чтобы вместо смещения в файле писать виртуальный адрес. ----- xchg dword [eax], eax ![]() |
|
Создано: 22 января 2007 16:06 · Личное сообщение · #2 |
|
Создано: 22 января 2007 17:07 · Личное сообщение · #3 почитай сначала что-нить про формат PE32 и сразу все станет ясно. Прикрепляю статью "От зеленого к красному" с wasm'а. а вообще: offset = RVA – IMAGE_SECTION_HEADER.VirtualAddress +IMAGE_SECTION_HEADER.PointerRawData RVA = VA - IMAGE_OPTIONAL_HEADER.ImageBase следовательно: offset = (VA - IMAGE_OPTIONAL_HEADER.ImageBase) – IMAGE_SECTION_HEADER.VirtualAddress +IMAGE_SECTION_HEADER.PointerRawData, где VA - твой виртуальный адрес. v0id2k пишет: вместо смещения в файле писать виртуальный адрес - мне кажется, что это нафиг не нужно. но это мое скромное мнение) ![]() ----- Уважайте других и пишите грамотно. ![]() |
|
Создано: 22 января 2007 17:32 · Личное сообщение · #4 |
![]() |
eXeL@B —› Программирование —› Patch не через Offset |
Эта тема закрыта. Ответы больше не принимаются. |