APP逆向抓包

苦于没有吉他的学习教程,现在目标瞅准FingerAPP,因为安卓7.0之后的SSL pinning导致抓包始终为unknow

工具

  • apktool
  • keytool
  • jarsigner

解决方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# 第一步 反编译apk
apktool d -s -f com.tuotuo.solo_4.14.11_20210312.apk
-d 反编译 apk 文件
-s 不反编译 dex 文件,而是将其保留
-f 如果目标文件夹存在,则删除后重新反编译

# 第二步 修改AndroidManifest.xml 修改成自定义的network_security_config.xml
<application android:networkSecurityConfig="@xml/network_security_config"

# 第三步 在res/xml/ 路径下新建文件 network_security_config.xml

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config>
# 抓包的域名
<domain includeSubdomains="true">finger66.com</domain>
<trust-anchors>
# CA证书的路径 不用加后缀pem
<certificates src="@raw/charles"/>
</trust-anchors>
</domain-config>
</network-security-config>

# 第四步 将charles证书放置raw文件夹下,取名为charles.pem,证书从chls.pro/ssl下载

# 第五步 重新打包APP
apktool -b com.tuotuo.solo_4.14.11_20210312 -o newtest.apk
-b 是指 build
com.tuotuo.solo_4.14.11_20210312 是刚才反编译出的文件所在的目录
-o 用于指定新的文件名称,这里指定为「newtest.apk」

# 第六步 生成keystore
# keystore名称为android.keystore,别名为androidtest,采用加密方法为RSA,有效期为365天
# 在生成key的时候,两个密码要记住
keytool -genkey -v -keystore android.keystore -alias androidtest -keyalg RSA -validity 365

# 第七步 对APK进行签名
# 135799为签名设置的key的密码
# 注意 androidtest为key的别名
jarsigner -verbose -keystore android.keystore -storepass 135799 -keypass 135799 newtest.apk androidtest

注意

这里需要注意的是,因为签名肯定没有办法和原来的APP相同,所以一些微信、QQ登陆功能没办法实现

参考资料

限制可信 CA 集

反编译Android APK

Charles Android 抓包失败SSLHandshake: Received fatal alert: certificate_unknown

赏个🍗吧
0%