Запуск неРЕ файла из памяти

Тема в разделе "WASM.BEGINNERS", создана пользователем Aspire, 20 сен 2007.

  1. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    Cпасибо!
     
  2. lamer2k

    lamer2k New Member

    Публикаций:
    0
    Регистрация:
    14 май 2006
    Сообщения:
    88
    Не пойму чем не подходит способ предложенный тов. Cr4sh ?

    1) Находишь приложение связанное с данным типом файла (не нашел - обломись)
    2) Запскаешь его с параметром - путь к файлу путь может быть любым но желательно чтоб такого небыло.
    3) Инжектируешь код перехватывающий CreateFile/GetFileSize/ReadFile/CreateFileMapping/MapViewOfFile
    4) Если в параметрах CreateFile передается имя то которое ты указал в параметре при запуске
    мапишь данные с атрибутами read/write, присваиваешь хендл 0xFFFFFF0
    5) В обработчике GetFileSize если обращаются к хэнделу 0xFFFFFF0 возвращаешь размер замапенного файла
    6) В обработчике ReadFile если обращаются к хэнделу 0xFFFFFF0 возращаешь кусок данных считанный из замапенного файла
    7) CreateFileMapping/MapViewOfFile возращаешь хэнделы из п 4

    более простого способа просто нету
     
  3. Atlantic

    Atlantic Member

    Публикаций:
    0
    Регистрация:
    22 июн 2005
    Сообщения:
    322
    Адрес:
    Швеция
    lamer2k
    Занимался я таким извратом. Есть куча файловых функций, их все нужно перехватить, чтобы узнать, какие нужно перехватывать. Хотя можно заюзать FileMon. Например, GetFileAttributes обязательно нужно перехватывать - многие проги проверяют с ее помощью наличие файла. Еще один геморрой в том, что некоторые проги зачем-то открывают файл несколько раз => нужно поддерживать структуру данных со всеми фейковыми хендлами. Да, и не забыть перехватить CloseHandle.
     
  4. Adrax

    Adrax Алексей

    Публикаций:
    0
    Регистрация:
    14 окт 2006
    Сообщения:
    135
    Адрес:
    г. Курск
    Мож, я не совсем въехал в дискуссию, но...
    Почему бы не создать во временной папке файл .txt, скинуть туда инфу из экзешника, а потом вызвать CreateProcess'ом или WinExec'ом notepad.exe c:\temp\myfile.txt ? А после открытия удалить его
    Так как-то проще, мне кажется...
     
  5. Atlantic

    Atlantic Member

    Публикаций:
    0
    Регистрация:
    22 июн 2005
    Сообщения:
    322
    Адрес:
    Швеция
    Adrax
    пост #1 читал?
     
  6. slow

    slow New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2004
    Сообщения:
    615
    Atlantic
    Ну не куча... всего несколько нативных функций.
    NtCreateFile,NtOpenFile,NtReadFile,NtQueryInformationFile
     
  7. Atlantic

    Atlantic Member

    Публикаций:
    0
    Регистрация:
    22 июн 2005
    Сообщения:
    322
    Адрес:
    Швеция
    slow
    Ну да, кстати. На нативном уровне их поменьше будет =)
     
  8. slow

    slow New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2004
    Сообщения:
    615
    Atlantic
    а представь если похучить sysenter? :o)))
     
  9. asd

    asd New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    952
    Адрес:
    Russia
    slow
    если уж лезть в ядро, то лучше виртуальный диск сделать.
     
  10. Adrax

    Adrax Алексей

    Публикаций:
    0
    Регистрация:
    14 окт 2006
    Сообщения:
    135
    Адрес:
    г. Курск
    2 Atlantic
    т.е. это принципиально? Создать файл, а потом тут же удалить - не канает?

    2 asd
    виртуальный диск... имеется в виду RAM-drive? потому что иначе тоже получается - на диск писать надо
     
  11. Cr4sh

    Cr4sh New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2006
    Сообщения:
    668
    имхо, в таком случае лучше уже фильтр приаттачить на девайс драйвера файловой системы
     
  12. Aspire

    Aspire New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    1.028
    Всем подходит, кроме одного: не нашел я пока приемлемого способа внедрения в процесс (чтобы антивирус не ругалсо). Когда найду, тогда и буду пользовать перехват.
    Если бы это канало, не было бы данного топика ))))
    ---
    Добавлено: По теме топика...еще не тестил, но помоему, только вариант копи-паста, предложенный wsd, оставит равнодушным проактивку..Плохо,что работает не везде..
     
  13. el-

    el- New Member

    Публикаций:
    0
    Регистрация:
    14 сен 2006
    Сообщения:
    89
    Aspire
    а никуда инжектится и не надо, возьми найди приложения которое пускает нужный тебе файл и настрой его внутри себя как это делается при крит процесс в другом процессе, после хукай функции и все ...

    а если на то пошло при создание процесса до старта главного треда инжект разрешен, единственно кто тебе дас создать процесс = )
     
  14. Aspire

    Aspire New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    1.028
    el- Извините, то что Вы говорите, очень интересно, только я по своей неопытности, видимо чег-то не допонимаю.... Ёёёёё...кажись, понял. Созданный процесс имеет с нашим общее адресное пространство? Обана...
    Добавлено: Или я гоню ?
     
  15. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    Aspire
    ошибаешься:)
     
  16. Aspire

    Aspire New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    1.028
    Я уже посмотрел, что любой процесс имеет свое личное адресное пространство. А как тогда это ?
    PS. Особенно хотелось бы услышать пояснения к фразам "никуда инжектится и не надо" и "хукай функции и все ..."
     
  17. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    Aspire
    Тут в принципе фундаментальные основы вини...(разделение)
    Мож автор тот что нарыл интересное:)
     
  18. el-

    el- New Member

    Публикаций:
    0
    Регистрация:
    14 сен 2006
    Сообщения:
    89
    Aspire
    нет тупо прога которая вам нужна будь это нотепад или айсидися читается с диска и настраивается в вашем процессе, никаких общик адресных пространств быть не может ... читаете экзе с диска, размещаете его по имадж бейс, размещаите секции по их смещениям, настраиваете импорт релоки и т.д. и передаете управление на энтрипоинт передав коммандную строку парам в виде фейкового файла, а дальше как было описано выше ... не уверен что здесь можно будет достичь 100% стабильности но тем не менее для джойнера который имхо вы пишете это нормально = )
     
  19. Aspire

    Aspire New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    1.028
    el- Понял. Спасибо.
     
  20. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    Aspire
    Ты чё свой лоадер собрался писать?
    уж проще тогда как Cr4sh советовал сделать -
    писать много но не столько как лоадер:))))