Запись в память процесса с нарушением работоспособности
Проблема такая:брательник достал с игрушкой(NFS Underground).Хочу сделать так,чтобы через некоторое время после её запуска производилась запись в область данных или кода и игра накрывалась.Я так понимаю,надо использовать OpenProcess/WriteProcessMemory.Можете рассказать поподробнее?
OpenProcess надо вызывать с флагом PROCESS_VM_WRITE (лучше всего корнечно PROCESS_ALL_ACCESS ), потом просто постранично обнулять память (если эта память выделена) процесса с помощью функции WriteProcessMemory, предварительно вызвав VirtualProtectEx (если страница имеется флаг доступа PAGE_READONLY). я думаю долго обнулять не придётся. программа должна накрыться как только дойдёшь до стека (стек обычно находится где-то в начале)
А куда можно попасть,чтобы она ещё и сдохла весело(с визуальными эффектами)?Я так понимаю,в цикл вывода графики или область данных(в текстуры:)).Как их найти?Поможет ли PE Editor в этом нелёгком деле(и как с помощью него определить адрес начала игры в памяти)?
есть замечательные функции Get/SetThreadContext. Сразу накрыть стек можно получив значение ругистра esp либо изменив его на 0. Также по значению регистра eip можно узнать адрес текущего выполняющегося кода, получаешь адрес и обнуляешь эту память. Перебираешь потоки процесса, и по очереди накрываешь их. Если хочешь изменить значение регистров, то предварительно надо остановать поток, изменив регистры, возобновить поток.
А я бы юзал TerminatеProcess с выдачей впослествии самодельного окошка с душещипательной историей об AccessViovation =)