README.md 1.1 KB
Newer Older
X
xxxyanchenxxx 已提交
1
# SigKill
X
xxxyanchenxxx 已提交
2
一键绕过App签名验证。实现原理是Hook了PackaegManager,返回我们指定的签名。
X
xxxyanchenxxx 已提交
3

X
xxxyanchenxxx 已提交
4
## Demo效果:
X
xxxyanchenxxx 已提交
5 6
![image](https://github.com/xxxyanchenxxx/SigKill/blob/master/Libs/1.png)

X
xxxyanchenxxx 已提交
7 8
可以看到,第一次打印出的是真正的signatuer,后面经过hook后,就变了.....

X
xxxyanchenxxx 已提交
9 10


X
xxxyanchenxxx 已提交
11 12


X
xxxyanchenxxx 已提交
13
## 如何使用,分成3步
X
xxxyanchenxxx 已提交
14 15 16
首先将Libs/smali_lib中的代码复制到目标App的smali目录中,这步就不计入第一步了吧。

然后,
X
xxxyanchenxxx 已提交
17 18

第一步:使用"Libs/签名获取.apk"获取到APK的真正签名信息,如下图
X
xxxyanchenxxx 已提交
19
![image](https://github.com/xxxyanchenxxx/SigKill/blob/master/Libs/2.png)
X
xxxyanchenxxx 已提交
20 21


X
xxxyanchenxxx 已提交
22
第二步:复制上一步的字符串并替换掉"Libs/smali/com/yc/pm/SignatureFake.smali"中的字符串:
X
xxxyanchenxxx 已提交
23
```java
X
xxxyanchenxxx 已提交
24 25 26 27 28 29 30 31 32 33
.method private static getSigStr()Ljava/lang/String;
    .locals 1

    .prologue
    .line 14
    const-string/jumbo v0, "48,-126,2,-21,48,-126,2,84,-96,3,2,1,2,2,4,77,54,-9,-92,48,13,.......

    return-object v0
.end method
```
X
xxxyanchenxxx 已提交
34 35


X
xxxyanchenxxx 已提交
36
第三步:在App的Application的attachBaseContext()函数中调用这行smali代码即可,smali:
X
xxxyanchenxxx 已提交
37
```java
X
xxxyanchenxxx 已提交
38
    invoke-static {}, Lcom/yc/pm/SignatureKill;->kill()V
X
xxxyanchenxxx 已提交
39
```