Вниз
Скачать: 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.013 c
1-55572
VaS
2003-07-02 17:03
2003.07.17
AV при компиляции


3-55430
Vick
2003-06-24 10:06
2003.07.17
max кол-во колонок в EhDBGrid


14-55769
k-man
2003-06-30 12:42
2003.07.17
А в Гадюкино опять дожди


3-55454
Relaxxx
2003-06-23 16:55
2003.07.17
DBGrid и CheckBox


14-55726
paxer
2003-07-02 14:52
2003.07.17
Нужен компонент ввода даты с возможностью ввода пустого значения




   Наверх