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
cef1dcc7
Commit
cef1dcc7
authored
Jan 22, 2019
by
swift_gan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
start impl arm32
parent
7a8cde98
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
47 additions
and
7 deletions
+47
-7
arm32.S
app/src/main/cpp/trampoline/arch/arm32.S
+17
-4
LogHooker.java
app/src/main/java/com/swift/sandhook/LogHooker.java
+6
-1
MyApp.java
app/src/main/java/com/swift/sandhook/MyApp.java
+1
-2
ObjectHooker.java
app/src/main/java/com/swift/sandhook/ObjectHooker.java
+23
-0
No files found.
app/src/main/cpp/trampoline/arch/arm32.S
View file @
cef1dcc7
...
@@ -2,27 +2,40 @@
...
@@ -2,27 +2,40 @@
#if defined(__arm__)
#if defined(__arm__)
#define Reg0 r12
//need restore
#define Reg1 x11
#define RegMethod r0
FUNCTION_START(REPLACEMENT_HOOK_TRAMPOLINE)
FUNCTION_START(REPLACEMENT_HOOK_TRAMPOLINE)
ldr
r0
, addr_art_method
ldr
RegMethod
, addr_art_method
ldr
r12
, offset_entry_code
ldr
Reg0
, offset_entry_code
add
r12, r0, r12
add
Reg0, RegMethod, Reg0
ldr pc, [
r12
]
ldr pc, [
Reg0
]
addr_art_method:
addr_art_method:
.long 0
.long 0
offset_entry_code:
offset_entry_code:
.long 0
.long 0
FUNCTION_END(REPLACEMENT_HOOK_TRAMPOLINE)
FUNCTION_END(REPLACEMENT_HOOK_TRAMPOLINE)
#define SIZE_JUMP 0x8
FUNCTION_START(DIRECT_JUMP_TRAMPOLINE)
FUNCTION_START(DIRECT_JUMP_TRAMPOLINE)
ldr pc, addr_target
ldr pc, addr_target
addr_target:
addr_target:
.long 0
.long 0
FUNCTION_END(DIRECT_JUMP_TRAMPOLINE)
FUNCTION_END(DIRECT_JUMP_TRAMPOLINE)
FUNCTION_START(INLINE_HOOK_TRAMPOLINE)
FUNCTION_START(INLINE_HOOK_TRAMPOLINE)
FUNCTION_END(INLINE_HOOK_TRAMPOLINE)
FUNCTION_END(INLINE_HOOK_TRAMPOLINE)
FUNCTION_START(CALL_ORIGIN_TRAMPOLINE)
FUNCTION_START(CALL_ORIGIN_TRAMPOLINE)
FUNCTION_END(CALL_ORIGIN_TRAMPOLINE)
FUNCTION_END(CALL_ORIGIN_TRAMPOLINE)
#endif
#endif
\ No newline at end of file
app/src/main/java/com/swift/sandhook/
wrapper/
LogHooker.java
→
app/src/main/java/com/swift/sandhook/LogHooker.java
View file @
cef1dcc7
package
com
.
swift
.
sandhook
.
wrapper
;
package
com
.
swift
.
sandhook
;
import
android.util.Log
;
import
android.util.Log
;
import
com.swift.sandhook.wrapper.HookClass
;
import
com.swift.sandhook.wrapper.HookMethod
;
import
com.swift.sandhook.wrapper.HookMethodBackup
;
import
com.swift.sandhook.wrapper.MethodParams
;
@HookClass
(
Log
.
class
)
@HookClass
(
Log
.
class
)
public
class
LogHooker
{
public
class
LogHooker
{
...
...
app/src/main/java/com/swift/sandhook/MyApp.java
View file @
cef1dcc7
...
@@ -3,14 +3,13 @@ package com.swift.sandhook;
...
@@ -3,14 +3,13 @@ package com.swift.sandhook;
import
android.app.Application
;
import
android.app.Application
;
import
com.swift.sandhook.wrapper.HookErrorException
;
import
com.swift.sandhook.wrapper.HookErrorException
;
import
com.swift.sandhook.wrapper.LogHooker
;
public
class
MyApp
extends
Application
{
public
class
MyApp
extends
Application
{
@Override
@Override
public
void
onCreate
()
{
public
void
onCreate
()
{
super
.
onCreate
();
super
.
onCreate
();
try
{
try
{
SandHook
.
addHookClass
(
LogHooker
.
class
,
ActivityHooker
.
class
);
SandHook
.
addHookClass
(
LogHooker
.
class
,
ActivityHooker
.
class
,
ObjectHooker
.
class
);
}
catch
(
HookErrorException
e
)
{
}
catch
(
HookErrorException
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
}
}
...
...
app/src/main/java/com/swift/sandhook/ObjectHooker.java
0 → 100644
View file @
cef1dcc7
package
com
.
swift
.
sandhook
;
import
android.util.Log
;
import
com.swift.sandhook.wrapper.HookClass
;
import
com.swift.sandhook.wrapper.HookMethod
;
import
com.swift.sandhook.wrapper.HookMethodBackup
;
@HookClass
(
Object
.
class
)
public
class
ObjectHooker
{
@HookMethod
(
"toString"
)
public
static
String
toStr
(
Object
thiz
)
{
Log
.
e
(
"ObjectHooker"
,
"hooked success "
);
return
toStrBackup
(
thiz
);
}
@HookMethodBackup
(
"toString"
)
public
static
String
toStrBackup
(
Object
thiz
)
{
return
null
;
}
}
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