| Посл.ответ | 
Сообщение | 
 Ранг: 6.3 (гость) Активность: 0=0 Статус: Участник 
 
 | 
Создано: 09 декабря 2005 00:31 · Поправил: Модератор   · Личное сообщение ·  #1 
Привет, у меня несколько вопросов:
 1. Какой функцией можно определить запущен процесс или нет.
 2. Какой функцией можно прочитать данные из адреса в памяти
 3. Какой функцией можно заменить, добавить или удалить данные из адреса в памяти.
 Патч - Лодырь писать собираюсь!
 С примерами Please!
   | Сообщение посчитали полезным:  | 
 | 
 Ранг: 210.5 (наставник), 2thx Активность: 0.14↘0 Статус: Участник 
 
 | 
Создано: 09 декабря 2005 00:40 · Поправил: arnix   · Личное сообщение ·  #2 
простенький пример (статья на английском)
   3971_loader_delphi.txt.zip
Тут вааще-то было не TXT a HTML, форум изменил расширение.
   | Сообщение посчитали полезным:  | 
 Ранг: 6.3 (гость) Активность: 0=0 Статус: Участник 
 
 | 
Создано: 09 декабря 2005 00:48   · Личное сообщение ·  #3 
А на русском нету?
  
  | Сообщение посчитали полезным:  | 
  Ранг: 307.9 (мудрец), 196thx Активность: 0.18↘0 Статус: Участник 
 
 | 
Создано: 09 декабря 2005 00:59 · Поправил: mysterio   · Личное сообщение ·  #4 
SamoVar
А на русском нету? 
Тебе и так помогают как могут ... тем более  Z0oMiK давал тебе такой же пример, а тут даже коменты есть, .... просто разберись. Удачи в начинаниях ! ;)
 ----- Don_t hate the cracker - hate the code.  | Сообщение посчитали полезным:   | 
 Ранг: 6.3 (гость) Активность: 0=0 Статус: Участник 
 
 | 
Создано: 09 декабря 2005 01:02   · Личное сообщение ·  #5  | 
  Ранг: 230.5 (наставник) Активность: 0.18↘0 Статус: Участник Norg 
 
 | 
Создано: 09 декабря 2005 01:37   · Личное сообщение ·  #6 
mysterio пишет:
 А на русском нету? Русского вообще как такового в компах нету.Привыкай к международному,к тому же лучшие статьи в основном на английском.  
----- M&#225 enginn renna undan &#254v&#237 sem honum er skapa&#240  | Сообщение посчитали полезным:   | 
 Ранг: 495.3 (мудрец) Активность: 0.3↘0 Статус: Участник 
 
 | 
Создано: 09 декабря 2005 08:58   · Личное сообщение ·  #7 
SamoVar пишет:
 1. Какой функцией можно определить запущен процесс или нет. 
Одной такой супер-пупер API-функции на сегодняшний день не существует (а жаль).
 Я знаю 3 подхода к решению задачи.
 
 1. Если прога твоя (не этот случай, но всё же). 
Напиши в ней код, который будет как бы флагом. В MSDN предлагают  варианта с CreateFileMapping  (то есть уникальный файл вместо флага). Вообще говоря, это довольно расточительный способ, но другого (до WinNT) им в голову не пришло =). Можно так же мютексами общаться.
 2. Если прога не твоя, и ты даже не знаешь: где она, с кем она, что она (допустим только имя exe).
В таком случае нужно перебирать все запущенные процессы в поисках желанного или не желанного (например, в случае с вирусом =).
 Тебе сюда:
 Как получить список запущенных процессов? - www.rsdn.ru/article/qna/baseserv/enumproc.xml
 3. Если прога не твоя, париться не хочешь и просто пишешь лодырь (как раз для тебя).
Достаточно отрыть файл на чтение/запись эксклюзивно, вот так:
 invoke CreateFile, ADDR _FileName, GENERIC_WRITE ,0,0,OPEN_EXISTING,0,0
Ежели он занят, то можно сделать предположение, что файл запущен (для лодыря такое допущение сойдёт =).
 Ну а если файл откроется, нужно его закрыть и вперёд, далее по теме.
 SamoVar пишет:
 2. Какой функцией можно прочитать данные из адреса в памяти
 3. Какой функцией можно заменить, добавить или удалить данные из адреса в памяти.  
На эти вопросы уже с лихвой ответили.
 ----- Всем привет, я вернулся  | Сообщение посчитали полезным:   | 
  Ранг: 84.8 (постоянный) Активность: 0.04↘0 Статус: Участник 
 
 | 
Создано: 09 декабря 2005 09:03   · Личное сообщение ·  #8 
Замечательная статья (на ангельском) про написание лоадеров:
 "Cracking with loaders" (981 kb)
 intechhosting.com/~access/ARTeam/ar/cracking/tuts.html   
 Там и про лодырь-отладчик объясняют.
   | Сообщение посчитали полезным:  | 
 Ранг: 15.1 (новичок) Активность: 0.01↘0 Статус: Участник 
 
 | 
Создано: 09 декабря 2005 10:00 · Поправил: iddqd   · Личное сообщение ·  #9 
1. 
 function IsRunning( sName : string ) : boolean;  
 var  
   han : THandle;  
   ProcStruct : PROCESSENTRY32;   
   sID : string;  
 begin  
   Result := false;   
   han := CreateToolhelp32Snapshot( TH32CS_SNAPALL, 0 );  
   if han = 0 then  
     exit;    
   ProcStruct.dwSize := sizeof( PROCESSENTRY32 );  
   if Process32First( han, ProcStruct ) then  
     begin  
       repeat  
         sID := ExtractFileName( ProcStruct.szExeFile );   
         if uppercase( copy( sId, 1, length( sName ) ) ) = uppercase( sName ) then  
           begin  
             Result := true;  
             Break;  
           end;  
       until not Process32Next( han, ProcStruct );  
     end;  
   CloseHandle( han );  
 end;
  | Сообщение посчитали полезным:  | 
  Ранг: 307.9 (мудрец), 196thx Активность: 0.18↘0 Статус: Участник 
 
 | 
Создано: 09 декабря 2005 12:12   · Личное сообщение ·  #10 
iddqd
Забыл только добавить что для  ProcStruct : PROCESSENTRY32;  нужно:  uses TLHelp32;  ;)
 ----- Don_t hate the cracker - hate the code.  | Сообщение посчитали полезным:   | 
  Ранг: 467.7 (мудрец), 5thx Активность: 0.27↘0 Статус: Участник Иной :) 
 
 | 
Создано: 09 декабря 2005 21:52   · Личное сообщение ·  #11 
TOG
Сам линк на статью  intechhosting.com/~access/ARTeam/tutorials/file_info/download1.php?file=Cracking_with_Loaders_Theory_General_Approach_and_a_Framework_v12_by_Shub-Nigurrath_ThunderPwr.rar
----- Computer Security Laboratory  | Сообщение посчитали полезным:   |