eXeL@B —› Крэки, обсуждения —› Как найти хендл окна в самой проге? |
Посл.ответ | Сообщение |
|
Создано: 17 октября 2005 11:49 · Личное сообщение · #1 |
|
Создано: 17 октября 2005 15:34 · Личное сообщение · #2 |
|
Создано: 18 октября 2005 04:40 · Личное сообщение · #3 |
|
Создано: 18 октября 2005 09:18 · Личное сообщение · #4 Ну например можно так, classname и windowname определяе любым шпионом: HWND FindWindow( LPCTSTR lpClassName, // pointer to class name LPCTSTR lpWindowName // pointer to window name ); а кода на асме наверное не будет. Мне у Касперски фраза понравилась, точно не помню, приблизительно так "Готовые решения развращают хакера и он теряет стимул к развитию" |
|
Создано: 19 октября 2005 04:12 · Личное сообщение · #5 Нет все конечно хорошо, но все таки: Подскажите как сама программа получает все эти хендлы окон или каждый раз вызывается FindWindow? Да и потом, когда окно уже созданно, его хендл должен находиться в области памяти самой программы (ну эт по-моему), да и смещение д.б. наверное одним и тем же. Вот по этому поводу я и думаю что можно найти как то хендл окна находясь в самой программе не через FindWindow. ChildWindowFromPoint() находит клиентское окно по относительным координатам в указанной точке. И если мы меняем размеры главного окошка, соответсвенно меняется и относительные координаты клиентского окна. Для нахождения клиентского окна я использовал FindWindowEx. |
|
Создано: 19 октября 2005 14:49 · Поправил: intty · Личное сообщение · #6 теперь понятно. действительно, то что я предлагал выше, не совсем то. крякеру очень полезно знать хотя-бы основы WinAPI. Без этого придется туго. Сама программа получает хендлы любого окна, в том числе и главного, одинаково. Для создания формы, кнопки, панельки, чего угодно, дельфи компилятор использует функцию HWND CreateWindowEx( DWORD dwExStyle, // extended window style LPCTSTR lpClassName, // pointer to registered class name LPCTSTR lpWindowName, // pointer to window name DWORD dwStyle, // window style int x, // horizontal position of window int y, // vertical position of window int nWidth, // window width int nHeight, // window height HWND hWndParent, // handle to parent or owner window HMENU hMenu, // handle to menu, or child-window identifier HINSTANCE hInstance, // handle to application instance LPVOID lpParam // pointer to window-creation data ); после ее вызова в eax будет находиться хэндл созданного окна, либо NULL, если окно по каким-то причинам не было создано. обрати внимание на второй и третий параметр. если lpClassName будет TForm1(а по другому главное окно обычно редко обзывают), то это как раз создание главного окна и соответственно в eax после колла будет лежать его хэндл. |
|
Создано: 19 октября 2005 20:04 · Поправил: DDA · Личное сообщение · #7 |
|
Создано: 19 октября 2005 22:41 · Личное сообщение · #8 |
|
Создано: 20 октября 2005 04:02 · Личное сообщение · #9 |
|
Создано: 20 октября 2005 04:12 · Личное сообщение · #10 |
eXeL@B —› Крэки, обсуждения —› Как найти хендл окна в самой проге? |
Эта тема закрыта. Ответы больше не принимаются. |