Toggle navigation
Toggle navigation
This project
Loading...
Sign in
I_Jemin
/
ITHVNR_kor
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
mireado
2016-04-20 23:18:15 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
52adef33a49f2e85df7c5fb0f6e0fdc98f1626a0
52adef33
1 parent
a9639a4d
AOS engine pattern update
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
47 additions
and
1 deletions
vnr/vnrhook/src/engine/engine.cc
vnr/vnrhook/src/engine/engine.cc
View file @
52adef3
...
...
@@ -10924,7 +10924,8 @@ bool InsertTencoHook()
* 00e3c354 |. 85c9 test ecx,ecx
* 00e3c356 |. 74 32 je short 恋する�00e3c38a
*/
bool
InsertAOSHook
()
bool
InsertAOS1Hook
()
{
// jichi 4/2/2014: The starting of this function is different from ヂ�モノツキ
// So, use a pattern in the middle of the function instead.
...
...
@@ -10982,6 +10983,51 @@ bool InsertAOSHook()
return
true
;
}
bool
InsertAOS2Hook
()
{
const
BYTE
bytes
[]
=
{
0x51
,
// 00C4E7E0 /$ 51 PUSH ECX ; mireado: hook here, function begins
0x33
,
0xc0
,
// 00C4E7E1 |. 33C0 XOR EAX,EAX
0x53
,
// 00C4E7E3 |. 53 PUSH EBX
0x55
,
// 00C4E7E4 |. 55 PUSH EBP
0x8b
,
0x2d
,
0x40
,
0xa3
,
0xcf
,
0x00
,
// 00C4E7E5 |. 8B2D 40A3CF00 MOV EBP,DWORD PTR DS:[0CFA340]
0x89
,
0x07
,
// 00C4E7EB |. 8907 MOV DWORD PTR DS:[EDI],EAX
0x89
,
0x47
,
0x04
,
// 00C4E7ED |. 8947 04 MOV DWORD PTR DS:[EDI+4],EAX
0x56
,
// 00C4E7F0 |. 56 PUSH ESI
0x8b
,
0x75
,
0x44
,
// 00C4E7F1 |. 8B75 44 MOV ESI,DWORD PTR SS:[EBP+44]
};
enum
{
addr_offset
=
0
};
// distance to the beginning of the function, which is 0x51 (push ecx)
ULONG
range
=
min
(
module_limit_
-
module_base_
,
MAX_REL_ADDR
);
ULONG
addr
=
MemDbg
::
findBytes
(
bytes
,
sizeof
(
bytes
),
module_base_
,
module_base_
+
range
);
//GROWL(reladdr);
if
(
!
addr
)
{
ConsoleOutput
(
"vnreng:AOS: pattern not found"
);
return
false
;
}
addr
+=
addr_offset
;
//GROWL(addr);
enum
{
push_ecx
=
0x51
};
// beginning of the function
if
(
*
(
BYTE
*
)
addr
!=
push_ecx
)
{
ConsoleOutput
(
"vnreng:AOS: beginning of the function not found"
);
return
false
;
}
HookParam
hp
=
{};
hp
.
address
=
addr
;
hp
.
length_offset
=
1
;
hp
.
offset
=
8
;
hp
.
type
=
DATA_INDIRECT
;
ConsoleOutput
(
"vnreng: INSERT AOS2"
);
NewHook
(
hp
,
"AOS2"
);
return
true
;
}
bool
InsertAOSHook
()
{
return
InsertAOS1Hook
()
||
InsertAOS2Hook
();}
/**
* jichi 1/10/2014: Rai7 puk
* See: http://www.hongfire.com/forum/showthread.php/421909-%E3%80%90Space-Warfare-Sim%E3%80%91Rai-7-PUK/page10
...
...
Please
register
or
login
to post a comment