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-26 18:07:00) [21]


> Вот тебе утилитка которая показывает все твои запущенные
> творчества: http://webfile.ru/1657256


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

Какая у вас система(версия и.т.д.) у меня:

Имя ОС Microsoft Windows XP Professional
Версия 5.1.2600 Service Pack 2 Сборка 2600
Изготовитель ОС Microsoft Corporation
Имя системы ASUS
Изготовитель ASUSTeK Computer Inc.
Модель F3JP
Тип Компьютер на базе X86
Процессор x86 Family 6 Model 15 Stepping 2 GenuineIntel ~1662 МГц
Процессор x86 Family 6 Model 15 Stepping 2 GenuineIntel ~1662 МГц
Версия BIOS American Megatrends Inc. 208, 23.05.2007
Версия SMBIOS 2.4
Папка Windows D:\MUSTDIE
Системная папка D:\MUSTDIE\system32
Устройство загрузки \Device\HarddiskVolume1
Язык Россия
Аппаратно-зависимый уровень (HAL) Версия = "5.1.2600.2180 (xpsp_sp2_rtm.040803-2158)"
Имя пользователя ASUS\Cj
Часовой пояс Владивосток (зима)
Полный объем физической памяти 2 048,00 МБ
Доступно физической памяти 1,45 ГБ
Всего виртуальной памяти 2,00 ГБ
Доступно виртуальной памяти 1,96 ГБ
Файл подкачки 3,54 ГБ
Файл подкачки C:\pagefile.sys


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


> Вот тебе утилитка которая показывает все твои запущенные
> творчества: http://webfile.ru/1657256


ща посмотрю...


Rouse_   (2007-12-26 17:44:00) [23]


> Молодец, про действия догадался.

Ты знаешь я не бабка-гадалка, а программист и твой код читается достаточно легко в дизассемблере. Так что ни о каких догадках речи не идет...

> Toolhelp показывает только X:\[], а на самом деле файл там-
> же

У меня он показывает там где находится сейчас реально исполняемый файл, а не то откуда он запускался.
Если хочешь увидеть кто его толкнул первым, запусти аудит и будет тебе счастье.
Тож мне - технологию придумал :)

Вот тебе утилитка которая показывает все твои запущенные творчества:
http://webfile.ru/1657256


Cj   (2007-12-26 16:31:00) [24]


> Rouse_ ©   (26.12.07 15:45) [5]


Молодец, про действия догадался.
Только он еще текущую директорию сменяет на X:\ чтобы не узнали в какой он папке


Cj   (2007-12-26 16:28:00) [25]


>  а не из PEB, таким образом ничто не скрывается и даже банальный
> CreateToolhelp32Snapshot покажетэту гадость :)


Ну попробуй.
Покажи код, который показывает.
Интересно, как это у Slow не показалось, а у тебя показывает.

Toolhelp показывает только X:\[], а на самом деле файл там-же(откуда запускал)


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

Он мувит себя в корень диска с именем Char($7F), и запускает с параметрами свою копию указывая в параметрах путь, откуда был запущен оригинал, после чего прибивает себя.
Новый процесс, зная из параметров командной строки путь, возвращает копию себя на место. После чего он читает адрес в котором содержится путь к текущему модулю примерно вот таким кодом:
program Project1;

{$APPTYPE CONSOLE}

uses
 Windows;

var
 P: PByte;
 Data, BytesRead: DWORD;
 S: String;
begin
 P := GetProcAddress(GetModuleHandle(kernel32), 'GetCommandLineA');
 if P <> nil then
 begin
   Inc(P);
   BytesRead := 0;
   ReadProcessMemory(GetCurrentProcess, P, @Data, 4, BytesRead);
   ReadProcessMemory(GetCurrentProcess, Pointer(Data), @Data, 4, BytesRead);
   S := PChar(Data);
   writeln(S);
   readln;
 end;
end.


после чего трет нулями юникодный и ансишный варианты.
Проблема в том что GetCommandLine возвращает данные из BaseAnsi(Unicode)CommandLine, а не из PEB, таким образом ничто не скрывается и даже банальный CreateToolhelp32Snapshot покажет эту гадость :)


Cj   (2007-12-26 11:37:00) [27]


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


Заинтересовался?
Нет, PEB я даже не задеваю.
Но насчет EPROCESS (может, это я быстро)- запускаю pHunter(ms-rem) и ставлю только по EPROCESS - и показывает, то-же не то.
Но может это я все-таки не так делаю, попробуй ты поищи.
И заметь - я все операции провожу со СВОИМ процессом, никаких драйверов и dll(если думаешь, что руткит).


slow!alfamoon!com   (2007-12-26 11:22:00) [28]

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


Cj   (2007-12-26 11:00:00) [29]


> > Ручаюсь -это не вирус.Ты бы исходником свои заверения
> подкрепил.

вот этого я и боюсь: если до меня такого не делали, то как только выложу - сразу такие проги(вири) полезут.

из жизни
Один раз стоило показать экспериментальный код (там про проводник(не вирь))в институте, как сразу вири самопальные полезли. Я то знал, как их удалять, но хотелось в морду надавать всем у кого я флэхи брал, тк на ВСЕХ были самопалки.


Вот поэтому исходники я не хочу вылаживать до тех пор, пока не найду/найдут способ узнать путь процесса(даже кстати Каспер не определяет).

Я не заставляю тебя запускать его, даже при максимальной выкрутке защиты твоего Антивируса. Но если вири такие полезут?

И еще, за такое меня могуть засадить, как тех двоих.


DVM   (2007-12-26 10:42:00) [30]


> Ручаюсь -это не вирус.

Ты бы исходником свои заверения подкрепил.


Страницы:   1 2

Наверх

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