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
59726be9
Commit
59726be9
authored
Mar 28, 2019
by
swift_gan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
tweak demo
parent
23b25448
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
59 additions
and
68 deletions
+59
-68
ActivityHooker.java
...n/java/com/swift/sandhook/testHookers/ActivityHooker.java
+5
-17
CtrHook.java
...src/main/java/com/swift/sandhook/testHookers/CtrHook.java
+22
-26
JniHooker.java
...c/main/java/com/swift/sandhook/testHookers/JniHooker.java
+12
-14
LogHooker.java
...c/main/java/com/swift/sandhook/testHookers/LogHooker.java
+10
-9
NewAnnotationApiHooker.java
...om/swift/sandhook/testHookers/NewAnnotationApiHooker.java
+10
-2
No files found.
app/src/main/java/com/swift/sandhook/testHookers/ActivityHooker.java
View file @
59726be9
...
...
@@ -4,6 +4,7 @@ import android.app.Activity;
import
android.os.Bundle
;
import
android.util.Log
;
import
com.swift.sandhook.SandHook
;
import
com.swift.sandhook.annotation.HookClass
;
import
com.swift.sandhook.annotation.HookMethod
;
import
com.swift.sandhook.annotation.HookMethodBackup
;
...
...
@@ -24,28 +25,15 @@ public class ActivityHooker {
@HookMethod
(
"onCreate"
)
@MethodParams
(
Bundle
.
class
)
public
static
void
onCreate
(
Activity
thiz
,
Bundle
bundle
)
{
public
static
void
onCreate
(
Activity
thiz
,
Bundle
bundle
)
throws
Throwable
{
Log
.
e
(
"ActivityHooker"
,
"hooked onCreate success "
+
thiz
);
onCreateBackup
(
thiz
,
bundle
);
}
@HookMethodBackup
(
"onCreate"
)
@MethodParams
(
Bundle
.
class
)
public
static
void
onCreateBackup
(
Activity
thiz
,
Bundle
bundle
)
{
//invoke self to kill inline
onCreateBackup
(
thiz
,
bundle
);
SandHook
.
callOriginByBackup
(
onCreateBackup
,
thiz
,
bundle
);
}
@HookMethod
(
"onPause"
)
public
static
void
onPause
(
@ThisObject
Activity
thiz
)
{
public
static
void
onPause
(
@ThisObject
Activity
thiz
)
throws
Throwable
{
Log
.
e
(
"ActivityHooker"
,
"hooked onPause success "
+
thiz
);
onPauseBackup
(
thiz
);
}
@HookMethodBackup
(
"onPause"
)
public
static
void
onPauseBackup
(
@ThisObject
Activity
thiz
)
{
//invoke self to kill inline
onPauseBackup
(
thiz
);
SandHook
.
callOriginByBackup
(
onPauseBackup
,
thiz
);
}
}
app/src/main/java/com/swift/sandhook/testHookers/CtrHook.java
View file @
59726be9
...
...
@@ -2,54 +2,50 @@ package com.swift.sandhook.testHookers;
import
android.util.Log
;
import
com.swift.sandhook.SandHook
;
import
com.swift.sandhook.annotation.HookClass
;
import
com.swift.sandhook.annotation.HookMethod
;
import
com.swift.sandhook.annotation.HookMethodBackup
;
import
com.swift.sandhook.annotation.HookMode
;
import
com.swift.sandhook.annotation.SkipParamCheck
;
import
com.swift.sandhook.annotation.ThisObject
;
import
com.swift.sandhook.test.TestClass
;
import
java.lang.reflect.Method
;
@HookClass
(
TestClass
.
class
)
public
class
CtrHook
{
@HookMethodBackup
@SkipParamCheck
static
Method
ctrbackup
;
@HookMethodBackup
(
"add1"
)
@SkipParamCheck
static
Method
add1backup
;
@HookMethodBackup
(
"add2"
)
@SkipParamCheck
static
Method
add2backup
;
@HookMethod
public
static
void
onCtr
(
@ThisObject
TestClass
thiz
,
int
a
)
{
public
static
void
onCtr
(
@ThisObject
TestClass
thiz
,
int
a
)
throws
Throwable
{
Log
.
e
(
"TestClassHook"
,
"TestClass(int) been hooked"
);
onCtrBackup
(
thiz
,
a
);
}
@HookMethodBackup
public
static
void
onCtrBackup
(
@ThisObject
TestClass
thiz
,
int
a
)
{
onCtrBackup
(
thiz
,
a
);
SandHook
.
callOriginByBackup
(
ctrbackup
,
thiz
,
a
);
}
@HookMethod
(
"add1"
)
@HookMode
(
HookMode
.
INLINE
)
public
static
void
onAdd1
(
TestClass
thiz
)
{
public
static
void
onAdd1
(
TestClass
thiz
)
throws
Throwable
{
Log
.
e
(
"TestClassHook"
,
"add1 been hooked"
);
try
{
onAdd1Backup
(
thiz
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
@HookMethodBackup
(
"add1"
)
public
static
void
onAdd1Backup
(
TestClass
thiz
)
{
onAdd1Backup
(
thiz
);
SandHook
.
callOriginByBackup
(
add1backup
,
thiz
);
}
@HookMethod
(
"add2"
)
public
static
void
onAdd2
(
TestClass
thiz
)
{
Log
.
e
(
"TestClassHook"
,
"add2 been hooked"
);
onAdd2Backup
(
thiz
);
public
static
void
onAdd2
(
TestClass
thiz
)
throws
Throwable
{
SandHook
.
callOriginByBackup
(
add2backup
,
thiz
);
}
@HookMethodBackup
(
"add2"
)
public
static
void
onAdd2Backup
(
TestClass
thiz
)
{
onAdd2Backup
(
thiz
);
}
}
app/src/main/java/com/swift/sandhook/testHookers/JniHooker.java
View file @
59726be9
...
...
@@ -3,31 +3,29 @@ package com.swift.sandhook.testHookers;
import
android.os.Build
;
import
android.util.Log
;
import
com.swift.sandhook.annotation.HookMode
;
import
com.swift.sandhook.annotation.ThisObject
;
import
com.swift.sandhook.test.TestClass
;
import
com.swift.sandhook.SandHook
;
import
com.swift.sandhook.annotation.HookClass
;
import
com.swift.sandhook.annotation.HookMethod
;
import
com.swift.sandhook.annotation.HookMethodBackup
;
import
com.swift.sandhook.annotation.SkipParamCheck
;
import
com.swift.sandhook.annotation.ThisObject
;
import
com.swift.sandhook.test.TestClass
;
import
java.lang.reflect.Method
;
@HookClass
(
TestClass
.
class
)
public
class
JniHooker
{
@HookMethodBackup
(
"jni_test"
)
@SkipParamCheck
static
Method
backup
;
@HookMethod
(
"jni_test"
)
@HookMode
(
HookMode
.
INLINE
)
public
static
int
onJni
(
@ThisObject
TestClass
thiz
)
{
public
static
void
onJni
(
@ThisObject
TestClass
thiz
)
throws
Throwable
{
Log
.
e
(
"JniHooker"
,
"hooked success "
);
if
(
Build
.
VERSION
.
SDK_INT
>
Build
.
VERSION_CODES
.
KITKAT
)
{
return
onJniBackup
(
thiz
);
}
else
{
//can not call jni origin in 4.4 tmp
return
0
;
SandHook
.
callOriginByBackup
(
backup
,
thiz
);
}
}
@HookMethodBackup
(
"jni_test"
)
public
static
int
onJniBackup
(
@ThisObject
TestClass
thiz
)
{
return
onJniBackup
(
thiz
);
}
}
app/src/main/java/com/swift/sandhook/testHookers/LogHooker.java
View file @
59726be9
...
...
@@ -2,25 +2,26 @@ package com.swift.sandhook.testHookers;
import
android.util.Log
;
import
com.swift.sandhook.SandHook
;
import
com.swift.sandhook.annotation.HookClass
;
import
com.swift.sandhook.annotation.HookMethod
;
import
com.swift.sandhook.annotation.HookMethodBackup
;
import
com.swift.sandhook.annotation.HookMode
;
import
com.swift.sandhook.annotation.Param
;
import
com.swift.sandhook.annotation.SkipParamCheck
;
import
java.lang.reflect.Method
;
@HookClass
(
Log
.
class
)
public
class
LogHooker
{
@HookMethodBackup
(
"w"
)
@SkipParamCheck
static
Method
backup
;
@HookMethod
(
"w"
)
@HookMode
(
HookMode
.
INLINE
)
public
static
int
onCreate
(
String
tag
,
@Param
(
"java.lang.String"
)
Object
msg
)
{
public
static
int
onCreate
(
String
tag
,
@Param
(
"java.lang.String"
)
Object
msg
)
throws
Throwable
{
Log
.
e
(
"LogHooker"
,
"hooked success "
+
tag
);
return
onCreateBackup
(
tag
,
msg
);
}
@HookMethodBackup
(
"w"
)
public
static
int
onCreateBackup
(
String
tag
,
@Param
(
"java.lang.String"
)
Object
msg
)
{
return
onCreateBackup
(
tag
,
msg
);
return
(
int
)
SandHook
.
callOriginByBackup
(
backup
,
null
,
tag
,
msg
);
}
}
app/src/main/java/com/swift/sandhook/testHookers/NewAnnotationApiHooker.java
View file @
59726be9
...
...
@@ -3,20 +3,28 @@ package com.swift.sandhook.testHookers;
import
android.app.Activity
;
import
android.util.Log
;
import
com.swift.sandhook.SandHook
;
import
com.swift.sandhook.annotation.HookClass
;
import
com.swift.sandhook.annotation.HookMethod
;
import
com.swift.sandhook.annotation.HookMethodBackup
;
import
com.swift.sandhook.annotation.Param
;
import
com.swift.sandhook.annotation.SkipParamCheck
;
import
com.swift.sandhook.annotation.ThisObject
;
import
com.swift.sandhook.test.TestClass
;
import
java.lang.reflect.Method
;
@HookClass
(
TestClass
.
class
)
public
class
NewAnnotationApiHooker
{
@HookMethodBackup
(
"testNewHookApi"
)
@SkipParamCheck
static
Method
backup
;
@HookMethod
(
"testNewHookApi"
)
public
static
void
onTestNewHookApi
(
@ThisObject
TestClass
thiz
,
@Param
(
"com.swift.sandhook.MainActivity"
)
Activity
activity
,
int
a
)
{
public
static
void
onTestNewHookApi
(
@ThisObject
TestClass
thiz
,
@Param
(
"com.swift.sandhook.MainActivity"
)
Activity
activity
,
int
a
)
throws
Throwable
{
Log
.
e
(
"TestClassHook"
,
"testNewHookApi been hooked"
);
onTestNewHookApiBackup
(
thiz
,
activity
,
a
);
SandHook
.
callOriginByBackup
(
backup
,
thiz
,
activity
,
a
);
}
@HookMethodBackup
(
"testNewHookApi"
)
...
...
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