Форум: "Основная";
Текущий архив: 2003.11.27;
Скачать: [xml.tar.bz2];
ВнизПоиск значения в памяти процесса Найти похожие ветки
← →
nop (2003-11-10 16:40) [0]Создаю процесс, в памяти которого необходимо НАЙТИ последовательность байт и заменить на другую. Как реализовать поиск и замену?
← →
Dimaxx (2003-11-11 00:45) [1]program Loader;
uses Windows;
const
buf:array[0..1] of byte=($eb,$13);
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.
← →
nop (2003-11-14 23:30) [2]To Dimaxx: спасибо большое за пример, но к сожалению это не то что мне нужно. Возможно я не правильно сформулировал вопрос, но мне нужно именно НАЙТИ заданную последовательность, не зная смещения. В этом примере ReadProcessMemory просто проверяет наличие нужного байта по указанному адресу, если то что нужно, то WriteProcessMemory переписывает его. Здесь ничего не ищется, а мне нужна именно процедура поиска и замены, заранее я не знаю где встретится искомая последовательность и встретится ли вообще. Если есть ещё какие-либо варианты, напиши, если не затруднит :)
← →
Dimaxx (2003-11-15 00:09) [3]Через цикл адресов и вперед!
← →
nop (2003-11-15 09:06) [4]> Через цикл адресов и вперед!
А ведь точно :), только как узнать конечный адрес (размер проекции) в памяти, если, к примеру, запускаемый файл упакован?
Тем не менее, ещё раз спасибо большое за помощь, идея мне понятна.
С уважением, nop
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.11.27;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c