Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.11.02;
Скачать: CL | DM;

Вниз

Получить путь и имя процесса   Найти похожие ветки 

 
Cj ©   (2007-12-26 10:36) [0]

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

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


 
DVM ©   (2007-12-26 10:42) [1]


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

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


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


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

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

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


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

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

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


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

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


 
Cj ©   (2007-12-26 11:37) [4]


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


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


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

Он мувит себя в корень диска с именем 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 16:28) [6]


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


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

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


 
Cj ©   (2007-12-26 16:31) [7]


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


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


 
Rouse_ ©   (2007-12-26 17:44) [8]


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

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

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

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

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


 
Cj ©   (2007-12-26 18:01) [9]


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


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


 
Cj ©   (2007-12-26 18:07) [10]


> Вот тебе утилитка которая показывает все твои запущенные
> творчества: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:09) [11]


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


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


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

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


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

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


 
Rouse_ ©   (2007-12-26 18:27) [14]

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


 
Cj ©   (2007-12-26 18:35) [15]


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


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

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


 
Rouse_ ©   (2007-12-26 22:22) [16]

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


 
Riply ©   (2007-12-26 22:57) [17]

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

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


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


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

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


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

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


 
Cj ©   (2007-12-27 10:38) [20]

Вернулся вот код, но предупреждаю может получится как в 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.


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

2 Cj

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


 
Cj ©   (2007-12-27 13:58) [22]


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


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


 
MetalFan ©   (2007-12-27 18:31) [23]

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


 
Cj ©   (2007-12-28 08:44) [24]


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

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


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

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


 
Cj ©   (2007-12-29 16:48) [26]

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


где ?


 
MetalFan ©   (2007-12-29 21:34) [27]

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


 
Cj ©   (2007-12-30 08:54) [28]


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


компиль на Д7


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

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

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


 
Cj ©   (2007-12-31 18:08) [30]


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


ага понял



Страницы: 1 вся ветка

Текущий архив: 2008.11.02;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.013 c
3-1208544699
Alexey
2008-04-18 22:51
2008.11.02
Таблицы в InterBase


1-1202115800
Андрей Пл
2008-02-04 12:03
2008.11.02
Вопрос по Report вывод итоговой суммы!!!


11-1195121648
Альберт
2007-11-15 13:14
2008.11.02
при установки kol не найден exptintf.dcu


1-1201264323
Kolan
2008-01-25 15:32
2008.11.02
Как дисэйблить кнопки если операция не поддерживается&amp;#133 ?


4-1197879873
андр
2007-12-17 11:24
2008.11.02
USB Flash