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
e5e9b351
Commit
e5e9b351
authored
Jan 26, 2019
by
swift_gan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix 5.1, jni need fix
parent
6cb22ff5
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
62 additions
and
40 deletions
+62
-40
MyApp.java
app/src/main/java/com/swift/sandhook/MyApp.java
+5
-2
AbsHooker.java
...c/main/java/com/swift/sandhook/testHookers/AbsHooker.java
+23
-0
arm32.S
hooklib/src/main/cpp/trampoline/arch/arm32.S
+24
-28
trampoline.h
hooklib/src/main/cpp/trampoline/trampoline.h
+10
-10
No files found.
app/src/main/java/com/swift/sandhook/MyApp.java
View file @
e5e9b351
...
@@ -2,6 +2,7 @@ package com.swift.sandhook;
...
@@ -2,6 +2,7 @@ package com.swift.sandhook;
import
android.app.Application
;
import
android.app.Application
;
import
com.swift.sandhook.testHookers.AbsHooker
;
import
com.swift.sandhook.testHookers.ActivityHooker
;
import
com.swift.sandhook.testHookers.ActivityHooker
;
import
com.swift.sandhook.testHookers.CtrHook
;
import
com.swift.sandhook.testHookers.CtrHook
;
import
com.swift.sandhook.testHookers.CustmizeHooker
;
import
com.swift.sandhook.testHookers.CustmizeHooker
;
...
@@ -15,11 +16,13 @@ public class MyApp extends Application {
...
@@ -15,11 +16,13 @@ public class MyApp extends Application {
public
void
onCreate
()
{
public
void
onCreate
()
{
super
.
onCreate
();
super
.
onCreate
();
try
{
try
{
SandHook
.
addHookClass
(
JniHooker
.
class
,
CtrHook
.
class
,
SandHook
.
addHookClass
(
JniHooker
.
class
,
CtrHook
.
class
,
LogHooker
.
class
,
LogHooker
.
class
,
CustmizeHooker
.
class
,
CustmizeHooker
.
class
,
ActivityHooker
.
class
,
ActivityHooker
.
class
,
ObjectHooker
.
class
);
ObjectHooker
.
class
,
AbsHooker
.
class
);
}
catch
(
HookErrorException
e
)
{
}
catch
(
HookErrorException
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
}
}
...
...
app/src/main/java/com/swift/sandhook/testHookers/AbsHooker.java
0 → 100644
View file @
e5e9b351
package
com
.
swift
.
sandhook
.
testHookers
;
import
android.util.Log
;
import
com.swift.sandhook.wrapper.HookClass
;
import
com.swift.sandhook.wrapper.HookMethod
;
import
com.swift.sandhook.wrapper.HookMethodBackup
;
@HookClass
(
Runnable
.
class
)
public
class
AbsHooker
{
@HookMethod
(
"run"
)
public
static
void
onRun
(
Object
thiz
)
{
Log
.
e
(
"AbsHooker"
,
"Runnable hook success "
);
onRunBackup
(
thiz
);
}
@HookMethodBackup
(
"run"
)
public
static
void
onRunBackup
(
Object
thiz
)
{
onRunBackup
(
thiz
);
}
}
hooklib/src/main/cpp/trampoline/arch/arm32.S
View file @
e5e9b351
...
@@ -9,12 +9,11 @@
...
@@ -9,12 +9,11 @@
FUNCTION_START(REPLACEMENT_HOOK_TRAMPOLINE)
FUNCTION_START(REPLACEMENT_HOOK_TRAMPOLINE)
ldr RegMethod, addr_art_method
ldr RegMethod, addr_art_method
ldr Reg0, offset_entry_code
ldr Reg0, addr_code_entry
add Reg0, RegMethod, Reg0
ldr pc, [Reg0]
ldr pc, [Reg0]
addr_art_method:
addr_art_method:
.long 0
.long 0
offset_entry_code
:
addr_code_entry
:
.long 0
.long 0
FUNCTION_END(REPLACEMENT_HOOK_TRAMPOLINE)
FUNCTION_END(REPLACEMENT_HOOK_TRAMPOLINE)
...
@@ -29,34 +28,34 @@ FUNCTION_END(DIRECT_JUMP_TRAMPOLINE)
...
@@ -29,34 +28,34 @@ FUNCTION_END(DIRECT_JUMP_TRAMPOLINE)
FUNCTION_START(INLINE_HOOK_TRAMPOLINE)
FUNCTION_START(INLINE_HOOK_TRAMPOLINE)
ldr Reg0,
addr_
origin_art_method
ldr Reg0, origin_art_method
cmp RegMethod, Reg0
cmp RegMethod, Reg0
bne origin_code
bne origin_code
ldr RegMethod, addr_hook_art_method
ldr RegMethod, hook_art_method
ldr Reg0, offset_entry_code2
ldr Reg0, addr_hook_code_entry
add Reg0, RegMethod, Reg0
ldr pc, [Reg0]
ldr pc, [Reg0]
origin_code:
origin_code:
.long 0
.long 0
.long 0
.long 0
ldr Reg0, addr_origin_art_method
ldr Reg0, addr_origin_code_entry
add Reg0, Reg0, #8
ldr Reg0, [Reg0]
ldr Reg0, [Reg0]
add Reg0, Reg0, SIZE_JUMP
add Reg0, Reg0, SIZE_JUMP
mov pc, Reg0
mov pc, Reg0
addr_origin_art_method:
origin_art_method:
.long 0
addr_origin_code_entry:
.long 0
.long 0
offset_entry_code2
:
hook_art_method
:
.long 0
.long 0
addr_hook_
art_method
:
addr_hook_
code_entry
:
.long 0
.long 0
FUNCTION_END(INLINE_HOOK_TRAMPOLINE)
FUNCTION_END(INLINE_HOOK_TRAMPOLINE)
FUNCTION_START(CALL_ORIGIN_TRAMPOLINE)
FUNCTION_START(CALL_ORIGIN_TRAMPOLINE)
ldr RegMethod, origin_
art_
method
ldr RegMethod, origin_method
ldr pc, addr_origin
ldr pc, addr_origin
origin_
art_
method:
origin_method:
.long 0
.long 0
addr_origin:
addr_origin:
.long 0
.long 0
...
@@ -72,7 +71,7 @@ FUNCTION_END(DIRECT_JUMP_TRAMPOLINE_T)
...
@@ -72,7 +71,7 @@ FUNCTION_END(DIRECT_JUMP_TRAMPOLINE_T)
FUNCTION_START_T(INLINE_HOOK_TRAMPOLINE_T)
FUNCTION_START_T(INLINE_HOOK_TRAMPOLINE_T)
//4 byte
//4 byte
ldr RegT,
addr_
origin_art_method_t
ldr RegT, origin_art_method_t
//2 byte
//2 byte
cmp RegMethod, RegT
cmp RegMethod, RegT
nop
nop
...
@@ -80,12 +79,9 @@ FUNCTION_START_T(INLINE_HOOK_TRAMPOLINE_T)
...
@@ -80,12 +79,9 @@ FUNCTION_START_T(INLINE_HOOK_TRAMPOLINE_T)
bne origin_code_t
bne origin_code_t
nop
nop
//4 byte
//4 byte
ldr RegMethod,
addr_
hook_art_method_t
ldr RegMethod, hook_art_method_t
//4 byte
//4 byte
ldr RegT, offset_entry_code2_t
ldr RegT, addr_hook_code_entry_t
//2 byte
add RegT, RegMethod, RegT
nop
//4 byte
//4 byte
ldr pc, [RegT]
ldr pc, [RegT]
origin_code_t:
origin_code_t:
...
@@ -94,9 +90,7 @@ origin_code_t:
...
@@ -94,9 +90,7 @@ origin_code_t:
//4 byte
//4 byte
.long 0
.long 0
//4 byte
//4 byte
ldr RegT, addr_origin_art_method_t
ldr RegT, addr_origin_code_entry_t
//4 byte
add RegT, RegT, #36
//4 byte
//4 byte
ldr RegT, [RegT]
ldr RegT, [RegT]
//4 byte
//4 byte
...
@@ -104,18 +98,20 @@ origin_code_t:
...
@@ -104,18 +98,20 @@ origin_code_t:
//2 byte
//2 byte
mov pc, RegT
mov pc, RegT
nop
nop
addr_
origin_art_method_t:
origin_art_method_t:
.long 0
.long 0
offset_entry_code2
_t:
addr_origin_code_entry
_t:
.long 0
.long 0
addr_hook_art_method_t:
hook_art_method_t:
.long 0
addr_hook_code_entry_t:
.long 0
.long 0
FUNCTION_END(INLINE_HOOK_TRAMPOLINE_T)
FUNCTION_END(INLINE_HOOK_TRAMPOLINE_T)
FUNCTION_START_T(CALL_ORIGIN_TRAMPOLINE_T)
FUNCTION_START_T(CALL_ORIGIN_TRAMPOLINE_T)
ldr RegMethod, origin_
art_
method_t
ldr RegMethod, origin_method_t
ldr pc, addr_origin_t
ldr pc, addr_origin_t
origin_
art_
method_t:
origin_method_t:
.long 0
.long 0
addr_origin_t:
addr_origin_t:
.long 0
.long 0
...
...
hooklib/src/main/cpp/trampoline/trampoline.h
View file @
e5e9b351
...
@@ -41,20 +41,20 @@
...
@@ -41,20 +41,20 @@
#define OFFSET_INLINE_OFFSET_ENTRY_CODE 4 * 20
#define OFFSET_INLINE_OFFSET_ENTRY_CODE 4 * 20
#define OFFSET_INLINE_ADDR_HOOK_METHOD 4 * 22
#define OFFSET_INLINE_ADDR_HOOK_METHOD 4 * 22
#elif defined(__arm__)
#elif defined(__arm__)
#define SIZE_REPLACEMENT_HOOK_TRAMPOLINE 4 *
6
#define SIZE_REPLACEMENT_HOOK_TRAMPOLINE 4 *
5
#define OFFSET_REPLACEMENT_A
DDR_ART_METHOD 4 * 4
#define OFFSET_REPLACEMENT_A
RT_METHOD 4 * 3
#define OFFSET_REPLACEMENT_OFFSET_
ENTRY_CODE 4 * 5
#define OFFSET_REPLACEMENT_OFFSET_
CODE_ENTRY 4 * 4
#define SIZE_DIRECT_JUMP_TRAMPOLINE 4 * 2
#define SIZE_DIRECT_JUMP_TRAMPOLINE 4 * 2
#define OFFSET_JUMP_ADDR_TARGET 4 * 1
#define OFFSET_JUMP_ADDR_TARGET 4 * 1
#define SIZE_INLINE_HOOK_TRAMPOLINE 4 * 1
7
#define SIZE_INLINE_HOOK_TRAMPOLINE 4 * 1
6
#define OFFSET_INLINE_ORIGIN_CODE 4 *
7
#define OFFSET_INLINE_ORIGIN_CODE 4 *
6
#define OFFSET_INLINE_O
P_OFFSET_CODE 4 * 10
#define OFFSET_INLINE_O
RIGIN_ART_METHOD 4 * 12
#define OFFSET_INLINE_
OP_ORIGIN_OFFSET_CODE 4 * 12
#define OFFSET_INLINE_
ADDR_ORIGIN_CODE_ENTRY 4 * 13
#define OFFSET_INLINE_
ADDR_ORIGIN
_METHOD 4 * 14
#define OFFSET_INLINE_
HOOK_ART
_METHOD 4 * 14
#define OFFSET_INLINE_
OFFSET_ENTRY_CODE
4 * 15
#define OFFSET_INLINE_
ADDR_HOOK_CODE_ENTRY
4 * 15
#define OFFSET_INLINE_
ADDR_HOOK_METHOD 4 * 16
#define OFFSET_INLINE_
OP_ORIGIN_OFFSET_CODE 4 * 10
#define SIZE_CALL_ORIGIN_TRAMPOLINE 4 * 4
#define SIZE_CALL_ORIGIN_TRAMPOLINE 4 * 4
#define OFFSET_CALL_ORIGIN_ART_METHOD 4 * 2
#define OFFSET_CALL_ORIGIN_ART_METHOD 4 * 2
...
...
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