Определение параметров запуска приложений

Тема в разделе "WASM.WIN32", создана пользователем DeRekX, 22 апр 2009.

  1. DeRekX

    DeRekX New Member

    Публикаций:
    0
    Регистрация:
    21 июл 2007
    Сообщения:
    98
    Адрес:
    Russia
    В утилите Руссиновича procexp, наглядно выводятся параметры запуска приложений.

    Какие могут быть варианты определения параметров запуска чужих приложений?

    (GetCommandLine() -- получает параметры для текущего процесса)

    Заранее спасибо
     
  2. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    Я создавал такую тему, search'ни тут.
     
  3. DeRekX

    DeRekX New Member

    Публикаций:
    0
    Регистрация:
    21 июл 2007
    Сообщения:
    98
    Адрес:
    Russia
    Flasher
    спасибо, нашёл http://wasm.ru/forum/viewtopic.php?id=29058

    Использование PEB привяжет к версии винды\SP + паливно читать память чужого процесса

    какой вариант ты выбрал ?
     
  4. DeRekX

    DeRekX New Member

    Публикаций:
    0
    Регистрация:
    21 июл 2007
    Сообщения:
    98
    Адрес:
    Russia
    http://forum.sources.ru/index.php?showtopic=225024
    видимо через PEB
     
  5. mrcrown

    mrcrown Member

    Публикаций:
    0
    Регистрация:
    18 янв 2008
    Сообщения:
    227
    Так, если я не ошибаюсь, то по смещению 0x00020000 Лежит структура параметров запуска процесса! Это смещение постоянно для каждого процесса. (Если у кого есть возможность проверьте на разных версиях форточек.)
     
  6. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    Почему привяжет ? структура PEB вроди начиная с xp sp1 и закончивая win7 одинаковая.
     
  7. mrcrown

    mrcrown Member

    Публикаций:
    0
    Регистрация:
    18 янв 2008
    Сообщения:
    227
    Пля, то ли я дурной то ли лыжи не едут... А где сцылочка на "Редактировать"????

    Кста, поставь на эту структуру права PAGE_NOACCESS И глянь в тот же процесс експлорер.
     
  8. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    Главное не в том, чтобы она лежала по фикс.адресу для разных версий винды, а по фикс.вирт.адресу для всех процессов данной версии - тогда ее адрес можно спокойно определить в своем процессе и затем за один раз прочитать из чужого
     
  9. ohne

    ohne New Member

    Публикаций:
    0
    Регистрация:
    28 фев 2009
    Сообщения:
    431
    инжектиш длл

    Код (Text):
    1. PTEB
    2. NtGetCurrentTeb()
    3. {
    4.     PTEB Teb = {0};
    5.  
    6.     __asm
    7.     {
    8.         mov eax, fs:[0x18]
    9.         mov [Teb], eax
    10.     }
    11.     return Teb;
    12. }
    13.  
    14. PWCHAR
    15. LdrCommandLine()
    16. {
    17.     PWCHAR CmdLine = {0};
    18.     PPEB Peb = NtGetCurrentTeb()->Peb;
    19.  
    20.     ___try
    21.     {
    22.         CmdLine = Peb->ProcessParameters->CommandLine.Buffer;
    23.     }
    24.     ___except(EXCEPTION_EXECUTE_HANDLER){}
    25.     ___finally
    26.  
    27.     return CmdLine;
    28. }
    этого кода хватит
     
  10. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    mrcrown
    Оно не постоянно, адрес система выбирает. Использовать фиксированные адреса - большое зло, не делой это.
     
  11. tylerdurden

    tylerdurden New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2004
    Сообщения:
    322
    из дровера атачишься и все (и шоб в 2к работало юзай это а не стандартную PsGetProcessPeb или как там ее)
    PPEB ProcessGetPEB(HANDLE hProcess)
    {
    PROCESS_BASIC_INFORMATION pbiInfo;
    DWORD dwSize;

    if(NT_SUCCESS(ZwQueryInformationProcess(hProcess,ProcessBasicInformation,&pbiInfo,sizeof(pbiInfo),&dwSize)))
    {
    return pbiInfo.PebBaseAddress;
    }
    return 0;
    }
     
  12. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    tylerdurden
    Лучше напрямую из EPROCESS указатель взять, только смещения могут быть разные, просто таблицу сделать версия/оффсет.
     
  13. mrcrown

    mrcrown Member

    Публикаций:
    0
    Регистрация:
    18 янв 2008
    Сообщения:
    227
    Так я их и не юзою! Просто чуваку способ с ПЕБ не понравился :)
     
  14. DeRekX

    DeRekX New Member

    Публикаций:
    0
    Регистрация:
    21 июл 2007
    Сообщения:
    98
    Адрес:
    Russia
    Всем спасибо за ответы.
    Необходимо эти параметры смотреть под учёткой юзера, поэтому драйвера нельзя использовать.
    Антивирус будет палить инжект dll.