|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
02.10.2011, 14:17 | #21 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Жосткое определение.
Игра Counter-Strike. Увы но разработчики и не думаю том, чтобы блокировать такую дырку. Игра как минимум грузит в себя и простые dll если те туда положить. Однако и сообщения MessageBox тоже выдаёт... однако после закрытия сообщения dll выгружается. Последний раз редактировалось Человек_Борща; 02.10.2011 в 14:34. |
02.10.2011, 14:22 | #22 |
Я не простой
Пользователь
Регистрация: 29.09.2011
Сообщений: 77
|
Переливаете из пустого в порожнее
Знание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нем сведения
|
02.10.2011, 15:07 | #23 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
как минимум это работает:
Код:
|
02.10.2011, 22:41 | #24 | ||
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Цитата:
Во-вторых, эти файлы регистрируют что-то через mss32.dll/RIB_register_interface. Цитата:
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
||
02.10.2011, 22:57 | #25 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
1. Нет, там обычные dll. Может для системы и других программ там спец. какой-то экспорт нужен(и/или ещё что-то), но в данном случает asi простая dll с другим расширением. Сказал же, что есть 4 таких спец. расширения файлов(asi одно из них), которые игра загребает без каких-либо визгов и требований.
2. Смысл мне выкладывать то, чего я не знаю? В приведённом коде с++, при подключении dll создаётся поток, и 2 эксп. функции лезут под колпак VirtualProtect(Create32). При отключении dll, функции вылазят из под колпака(RemoveDetour). (Весь код не влазил в сообщение, оставил dllproc и всего-то) Может дело в том, что моя dll ничего не делает? Вопрос: Допустим dll ничего не делает(как моя), система/приложение могут её выгрузить? Последний раз редактировалось Человек_Борща; 02.10.2011 в 23:07. |
02.10.2011, 23:09 | #26 | |||
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Цитата:
Ещё раз: эта твоя .asi, которая ".dll с другим расширением" - она экспортирует RIB_main. Так понятно? Цитата:
К примеру, меня очень интересует, не загружает ли этот код сам себя. Чем не причина для невыгрузки DLL? Цитата:
DLL загружается и выгружается только по указке программы - через LoadLibrary и FreeLibrary. DLL может быть загружена многократно. Тогда реально она будет выгружена, когда её освободят столько же раз, сколько и загрузили - т.е. обычный счётчик ссылок. Поэтому, тот факт, что твоя DLL выгружается, означает, что программа явно скомандовала её выгрузить. Нетрудно догадаться, что сделала она это потому, что DLL ей не нравится. Поскольку больше DLL никто не требует, то она выгружается.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
|||
02.10.2011, 23:17 | #27 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Ок, выкладываю asi(в смысле dll) и исходник...
Может сможешь понять, почему оно не выгружается из игры. Пытаюсь написать что-то подобное на delphi, а знания c++ оставляют желать лучшего. |
02.10.2011, 23:24 | #28 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Ололо :-D
А говоришь "Смысл мне выкладывать то, чего я не знаю?" :-D :-D Всё, я в конвульсиях :-D Окей, на пальцах Наводящий вопрос №1: как называется файл, который получается в результате компиляции этого кода? Уж не simprot.asi ли? Наводящий вопрос №2: что делает этот файл первым действием? Уж не ставит ли хук на FreeLibrary? Наводящий вопрос №3: что делает этот код (код хука)? Код:
Если и сейчас не дошло - DLL вообще-то выгружается. Просто сама DLL перехватывает попытки её выгрузить и отменяет их.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
02.10.2011, 23:32 | #29 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
1. получается dll, просто переименовывается в asi(исходник на c++ прилепил ы 27 сообщении).
2. выполняет: Код:
Код:
Последний раз редактировалось Человек_Борща; 02.10.2011 в 23:35. |
02.10.2011, 23:43 | #30 | ||
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Цитата:
Цитата:
В смысле, не тот *.asi, что нужен программе. Она переименовывается в *.asi только для того, чтобы автоматически запускаться вместе с программой. Только и всего. Но необходимого для *.asi она не реализует, попытки себя выгрузить блокирует, а вместо этого делает что-то там своё - вон то, что делает весь остальной код.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
DLLProc | Aleksey1989 | Помощь студентам | 1 | 14.04.2011 10:00 |
Проблема dll | EXMP | Софт | 0 | 18.08.2010 09:30 |
Проблема с DLL | _-Re@l-_ | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 09.06.2010 14:28 |
Проблема с DLL. | profi | Помощь студентам | 5 | 06.01.2009 23:48 |
Проблема с dll( | DM_bite | Помощь студентам | 10 | 31.07.2008 16:05 |