Главная страница
    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.009 c
1-89992
AnSo
2003-11-10 20:17
2003.11.27
TForm.Print


4-90170
NailMan
2003-10-01 12:19
2003.11.27
Типа передача данных первой копии программы от второй


1-89887
Vladislav
2003-11-15 15:32
2003.11.27
TreeView как в Outlook Express


1-89968
Анна
2003-11-17 18:05
2003.11.27
Что делать с Combobox ом чтобы...


3-89785
ruslan_as
2003-11-06 16:40
2003.11.27
Как вывести отчет из 90 записей на 1 бланк





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский