Конференция "WinAPI" » Получить путь и имя процесса [D7, WinXP]
 
  • Cj © (26.12.07 10:36) [0]
    САБЖ. Сделал прогу (экспериментальная), которая скывает свой путь, не исползуя хакерские приемы.
    Пытаюсь теперь узнать путь и имя проги,а Process Explorer, PHunter, и ДЗ показывают не-то, что надо.
    Вот задумался, а если я вирус такой подцеплю, как тогда путь/ имя к нему узнать?
    Ссылка вот http://webfile.ru/1656755

    посмотрите. Ручаюсь -это не вирус.
    Подскажите как сделать САБЖ.
    Сильно не пинайте, если где неправ.
    Спасибо заранее.
    И скажите мне если узнаете, путь к проге.
  • DVM © (26.12.07 10:42) [1]

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

    Ты бы исходником свои заверения подкрепил.
  • Cj © (26.12.07 11:00) [2]

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

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

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


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

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

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

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


    Заинтересовался?
    Нет, PEB я даже не задеваю.
    Но насчет EPROCESS (может, это я быстро)- запускаю pHunter(ms-rem) и ставлю только по EPROCESS - и показывает, то-же не то.
    Но может это я все-таки не так делаю, попробуй ты поищи.
    И заметь - я все операции провожу со СВОИМ процессом, никаких драйверов и dll(если думаешь, что руткит).
  • Rouse_ © (26.12.07 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 © (26.12.07 16:28) [6]

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


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

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

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


    Молодец, про действия догадался.
    Только он еще текущую директорию сменяет на X:\ чтобы не узнали в какой он папке
  • Rouse_ © (26.12.07 17:44) [8]

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

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

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

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

    Вот тебе утилитка которая показывает все твои запущенные творчества:
    http://webfile.ru/1657256
  • Cj © (26.12.07 18:01) [9]

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


    ща посмотрю...
  • Cj © (26.12.07 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 © (26.12.07 18:09) [11]

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


    затупил я, вот ссылка http://webfile.ru/1657288
  • Rouse_ © (26.12.07 18:17) [12]
    Все верно говорит, именно по этому пути у тебя запущен исполняемый файл :) Посмотри под отладчиком :)
  • Cj © (26.12.07 18:22) [13]
    да это понятно, но а файла в корне диска нету же
  • Rouse_ © (26.12.07 18:27) [14]
    В корне нету, потомучто ты перетолкнул его в другую папку через MoveFileA, что позволяет только NTFS. Я же еще раз говорю - включи аудит и тебя все на блюдечке покажут...
  • Cj © (26.12.07 18:35) [15]

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


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

    ДЗ кстати тоже самое показывает.
  • Rouse_ © (26.12.07 22:22) [16]
    Я понял о чем ты говоришь, да, с такой постановкой именно то, что ты спросил простым способом решить не получиться, по крайней мере обычными методами. С завязкой PEB-а на BaseAnsi(Unicode)CommandLine я сам удивился, судя по моим данны под 2000 такого случиться не должно. Значит ошибся.
    Но сам понимаешь, даже обычный файл - всегда угроза для пользователя :)
    Кстати можешь ребятам показать код, бо он уже не секретен :)
  • Riply © (26.12.07 22:57) [17]
    > [16] Rouse_ ©   (26.12.07 22:22)
    > Кстати можешь ребятам показать код, бо он уже не секретен :)

    А может не стоит ?
    Кто может сам написать - пользоваться не будет,
    а вот кто не может - не знаю :)
  • Rouse_ © (27.12.07 00:55) [18]

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

    Хорошо, добавлю ИМХО к моему предыдущему посту :)
  • Cj © (27.12.07 02:56) [19]
    Хорошо, домой вернусь код выложу
 
Конференция "WinAPI" » Получить путь и имя процесса [D7, WinXP]
Есть новые Нет новых   [134431   +15][b:0][p:0.001]