Сейчас на форуме: Rio (+5 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Как скрыть параметры командной строки? |
Посл.ответ | Сообщение |
|
Создано: 12 мая 2008 14:54 · Личное сообщение · #1 Есть файл "hl.exe" игры "Counter-Strike 1.6". Его нужно пропатчить. Мне нужно задать в параметрах командной строки команду так, чтобы она всегда выполнялась перед другими командами и во всяких там менеджерах процесса ее не было видно. Как я понимаю нужно просто сделать между вызовом GetComandLine и функцией обработки командной строки - функцию приращения моей команды к существующей строке. Пример: пользователь вводит: hl.exe -game cstrike +map de_dust2, программа запускается с параметрами: hl.exe +setinfo cl_lw "1" -game cstrike +map de_dust2, но в менеджерах процессов команды +setinfo cl_lw "1" не должно быть видно. ![]() ![]() |
|
Создано: 12 мая 2008 19:12 · Личное сообщение · #2 SLDay пишет: Как я понимаю нужно просто сделать между вызовом GetComandLine и функцией обработки командной строки Ну да jmp на свой код потом сохрани регистры на всяк пожарный перед выходом из области своего кода сделай востоновление регистров и команд(ы) которая(ые) ты затер. ----- Md5 fcbb6c9c9a5029b24d70f2d67c7cca74 ![]() |
|
Создано: 13 мая 2008 14:54 · Поправил: Stack · Личное сообщение · #3 |
|
Создано: 13 мая 2008 17:34 · Личное сообщение · #4 |
|
Создано: 13 мая 2008 18:22 · Личное сообщение · #5 менеджер процессов типа Process Explorer определяет командную строку не через GetComandLine, а через PEB (Process Enviroment Block). Поле CommandLine в структуре RTL_USER_PROCESS_PARAMETERS http://www.reactos.org/generated/doxygen/da/de5/struct__RTL__USER__PROCESS__PARAMETERS.html , на которую указывает PRTL_USER_PROCESS_PARAMETERS внутри PEB ----- EnJoy! ![]() |
|
Создано: 13 мая 2008 19:01 · Личное сообщение · #6 |
|
Создано: 13 мая 2008 22:54 · Личное сообщение · #7 примерный алго: Получаешь PROCESS_BASIC_INFORMATION.PebBaseAddress, потом PEB.ProcessParameters, получаешь RTL_USER_PROCESS_PARAMETERS в RTL_USER_PROCESS_PARAMETERS те нужны CommandLine.MaximumLength и CommandLine.Buffer если делаешь лоадер - то всё через Read/WriteProcessMemory, если из самого процесса - то напрямую ----- EnJoy! ![]() |
|
Создано: 14 мая 2008 10:42 · Личное сообщение · #8 |
|
Создано: 16 мая 2008 16:41 · Поправил: gegter · Личное сообщение · #9 SLDay 01403897 CALL DWORD PTR DS:[<&KERNEL32.GetCommandLineA>; [GetCommandLineA после выполнения в регистре будет лежать EAX 00172320 ASCII """R:\hl.exe"" -game cstrike" далее пропатчивай. второй раз тут: 014018AD CALL DWORD PTR DS:[<&KERNEL32.GetCommandLineA>; [GetCommandLineA тоже SLDay боишся что пароль уведут? ![]() |
![]() |
eXeL@B —› Вопросы новичков —› Как скрыть параметры командной строки? |