[Tut,beginner] Find CommandLine param, launch without LauncherAim: Launch e.g. game client without special launcher; find command line parameters.
Lvl: beginner
Soft: any debugger (ollydbg)
Задача: Обойти запуск программы только посредством Launcher’а. Поиск значений командной строки.
Уровень: новичок
ПО: любой отладчик (дебаггер, например ollydbg)
Обычно везде указывается, что для запуска, например, Requiem Online, в обход программы-ланчера, достаточно вызвать основной исполняемый модуль (Requiem.exe) со следующими параметрами командной строки: «128.241.93.161 -FromLauncher 0/0 0 0 1 3 0». Возникает вопрос, как же удалось узнать это, и где данная строка записана?
Мы знаем, что клиент запускается только после проверки обновления и нажатия кнопки «старт» в окне лачера, следовательно, как раз последнее действие и требует детального рассмотрения на предметы получения нужных нам сведений. Приступим.
Запустив ланчер и дождавшись окончания процесса обновления (если такое требуется), переключаемся в предварительно запущенны ollydbg.
Выбираем «File - Attach» и указываем наш запущенный Launcher.
После анализа кода, если в окне CPU ollydbg отображается, например, модуль ntdll, то требуется снова выбрать модуль ланчера в «View – Executable modules» и сделать его активным.
Вызываем контекстное меню и выбираем поиск «Intermodular calls», что даст нам список всех адресов и команд внешних функций, используемых анализируемым модулем.
Целью поиска является API функция CreateProcess, используемая для создания дочернего процесса в системах Windows, т.е., то, что запускает клиент игры. Найдя несколько адресов данной функции, устанавливаем на каждой точку останова (breakpoint), клавиша F2.
Все. Теперь отладчик мгновенно остановит работающее приложение, как только исполняемый код достигнет указанных адресов. Если приложение находилось в режиме паузы, нажимаем F9 (run), или просто возвращаемся к ланчеру и нажимаем кнопку «start». Как и предполагалось, дебаггер остановил процесс на том месте, где происходит вызов api функции.
Следующий и последний шаг – смотрит на состояние стека (нижний правый угол окна CPU ollydbg), где указаны параметры функции CreateProcess.
«CommandLine = …» - искомое значение.