HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 15.04.2018, 01:09
_Vine_
Участник форума
Регистрация: 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:
 
Ответить с цитированием

  #2  
Старый 15.04.2018, 01:34
BlackKnigga
Постоянный
Регистрация: 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
 
Ответить с цитированием

  #3  
Старый 15.04.2018, 02:22
_Vine_
Участник форума
Регистрация: 06.01.2016
Сообщений: 154
С нами: 5447649

Репутация: 28
По умолчанию

Цитата:
Сообщение от BlackKnigga  

Убери собейт
Спасибо, помогло, но полностью это проблему не решает, почему с собейтом это не работает и как это исправить?
 
Ответить с цитированием

  #4  
Старый 15.04.2018, 02:33
NarutoUA
Постоянный
Регистрация: 26.05.2013
Сообщений: 692
С нами: 6822856

Репутация: 213


По умолчанию

Цитата:
Сообщение от _Vine_  

Спасибо, помогло, но полностью это проблему не решает, почему с собейтом это не работает и как это исправить?
потому что собейт заменяет d3d9 либу и твои сигнатуры там не работают
 
Ответить с цитированием

  #5  
Старый 15.04.2018, 03:18
_Vine_
Участник форума
Регистрация: 06.01.2016
Сообщений: 154
С нами: 5447649

Репутация: 28
По умолчанию

Цитата:
Сообщение от NarutoUA  

потому что собейт заменяет d3d9 либу и твои сигнатуры там не работают
Сканер сигнатур ищет сигнатуру во всем модуле, и она там есть, даже в замененном собейтовском d3d9, я кидал скрин с дебаггера, разве не так?
 
Ответить с цитированием

  #6  
Старый 15.04.2018, 09:00
BlackKnigga
Постоянный
Регистрация: 10.01.2016
Сообщений: 922
С нами: 5441999

Репутация: 133


По умолчанию

Цитата:
Сообщение от _Vine_  

Спасибо, помогло, но полностью это проблему не решает, почему с собейтом это не работает и как это исправить?
Зачем вообще что то искать? Есть статический указатель на девайс, поищи в гугле
 
Ответить с цитированием

  #7  
Старый 15.04.2018, 03:24
Apolo11
Познающий
Регистрация: 18.01.2016
Сообщений: 54
С нами: 5431346

Репутация: 58
По умолчанию

Допиши перед названием длл путь к систем32
 
Ответить с цитированием

  #8  
Старый 15.04.2018, 11:53
_Vine_
Участник форума
Регистрация: 06.01.2016
Сообщений: 154
С нами: 5447649

Репутация: 28
По умолчанию

Цитата:
Сообщение от Apolo11  

Допиши перед названием длл путь к систем32
круто, спасибо, все работает

Цитата:
Сообщение от BlackKnigga  

Зачем вообще что то искать? Есть статический указатель на девайс, поищи в гугле
не нашел ничего, если есть - можно ссылоку?
 
Ответить с цитированием

  #9  
Старый 15.04.2018, 12:14
CleanLegend
Постоянный
Регистрация: 28.03.2013
Сообщений: 495
С нами: 6908018

Репутация: 213
По умолчанию

Цитата:
Сообщение от _Vine_  

не нашел ничего, если есть - можно ссылоку?
0xC97C28
 
Ответить с цитированием

  #10  
Старый 15.04.2018, 22:03
Шурик
Новичок
Регистрация: 01.12.2009
Сообщений: 0
С нами: 8654409

Репутация: 0
По умолчанию

Как можно вызвать функцию при выключении плагина/выходе из игры
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.

×

Внести депозит

Введите сумму USDT:

Принимается только USDT TRC20. Fake/Flash USDT не засчитывается.

×

Вывести депозит

Сумма USDT:

Ваш USDT TRC20 кошелек:

Заявка будет отправлена администратору.