Сейчас на форуме: Rio (+5 невидимых)

 eXeL@B —› Вопросы новичков —› Как скрыть параметры командной строки?
Посл.ответ Сообщение

Ранг: 0.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 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" не должно быть видно.

03b0_12.05.2008_CRACKLAB.rU.tgz - hl.exe



Ранг: 107.5 (ветеран)
Активность: 0.150
Статус: Участник

Создано: 12 мая 2008 19:12
· Личное сообщение · #2

SLDay пишет:
Как я понимаю нужно просто сделать между вызовом GetComandLine и функцией обработки командной строки

Ну да jmp на свой код потом сохрани регистры на всяк пожарный перед выходом из области своего кода сделай востоновление регистров и команд(ы) которая(ые) ты затер.

-----
Md5 fcbb6c9c9a5029b24d70f2d67c7cca74




Ранг: 107.5 (ветеран)
Активность: 0.150
Статус: Участник

Создано: 13 мая 2008 14:54 · Поправил: Stack
· Личное сообщение · #3

а если сет инфо в конце будет ничего страшного?

-----
Md5 fcbb6c9c9a5029b24d70f2d67c7cca74




Ранг: 0.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 13 мая 2008 17:34
· Личное сообщение · #4

Спасибо, за желание помочь. Не страшно, главное чтобы эта командная строка передавалась программе, но не светилась, если просматривать с помощью менеджеров процессов.




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 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!




Ранг: 107.5 (ветеран)
Активность: 0.150
Статус: Участник

Создано: 13 мая 2008 19:01
· Личное сообщение · #6

Я предлагал именно патчить после getcommandline. Если будет невлом разбираться помогу

-----
Md5 fcbb6c9c9a5029b24d70f2d67c7cca74





Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 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!




Ранг: 0.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 14 мая 2008 10:42
· Личное сообщение · #8

Jupiter, я понимаю о чем ты говоришь. Но мне нужно именно то, что говорит Stack. А именно просто в том месте, где программа начинает работать с параметрами командной строки - подсунуть ей еще одну команду - тогда никакие посторонние програмулины не увидят моей строчки (не считая отладчиков).



Ранг: 214.1 (наставник)
Активность: 0.130
Статус: Участник

Создано: 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 —› Вопросы новичков —› Как скрыть параметры командной строки?
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати