Патчинг L2.exe
Собственно решил перенести свои правки из хексинга в свою DLL, но словил ряд странных вещей: некоторые из адресов я почему-то не могу перезаписать. Пробовал по-разному:
Код:
WriteProcessMemory(GetCurrentProcess(), dest, &src, countBytes, nullptr); Код:
DWORD dwProtect = PAGE_READWRITE; Есть какие-либо идеи? Добавлено через 11 минут И еще кое что: если я изменяю память через Ollydbg, то все меняется нормально. Интересно в чем проблема... |
Re: Патчинг L2.exe
FlushInstructionCache?
|
Re: Патчинг L2.exe
Цитата:
Т.е. меняю 10 байтов на 0x01, в итоге вижу такую картину: 0х01 0х01 0х01 0х01 0х01 0хFF 0х01 0х01 0х01 0х01 :) Кстати как переаттачил дллку от l2.exe к nwindow.dll, то проблема пропала :) |
Re: Патчинг L2.exe
Цитата:
|
Re: Патчинг L2.exe
Цитата:
|
Re: Патчинг L2.exe
Как вариант что-то использует эту область памяти... Есть ли возможность прицепить "железный" on-write breakpoint на этот участок памяти и попробовать поймать кто его изменяет после патчинга?
https://github.com/mmorearty/hardware-breakpoints |
Re: Патчинг L2.exe
Цитата:
Цитата:
|
Re: Патчинг L2.exe
Цитата:
|
Re: Патчинг L2.exe
Цитата:
Цитата:
Патчинг кода из дллки или RemoteThread это иной сегмент кода, нежели ранинг уже пропатченого куска кода на клиенте. И вообще, в рамках одного модуля (PE) - сегменты могут различаться. С учетом размера кешей современных процов - туда влезает далеко не один сегмент. Ну и Цитата:
Особенно актуально для RemoteThread. |
Re: Патчинг L2.exe
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Небольшое исследование по теме с цитатами из 3a: http://blog.onlinedisassembler.com/blog/?p=133 Я, конечно, допускаю, что дело может быть в синхронизации, но зная X86 – вряд ли… |
Текущее время: 20:11. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot