Главная страница
    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.01 c
1-89910
hellmachine
2003-11-15 04:23
2003.11.27
Возможно ли программно определить - был ли перекрыт виртуальный


14-90054
Е-Моё имя
2003-11-05 14:57
2003.11.27
Как сделать строку длиной больше мильярда?


14-90070
aVast
2003-11-05 14:32
2003.11.27
а знаете ли вы что такое DELPHI?


14-90125
kovalski
2003-11-03 06:52
2003.11.27
про сотовые


1-89837
td
2003-11-13 20:31
2003.11.27
WordApplication1.Selection.Collapse(Direction)





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