Форум: "WinAPI";
Текущий архив: 2008.11.02;
Скачать: [xml.tar.bz2];
ВнизПолучить путь и имя процесса Найти похожие ветки
← →
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 вся ветка
Форум: "WinAPI";
Текущий архив: 2008.11.02;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.008 c