|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
24.08.2008, 15:32 | #1 |
Форумчанин
Регистрация: 23.09.2007
Сообщений: 147
|
Ошибки при инжекте
Идея такая: нужно заблокировать игру, но сделать все так, чтобы это выглядело ошибкой игры типа "Приложению не удалось запуститься поскольку bink32.dll не был найден"
Чтобы это выглядело натурально сам MessageBox с текстом ошибки должен выполнятся в контексте самого процесса игры Но в момент создания потока в ее процессе вылетает ошибка блокируемой игры типа "неизвестная ошибка, отправлять отчет или нет", а если и не вылетает то сам процесс завершается, при этом MessageBox не появляется Инжект производится с помощью MS-Remовского AdvApiHook и nativeApi, плюс в коде используется мой модуль blocking, содержащий функции получения всякого рода хэндлов по id, именам и т.п. Вот код Delphi модуля, где описана функция такого рода блокирования - BlockApps Код:
Я надеваю тапочки, ищу чем похмелиться, ах, если я сейчас умру, то на... я родился
|
24.08.2008, 21:23 | #2 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
перепиши код и проверяй правильность хендла и ID процесса и получай код ошибки через GetLastError. И насколько я помню функция InjectThread принимает хендл процесса, а не его ID.
|
25.08.2008, 08:13 | #3 |
Форумчанин
Регистрация: 23.09.2007
Сообщений: 147
|
Ну я хендл и передаю и нахожу его по id окна (по id окна - id процесса, потом OpenProcess дает хэндл: так и возвращает хэндл функция FindProcessHandleByWindowId), ошибка вылетает внутри InjectThread на этапе Create RemoreThread, память же до этого выделяется нормально. Получается единственный способ переписать модуль AdvApiHook, чтобы по возвращаемому значению InjectThread можно было понять, на каком этапе произоша ошибка?
Я надеваю тапочки, ищу чем похмелиться, ах, если я сейчас умру, то на... я родился
|
25.08.2008, 14:09 | #4 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
да. В принципе тебе надо добавить в код этой функции вывод кода ошибки после каждой операции. Или же можно посмотреть код ошибки в отладчике - так намного проще.
|
21.08.2012, 06:18 | #5 |
кривокодер ;)
Форумчанин
Регистрация: 20.06.2008
Сообщений: 707
|
Модуль advApiHook вызывает ошибки.
Мне самому переписать его не хватит знания... Придется использовать другой модуль. Подробнее от GunSmocker`a: http://www.programmersforum.ru/showt...=209930&page=2 PS: Простите за некропост, вдруг кому пригодится...
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид} |
21.08.2012, 11:04 | #6 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
Уау, не прошло и четырех лет...
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Две ошибки | Crivel | Помощь студентам | 10 | 31.07.2008 12:18 |
ошибки функцый | Николя | Microsoft Office Excel | 4 | 23.06.2008 14:16 |
Ошибки | delphin100 | Операционные системы общие вопросы | 12 | 17.04.2008 14:15 |
Ошибки | Terran | Общие вопросы Delphi | 3 | 05.02.2008 20:47 |
Окна ошибки | xTANATOSx | Общие вопросы Delphi | 2 | 22.01.2008 21:17 |