Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.008 c
3-89678
sergey123
2003-11-06 14:33
2003.11.27
Как сделать, чтобы в гриде для каждой строки задавать тип поля?


1-89988
Nikos
2003-11-18 09:15
2003.11.27
Разрыв связи с файловой переменной.


1-89945
Вованчик
2003-11-18 08:31
2003.11.27
MainMenu


4-90178
Kair
2003-10-01 11:18
2003.11.27
ReadDirectoryChangesW


1-89822
alexe
2003-11-17 09:36
2003.11.27
Проблема с передачей формулы в Exel





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский