Посл.ответ |
Сообщение |
Ранг: 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
А на русском нету?
| Сообщение посчитали полезным: |
![](img/s7.gif) Ранг: 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 |
![](img/s6.gif) Ранг: 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. Какой функцией можно заменить, добавить или удалить данные из адреса в памяти.
На эти вопросы уже с лихвой ответили.
----- Всем привет, я вернулся | Сообщение посчитали полезным: |
![](img/s4.gif) Ранг: 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;
| Сообщение посчитали полезным: |
![](img/s7.gif) Ранг: 307.9 (мудрец), 196thx Активность: 0.18↘0 Статус: Участник
|
Создано: 09 декабря 2005 12:12 · Личное сообщение · #10
iddqd
Забыл только добавить что для ProcStruct : PROCESSENTRY32; нужно: uses TLHelp32; ;)
----- Don_t hate the cracker - hate the code. | Сообщение посчитали полезным: |
![](img/s7.gif) Ранг: 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 | Сообщение посчитали полезным: |