
15.04.2018, 01:09
|
|
Участник форума
Регистрация: 06.01.2016
Сообщений: 154
С нами:
5447649
Репутация:
28
|
|
Прошу помощи.
Мне нужно найти адрес EndScene из d3d9.dll сканером сигнатур, паттерн и маска известны.
Вот сам код:
C++:
[CODE]
#include
#include
#pragma warning(disable:4996)
DWORD
FindPattern
(
HMODULE hModule
,
char
*
szPattern
,
char
*
szMask
)
{
MODULEINFO mInfo
=
{
}
;
GetModuleInformation
(
GetCurrentProcess
(
)
,
hModule
,
&
mInfo
,
sizeof
(
MODULEINFO
)
)
;
DWORD dwBase
=
(
DWORD
)
mInfo
.
lpBaseOfDll
;
DWORD dwSize
=
(
DWORD
)
mInfo
.
SizeOfImage
;
DWORD dwPatternLength
=
(
DWORD
)
strlen
(
szMask
)
;
for
(
DWORD i
=
0
;
i
Объясню че делает:
1) в dllmain'e создается новый поток "Thread"
2) в потоке "Thread" я получаю модуль d3d9.dll, если его нету вывожу сообщение о его отсутствии
3) если модуль d3d9.dll успешно получен - сканером сигнатур получаю адрес EndScene и вывожу его адрес в HEX'e
Сама проблема:
Если я инжекчу мою длл в тестовое приложение win32, там где нихуя нету, то я увижу это(нормальный адрес EndScene, проблем нет)
Че я увижу если перейду по этому адресу в откладчике:
Вроде бы все заебись, продолжаем.
Закрываем тестовое приложение, открываем SA:MP, инжектим заного ту же DLL уже в самп.
Что я вижу при инжекте:
Что это значит?
Это значит то, что модуль d3d9.dll найден, но сканер сигнатур не находит нужный адрес.
Снова перейдем в откладчик, по тому адресу, который мы получили в прошлый раз:
Мы видим точно ту же картину, что и тогда.
Точно таким же образом я пытался инжектить эту длл в совершенно разные процессы, и там, где был модуль d3d9.dll - везде находило нормальный адрес.
Почему же в сампе это не работает?:thinking:
|
|
|

15.04.2018, 01:34
|
|
Постоянный
Регистрация: 10.01.2016
Сообщений: 922
С нами:
5441999
Репутация:
133
|
|
[QUOTE="_Vine_"]
Прошу помощи.
Мне нужно найти адрес EndScene из d3d9.dll сканером сигнатур, паттерн и маска известны.
Вот сам код:
C++:
[CODE]
#include
#include
#pragma warning(disable:4996)
DWORD
FindPattern
(
HMODULE hModule
,
char
*
szPattern
,
char
*
szMask
)
{
MODULEINFO mInfo
=
{
}
;
GetModuleInformation
(
GetCurrentProcess
(
)
,
hModule
,
&
mInfo
,
sizeof
(
MODULEINFO
)
)
;
DWORD dwBase
=
(
DWORD
)
mInfo
.
lpBaseOfDll
;
DWORD dwSize
=
(
DWORD
)
mInfo
.
SizeOfImage
;
DWORD dwPatternLength
=
(
DWORD
)
strlen
(
szMask
)
;
for
(
DWORD i
=
0
;
i
|
|
|

15.04.2018, 02:22
|
|
Участник форума
Регистрация: 06.01.2016
Сообщений: 154
С нами:
5447649
Репутация:
28
|
|
Сообщение от BlackKnigga
Убери собейт
Спасибо, помогло, но полностью это проблему не решает, почему с собейтом это не работает и как это исправить?
|
|
|

15.04.2018, 02:33
|
|
Постоянный
Регистрация: 26.05.2013
Сообщений: 692
С нами:
6822856
Репутация:
213
|
|
Сообщение от _Vine_
Спасибо, помогло, но полностью это проблему не решает, почему с собейтом это не работает и как это исправить?
потому что собейт заменяет d3d9 либу и твои сигнатуры там не работают
|
|
|

15.04.2018, 03:18
|
|
Участник форума
Регистрация: 06.01.2016
Сообщений: 154
С нами:
5447649
Репутация:
28
|
|
Сообщение от NarutoUA
потому что собейт заменяет d3d9 либу и твои сигнатуры там не работают
Сканер сигнатур ищет сигнатуру во всем модуле, и она там есть, даже в замененном собейтовском d3d9, я кидал скрин с дебаггера, разве не так?
|
|
|

15.04.2018, 09:00
|
|
Постоянный
Регистрация: 10.01.2016
Сообщений: 922
С нами:
5441999
Репутация:
133
|
|
Сообщение от _Vine_
Спасибо, помогло, но полностью это проблему не решает, почему с собейтом это не работает и как это исправить?
Зачем вообще что то искать? Есть статический указатель на девайс, поищи в гугле
|
|
|

15.04.2018, 03:24
|
|
Познающий
Регистрация: 18.01.2016
Сообщений: 54
С нами:
5431346
Репутация:
58
|
|
Допиши перед названием длл путь к систем32
|
|
|

15.04.2018, 11:53
|
|
Участник форума
Регистрация: 06.01.2016
Сообщений: 154
С нами:
5447649
Репутация:
28
|
|
Сообщение от Apolo11
Допиши перед названием длл путь к систем32
круто, спасибо, все работает
Сообщение от BlackKnigga
Зачем вообще что то искать? Есть статический указатель на девайс, поищи в гугле
не нашел ничего, если есть - можно ссылоку?
|
|
|

15.04.2018, 12:14
|
|
Постоянный
Регистрация: 28.03.2013
Сообщений: 495
С нами:
6908018
Репутация:
213
|
|
Сообщение от _Vine_
не нашел ничего, если есть - можно ссылоку?
0xC97C28
|
|
|

15.04.2018, 22:03
|
|
Новичок
Регистрация: 01.12.2009
Сообщений: 0
С нами:
8654409
Репутация:
0
|
|
Как можно вызвать функцию при выключении плагина/выходе из игры
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|