Вниз
Скачать: CL | DM;

Как пропатчить процесс в памяти ?   Найти похожие ветки 

 
DrDrew   (2003-07-05 17:41) [0]

Требуется написать лоадер кот. бы запускал прогу и патчил ее код в памяти. Если кто нить делал что либо подобное - поделитесь плиз примерчиком.
Заранее спасибо.


 
Dimaxx ©   (2003-07-05 23:42) [1]

Вот тебе пример реально работающего загрузчика. Функции readprocessmemory и writeprocessmemory - это то, что тебе нужно.

program Loader;

uses Windows;
const buf:array[0..1] of byte=($eb,$13);
const appname="empty.exe";

Var
i:cardinal;
sti:tstartupinfo;
lpPi:tprocessinformation;

begin
if not CreateProcess(nil,AppName,nil,nil,false,CREATE_SUSPENDED
,nil,nil,StI,lpPI) then
begin
messageboxa(0,"А де radmin.exe?","RA Loader",0);
halt;
end

else
//Ждем пока распакуется
{while true do
if readprocessmemory(lppi.hProcess,pointer($ac0506),@buf[0],1,i)
then
if buf[0]<>$0 then
begin

//остановили процесс
suspendthread(lppi.hThread);

//записали чё хотели
//writeprocessmemory(lppi.hProcess,pointer($004054DF),@buf[1],1,i);
writeprocessmemory(lppi.hProcess,pointer($004054DF),@buf,2,i);
//поехали дальше!
resumethread(lppi.hThread);

closehandle(lppi.hprocess);
halt;
//end;
end.



 
DrDrew   (2003-07-06 19:29) [2]

Big tnx!



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.012 c
1-55588
Zergg
2003-07-02 12:22
2003.07.17
Интересные нюансы с производительностью


1-55647
jel
2003-07-04 10:56
2003.07.17
Помогите разобраться с pipes


14-55851
Тих
2003-07-02 02:17
2003.07.17
Снова шлют ерунду


3-55406
Karburator
2003-06-23 21:38
2003.07.17
Определить ключевое поле


11-55492
bartov
2002-11-13 21:04
2003.07.17
Перерисовка.




   Наверх