Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Получить путь и имя процесса [D7, WinXP]


Страницы:   1 2

Cj ©   (2007-12-26 10:36:00) 

САБЖ. Сделал прогу (экспериментальная), которая скывает свой путь, не исползуя хакерские приемы.
Пытаюсь теперь узнать путь и имя проги,а Process Explorer, PHunter, и ДЗ показывают не-то, что надо.
Вот задумался, а если я вирус такой подцеплю, как тогда путь/ имя к нему узнать?
Ссылка вот http://webfile.ru/1656755

посмотрите. Ручаюсь -это не вирус.
Подскажите как сделать САБЖ.
Сильно не пинайте, если где неправ.
Спасибо заранее.
И скажите мне если узнаете, путь к проге.


Cj   (2007-12-31 18:08:00) [1]


> slow!alfamoon!com   (30.12.07 13:02) [29]
> slow!alfamoon!com   (26.12.07 11:22) [3]Че, переписываешь
> в PEBе? А что, идея занятная, кстати. Но найти в нужном
> EPROCESSе имя труда не составит.


ага понял


slow!alfamoon!com   (2007-12-30 13:02:00) [2]

slow!alfamoon!com   (26.12.07 11:22) [3]

Че, переписываешь в PEBе? А что, идея занятная, кстати. Но найти в нужном EPROCESSе имя труда не составит.


Cj   (2007-12-30 08:54:00) [3]


> MetalFan ©   (29.12.07 21:34) [27]
> у меня кстати прога падает сразу после запуска... после
> "зачистки" пути до исп.файла.д2006


компиль на Д7


MetalFan   (2007-12-29 21:34:00) [4]

у меня кстати прога падает сразу после запуска... после "зачистки" пути до исп.файла.
д2006


Cj   (2007-12-29 16:48:00) [5]

> Но немного иначе, примерно так как я тебе написал.


где ?


slow!alfamoon!com   (2007-12-28 12:07:00) [6]

ну точнее я тоже экспериментировал с прятанием пути к процессу :) Но немного иначе, примерно так как я тебе написал.


Cj   (2007-12-28 08:44:00) [7]


> MetalFan ©   (27.12.07 18:31) [23]
> а для чего Read(Write)ProcessMemory для своего процесса?
> ??

да это я наскоряк


MetalFan   (2007-12-27 18:31:00) [8]

а для чего Read(Write)ProcessMemory для своего процесса???


Cj   (2007-12-27 13:58:00) [9]


> slow!alfamoon!com   (27.12.07 11:19) [21]
> 2 Cjя только предположил.. проверять было лень


да ладно,с кем не бывает


slow!alfamoon!com   (2007-12-27 11:19:00) [10]

2 Cj

я только предположил.. проверять было лень


Cj   (2007-12-27 10:38:00) [11]

Вернулся вот код, но предупреждаю может получится как в 2.

Данный код может использоваться только в целях обучения.
Автор не гарантирует работоспобность этого кода на компьютере с системами не Windows XP и вообще на чем угодно.
Особенно не гарантируется совместимость с звуковыми платами, принтерами, сканерами, холодильниками и другими устройствами которые код не использует непосредственно.
Больше автор ничего не гарантирует.
Автор не отвечает за испорченные в результате использования этой программы данные, компьютеры, локальные, глобальные компьютерные сети, пище-продукты и все что теоретически может испортиться.
Если вы используете эту код для противозаконной деятельности, вся ответственность ложиться на вас.


program hp1;

uses
 Forms,
 Windows,
 Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

var
  j:cardinal;
  b:byte;
 procadr: pointer;
 adr,r:cardinal;
begin
//проверка на параметр
if paramstr(1)=''then
begin
    movefile(pchar(application.exename),pchar(application.exename[1]+':\'+#127));
    winexec(pchar(application.exename[1]+':\'+#127+' "'+application.exename+'"'),sw_show);
    exitprocess(1);
end else
begin  //перемещаемся обратно
movefile(pchar(application.exename),pchar(paramstr(1)));
end;

 //получаем адреса параметров
 procadr := GetProcAddress(getmodulehandle('kernel32.dll'), 'GetCommandLineA');
 readprocessmemory(getcurrentprocess, ptr(cardinal(procadr) + 1), @adr, 4, r);
 readprocessmemory(getcurrentprocess, ptr(adr), @adr, 4, r);
 b:=0;
 for j:=0  to 255 do
     WriteProcessMemory(getcurrentprocess, ptr(adr + j), @b, 1, r);

 //трем строки параметров
 procadr := GetProcAddress(getmodulehandle('kernel32.dll'), 'GetCommandLineW');
 readprocessmemory(getcurrentprocess, ptr(cardinal(procadr) + 1), @adr, 4, r);
 readprocessmemory(getcurrentprocess, ptr(adr), @adr, 4, r);
 b:=0;
 for j:=0  to 255 do
     WriteProcessMemory(getcurrentprocess, ptr(adr + j), @b, 1, r);

//меняем директорию
windows.SetCurrentDirectory('C:\');

//запускаемся дальше
 Application.Initialize;
 Application.Title:='';
 Application.CreateForm(TForm1, Form1);
 Application.Run;
end.


Cj   (2007-12-27 02:56:00) [12]

Хорошо, домой вернусь код выложу


Rouse_   (2007-12-27 00:55:00) [13]


> Riply ©   (26.12.07 22:57) [17]
> А может не стоит ?

Хорошо, добавлю ИМХО к моему предыдущему посту :)


Riply   (2007-12-26 22:57:00) [14]

> [16] Rouse_ ©   (26.12.07 22:22)
> Кстати можешь ребятам показать код, бо он уже не секретен :)

А может не стоит ?
Кто может сам написать - пользоваться не будет,
а вот кто не может - не знаю :)


Rouse_   (2007-12-26 22:22:00) [15]

Я понял о чем ты говоришь, да, с такой постановкой именно то, что ты спросил простым способом решить не получиться, по крайней мере обычными методами. С завязкой PEB-а на BaseAnsi(Unicode)CommandLine я сам удивился, судя по моим данны под 2000 такого случиться не должно. Значит ошибся.
Но сам понимаешь, даже обычный файл - всегда угроза для пользователя :)
Кстати можешь ребятам показать код, бо он уже не секретен :)


Cj   (2007-12-26 18:35:00) [16]


> Rouse_ ©   (26.12.07 18:27) [14]
> В корне нету, потомучто ты перетолкнул его в другую папку
> через MoveFileA, что позволяет только NTFS. Я же еще раз
> говорю - включи аудит и тебя все на блюдечке покажут...


Я понял вас.
я это все знаю. Просто мне надо получить реальныйпуть к EXE.
Будет например сидеть юзер и вирь такой запустится, он посмотрит- типа на диске C , посмотрит, а его там нет, завершит процесс, а файл на компе остается. Не всякому же охото хранить на компе вредную прогу.
Вот и бъесь над этой задачей.

ДЗ кстати тоже самое показывает.


Rouse_   (2007-12-26 18:27:00) [17]

В корне нету, потомучто ты перетолкнул его в другую папку через MoveFileA, что позволяет только NTFS. Я же еще раз говорю - включи аудит и тебя все на блюдечке покажут...


Cj   (2007-12-26 18:22:00) [18]

да это понятно, но а файла в корне диска нету же


Rouse_   (2007-12-26 18:17:00) [19]

Все верно говорит, именно по этому пути у тебя запущен исполняемый файл :) Посмотри под отладчиком :)


Cj   (2007-12-26 18:09:00) [20]


> Вот смотрите что она говорит.


затупил я, вот ссылка http://webfile.ru/1657288


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо