android逆向工程
概述:
1.android包需要改环境、模式、资源、名称及获取源码等问题,可以通过反编译/回编来解决。
2.加固后的apk无法获取反编译
需要工具/环境:
- apktool:得到apk资源文件,布局文件,AndroidManifest.xml等。
- dex2jar:从dex文件到jar文件。
- jd-gui: 打开并解析jar,得到class文件(可视化界面)
- jdk环境
链接:https://pan.baidu.com/s/1SYwh1KZSJgUwQofh8qXFSQ
提取码:1234
一、反编译:
反解apk命令: java -jar apktool.jar d test.apk
d 表示decode ,反编译,与之对应的是building,编译。demo.apk 是要反编译的目标apk, -o 表示输出地址 ,如果没有 -o 参数,默认在当前文件夹。
二、回编:
回编译就是通过apk反编译生成的目录文件转换成一个apk
回编命令 apktool b test(没有环境变量就是使用java -jar apktool.jar代替apktool命令)
回编命令:java -jar apktol.jar b test
回编成功后 在test(项目目录)会多出一个dist文件夹,文件夹中会有一个apk文件。就是我们打包好的文件了。
三、apk签名:
此时安装apk到手机无法安装成功,还需要对apk进行签名才能安装(如果验证了证书签名,那么重签成功后也无法使用,一般会闪退)
3.1生成key.keystore
命令:keytool -genkey -keystore my-release-key.keystore -alias my_alias -keyalg RSA -keysize 4096 -validity 10000
3.2、用证书给 apk 签名
命令 jarsigner -sigalg MD5withRSA -digestalg SHA1 -keystore my-release-key.keystore -signedjar super.mlxx.apk mlxx.apk my_alias
案例: jarsigner -sigalg MD5withRSA -digestalg SHA1 -keystore 证书文件 -signedjar 生成的apk 签名前的apk 证书别名
至此:就可以安装运行apk了
相关连接:
https://blog.csdn.net/qq_33285313/article/details/107314859 ..........................andorid 高版本无法抓包(7.0以上抓不了https)
https://blog.csdn.net/wgPython/article/details/105874755 ................................apk目录文件结构说明
https://zhidao.baidu.com/question/2126338.html ..............................................静态分析和动态分析的区别
https://www.jianshu.com/p/cada08c79eb9..........................................................apk反编译/回编译
https://blog.csdn.net/LYX_WIN/article/details/122201583 ................................apk漏洞扫描工具、移动安全平台、app安全工具汇总
https://www.jianshu.com/p/c1ee7fdcbdfc .................................apk反编译成debug模式,,https://testerhome.com/topics/31591......................................如何修改安装包为 debug 版本
https://www.cnblogs.com/kai-/p/13582497.html ........................APKTool 反编译,打包,签名(linux通用),,https://www.jianshu.com/p/ee98c3f4b0cb ........Linux系统如何反编译apk
https://www.cnblogs.com/xpwi/p/9892680.html .........................反编译那源码,,https://blog.csdn.net/vipzjyno1/article/details/21039349/..........................反编译获取源码(本人未用过)