Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
S
SandHook
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
SandHook
Commits
b2099376
Commit
b2099376
authored
Jan 24, 2019
by
swift_gan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
re-choose ip registers
parent
42543579
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
65 additions
and
12 deletions
+65
-12
arm64.S
app/src/main/cpp/trampoline/arch/arm64.S
+63
-2
ActivityHooker.java
...src/main/java/com/swift/sandhook/test/ActivityHooker.java
+2
-10
No files found.
app/src/main/cpp/trampoline/arch/arm64.S
View file @
b2099376
#include "base.h"
#include "base.h"
/**
*
//aarch64 ART 寄存器使用策略
// Method register on invoke.
// 储存正在调用的代码
static const vixl::aarch64::Register kArtMethodRegister = vixl::aarch64::x0;
//参数传递
static const vixl::aarch64::Register kParameterCoreRegisters[] = {
vixl::aarch64::x1,
vixl::aarch64::x2,
vixl::aarch64::x3,
vixl::aarch64::x4,
vixl::aarch64::x5,
vixl::aarch64::x6,
vixl::aarch64::x7
};
//
const vixl::aarch64::CPURegList vixl_reserved_core_registers(vixl::aarch64::ip0,
vixl::aarch64::ip1);
//浮点计算
static const vixl::aarch64::FPRegister kParameterFPRegisters[] = {
vixl::aarch64::d0,
vixl::aarch64::d1,
vixl::aarch64::d2,
vixl::aarch64::d3,
vixl::aarch64::d4,
vixl::aarch64::d5,
vixl::aarch64::d6,
vixl::aarch64::d7
};
// Thread Register.
// 线程
const vixl::aarch64::Register tr = vixl::aarch64::x19;
// Marking Register.
// GC 标记
const vixl::aarch64::Register mr = vixl::aarch64::x20;
// Callee-save registers AAPCS64, without x19 (Thread Register) (nor
// x20 (Marking Register) when emitting Baker read barriers).
const vixl::aarch64::CPURegList callee_saved_core_registers(
vixl::aarch64::CPURegister::kRegister,
vixl::aarch64::kXRegSize,
((kEmitCompilerReadBarrier && kUseBakerReadBarrier)
? vixl::aarch64::x21.GetCode()
: vixl::aarch64::x20.GetCode()),
vixl::aarch64::x30.GetCode());
结论,x16/x17
x22 - x28 貌似可以使用
*
*/
#if defined(__aarch64__)
#if defined(__aarch64__)
#define Reg0 x
16
#define Reg0 x
24
#define Reg1 x
17
#define Reg1 x
25
#define RegMethod x0
#define RegMethod x0
FUNCTION_START(REPLACEMENT_HOOK_TRAMPOLINE)
FUNCTION_START(REPLACEMENT_HOOK_TRAMPOLINE)
...
...
app/src/main/java/com/swift/sandhook/test/ActivityHooker.java
View file @
b2099376
...
@@ -25,11 +25,7 @@ public class ActivityHooker {
...
@@ -25,11 +25,7 @@ public class ActivityHooker {
@MethodParams
(
Bundle
.
class
)
@MethodParams
(
Bundle
.
class
)
public
static
void
onCreate
(
Activity
thiz
,
Bundle
bundle
)
{
public
static
void
onCreate
(
Activity
thiz
,
Bundle
bundle
)
{
Log
.
e
(
"ActivityHooker"
,
"hooked onCreate success "
+
thiz
);
Log
.
e
(
"ActivityHooker"
,
"hooked onCreate success "
+
thiz
);
try
{
onCreateBackup
(
thiz
,
bundle
);
onCreateBackup
.
invoke
(
thiz
,
bundle
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
}
@HookMethodBackup
(
"onCreate"
)
@HookMethodBackup
(
"onCreate"
)
...
@@ -41,11 +37,7 @@ public class ActivityHooker {
...
@@ -41,11 +37,7 @@ public class ActivityHooker {
@HookMethod
(
"onPause"
)
@HookMethod
(
"onPause"
)
public
static
void
onPause
(
Activity
thiz
)
{
public
static
void
onPause
(
Activity
thiz
)
{
Log
.
e
(
"ActivityHooker"
,
"hooked onPause success "
+
thiz
);
Log
.
e
(
"ActivityHooker"
,
"hooked onPause success "
+
thiz
);
try
{
onPauseBackup
(
thiz
);
onPauseBackup
.
invoke
(
thiz
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
}
@HookMethodBackup
(
"onPause"
)
@HookMethodBackup
(
"onPause"
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment