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

  #10  
Старый 16.08.2019, 22:47
ШPEK
Познавший АНТИЧАТ
Регистрация: 22.02.2017
Сообщений: 1,474
С нами: 4852492

Репутация: 88


По умолчанию

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

Здарова, сделал я структуру для хука, но она почему-то не ставит хук, хотя просто функция работала нормально, как можно решить?

C++:





Код:
struct
Hook
{
DWORD addr
=
NULL
;
byte
*
data
=
nullptr
;
size_t size
=
NULL
;
Hook
(
const
DWORD
&
addr
,
const
DWORD
&
func
,
const
size_t
&
size
=
5
)
{
this
->
data
=
new
byte
[
size
]
;
this
->
size
=
size
;
this
->
addr
=
addr
;
DWORD dwProt
=
PAGE_EXECUTE_READWRITE
;
VirtualProtect
(
(
void
*
)
addr
,
size
,
dwProt
,
&
dwProt
)
;
memcpy
(
data
,
(
void
*
)
addr
,
size
)
;
memset
(
(
void
*
)
(
addr
-
4
)
,
0x90
,
size
-
4
)
;
*
(
byte
*
)
(
addr
)
=
0xE9
;
// jmp
*
(
unsigned
int
*
)
(
addr
+
1
)
=
func
-
(
addr
+
5
)
;
VirtualProtect
(
(
void
*
)
addr
,
size
,
dwProt
,
NULL
)
;
}
~
Hook
(
)
{
if
(
data
!=
nullptr
)
{
DWORD dwProt
=
PAGE_EXECUTE_READWRITE
;
VirtualProtect
(
(
void
*
)
addr
,
size
,
dwProt
,
&
dwProt
)
;
memcpy
(
(
void
*
)
addr
,
data
,
size
)
;
VirtualProtect
(
(
void
*
)
addr
,
size
,
dwProt
,
NULL
)
;
delete
[
]
data
;
}
}
}
;

C++:





[CODE]
void
injectCall
(
char
*
mainaddrress
,
char
*
target
,
size_t bytes
=
5
)
{
DWORD protection
=
PAGE_READWRITE
;
VirtualProtect
(
mainaddrress
,
bytes
,
protection
,
&
protection
)
;
*
mainaddrress
=
0xE8
;
*
reinterpret_cast

(
mainaddrress
+
1
)
=
reinterpret_cast

(
target
)
-
(
reinterpret_cast

(
mainaddrress
)
+
5
)
;
for
(
size_t i
=
5
;
i

(
mainaddrress
+
1
)
=
reinterpret_cast

(
target
)
-
(
reinterpret_cast

(
mainaddrress
)
+
5
)
;
for
(
size_t i
=
5
;
i

 
Ответить с цитированием
 





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


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




ANTICHAT ™ © 2001- Antichat Kft.

×

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

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

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

×

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

Сумма USDT:

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

Заявка будет отправлена администратору. Комиссия форума: 2%.

×

Создать сделку

Продавец: ник или ID

Название сделки:

Сумма USDT:

Срок сделки, дней:

Кто платит комиссию:

Условия сделки:

После создания сделки средства будут зарезервированы в холде до завершения сделки.

×

Мои сделки

Загрузка...
×

Сделка


Загрузка чата...
×

ESCROW ADMIN PANEL

Загрузка...
Загрузка...