
27.05.2023, 11:22
|
|
Постоянный
Регистрация: 26.03.2016
Сообщений: 660
С нами:
5332594
Репутация:
163
|
|
1. You need any signature scanner, as example: https://github.com/Zer0Mem0ry/SignatureScanner
2. Now you need to replace all calls with their C analogs
How to find signature:
C++:
Код:
SignatureScanner sig_scan
;
if
(
sig_scan
.
GetProcess
(
"gta_sa.exe"
)
)
{
module mod
=
sig_scan
.
GetModule
(
"SignatureTest.exe"
)
;
std
::
uint64_t
address
=
sig_scan
.
FindSignature
(
mod
.
dwBase
,
mod
.
dwSize
,
"\x36\x46\x45\x50\x5F\x52\x45\x53\x00\x0B\x00\x00\x40\x01\xAA\x00\x03\x00\x05\x46\x45\x48\x5F\x4D\x41\x50\x00\x0B\x05\x00\x40\x01\xC8\x00\x03\x00\x05\x46\x45\x50\x5F\x4F\x50\x54\x00\x0B\x21\x00\x40\x01\xE6\x00\x03\x00\x05\x46\x45\x50\x5F\x51\x55\x49\x00\x0B\x23\x00\x40\x01\x04\x01\x03\x00"
,
"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
)
;
}
Lua:
Код:
memory
.
fill
(
int address
,
int value
,
uint size
,
[
bool unprotect
=
false
]
)
equivalent
C++:
Код:
void
*
memset
(
void
*
dest
,
int
ch
,
std
::
size_t count
)
;
Lua:
Код:
memory
.
write
(
int address
,
int value
,
uint size
,
[
bool unprotect
=
false
]
)
equivalent
C++:
Код:
void
*
memcpy
(
void
*
dest
,
const
void
*
src
,
std
::
size_t count
)
;
|
|
|