Сейчас на форуме: bartolomeo, -Sanchez- (+4 невидимых)

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

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

Создано: 03 февраля 2006 18:49
· Личное сообщение · #1

Условие:

Программа = A.exe + B.dll

"A.exe" использует "B.dll" для хранения окон диалогов и строк.

Загрузка:

Запускаю "A.exe -conf", когда программа запустилась нажимаю "Ctrl+R" открывается окно "Конфигурация". Без параметра "-conf" и нажатия "Ctrl+R" окно не открывается.

Вопросы:
1) как отыскать место где обрабатывается "-conf", а также остальные параметры "A.exe".
2) Возможно ли запустить участок кода "A.exe" из SoftIce неиспользуя "Ctrl+R", чтобы окно активизировалось?



Ранг: 50.7 (постоянный)
Активность: 0.060
Статус: Участник

Создано: 03 февраля 2006 22:35
· Личное сообщение · #2

1)Ща ничё толком сказать не могу. Прогу давай. Если небольшая, то посмотрю( у меня GPRS, особо не покачаешь)
2)Если знаешь участок, то можно



Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 04 февраля 2006 08:14
· Личное сообщение · #3

mnb пишет:
1) как отыскать место где обрабатывается "-conf", а также остальные параметры "A.exe".

"bpx GetCommandLineA" или "bpx GetCommandLineW"

mnb пишет:
Без параметра "-conf" и нажатия "Ctrl+R" окно не открывается.

Ну, так в чём проблема? Поставь бряк на обработку Ctrl+R или открытие окна (нужно прогу щупать).
Тут тебе помогут API-шпионы, я подобные утилитки не использовал, подсказать конкретно не могу.

mnb пишет:
2) Возможно ли запустить участок кода "A.exe" из SoftIce неиспользуя "Ctrl+R", чтобы окно активизировалось?

Да, для этого тебе нужно найти процедуру окна, там, в конце, обычно DefWindowProcA.
Такие вещи проще искать в IDA.
Далее в отладчике можно направить switch или изменить переход (в зависимости от реализации).
А можно просто подсунуть сообщение о нажатии Ctrl+R.

-----
Всем привет, я вернулся




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

Создано: 06 февраля 2006 13:51
· Личное сообщение · #4

2Klajnor
Моя программа маленькая, самодельная, сделана на С. Ее использую для самообучения, а дальше хочу пропатчить игру где схожая проблема.

Bitfry если можно, то:

1) Расскажи подробней о работе с "CommandLine, DefWindowProcA"? или дай ссылку.
2) С окном вышла плохая ситуация, а именно: окно не окно, а лишь рисованный скриншот на форме в виде окна, а текст наносимый на скриншот берется из Dll.
3) Как поставить бряк на обработку Ctrl+R или открытие окна. Мне нужен пример по типу "bpx GetCommandLineW".

У меня есть идея поставить бряк на чтение памяти где хранится значение параметра "-conf" и на текст для скриншота/окна в Dll, но как это правильно сделать?



Ранг: 50.7 (постоянный)
Активность: 0.060
Статус: Участник

Создано: 06 февраля 2006 18:43
· Личное сообщение · #5

The GetCommandLine function returns a pointer to the command-line string for the current process.

LPTSTR GetCommandLine(VOID)

The DefWindowProc function calls the default window procedure to provide default processing for any window messages that an application does not process. This function ensures that every message is processed. DefWindowProc is called with the same parameters received by the window procedure.

LRESULT DefWindowProc(

HWND hWnd, // handle to window
UINT Msg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);

Взято из Delphi. Справочник по Win32 SDK

Выложи прогу. На пальцах не умею объяснять, а на конкретной проге попытаюсь


 eXeL@B —› Вопросы новичков —› Как в SoftIce можно открыть нужное мне окно чужой программы?
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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