Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.17;
Скачать: 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 вся ветка

Текущий архив: 2003.07.17;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.02 c
3-55471
AlexA
2003-06-11 12:53
2003.07.17
ApplyUpdates?


14-55771
Delpher
2003-06-30 12:18
2003.07.17
Oracle или InterBase?


9-55381
bda
2002-09-17 09:41
2003.07.17
Где взять готовые спрайты?


1-55494
Sfagnum
2003-07-02 14:31
2003.07.17
RichEdit выделение слова


4-55890
Stas
2003-05-15 15:56
2003.07.17
CreateMutex