В утилите Руссиновича procexp, наглядно выводятся параметры запуска приложений. Какие могут быть варианты определения параметров запуска чужих приложений? (GetCommandLine() -- получает параметры для текущего процесса) Заранее спасибо
Flasher спасибо, нашёл http://wasm.ru/forum/viewtopic.php?id=29058 Использование PEB привяжет к версии винды\SP + паливно читать память чужого процесса какой вариант ты выбрал ?
Так, если я не ошибаюсь, то по смещению 0x00020000 Лежит структура параметров запуска процесса! Это смещение постоянно для каждого процесса. (Если у кого есть возможность проверьте на разных версиях форточек.)
Пля, то ли я дурной то ли лыжи не едут... А где сцылочка на "Редактировать"???? Кста, поставь на эту структуру права PAGE_NOACCESS И глянь в тот же процесс експлорер.
Главное не в том, чтобы она лежала по фикс.адресу для разных версий винды, а по фикс.вирт.адресу для всех процессов данной версии - тогда ее адрес можно спокойно определить в своем процессе и затем за один раз прочитать из чужого
инжектиш длл Код (Text): PTEB NtGetCurrentTeb() { PTEB Teb = {0}; __asm { mov eax, fs:[0x18] mov [Teb], eax } return Teb; } PWCHAR LdrCommandLine() { PWCHAR CmdLine = {0}; PPEB Peb = NtGetCurrentTeb()->Peb; ___try { CmdLine = Peb->ProcessParameters->CommandLine.Buffer; } ___except(EXCEPTION_EXECUTE_HANDLER){} ___finally return CmdLine; } этого кода хватит
mrcrown Оно не постоянно, адрес система выбирает. Использовать фиксированные адреса - большое зло, не делой это.
из дровера атачишься и все (и шоб в 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; }
tylerdurden Лучше напрямую из EPROCESS указатель взять, только смещения могут быть разные, просто таблицу сделать версия/оффсет.
Всем спасибо за ответы. Необходимо эти параметры смотреть под учёткой юзера, поэтому драйвера нельзя использовать. Антивирус будет палить инжект dll.