apk解压后目录结构:
Dex文件格式:
apk签名:视频Android安全之 – Dex文件解析(一)Android安全之 – Dex文件解析(二)(百度网盘)
apk反向工程签名相关文件在META-INF目录下三个文件
关于X.509证书,RSA加密解密原理,SHA1算法参见其他文档。apk使用自签名,证书使用自签名。所以只能进行一致性验证不能进行合法性验证。MANIFEST.MF中保存所有文件对应SHA1摘要信息。CERT.SF中保存了MANIFEST.MF文件的SHA1-RSA摘要 签名 及其他文件的摘要签名。(有说仅摘要未签名,未核实)CERT.RSA保存对CERT.SF的签名,签名使用的证书。
所以完全可以修改apk中文件,然后用自己的证书重新签名使用。
使用dex2jar根据dex生成jar,使用jd-gui查看jar包源码使用apktool根据apk解开apk生成smali文件及资源文件,可反向根据smali及资源文件生成apkapktool使用smali及baksmali处理dex与smali的转化
实例操作
创建Hello.java![]()
generate Hello.classjavac Hello.java
generate Hello.dexD:\android\sdk\build-tools\android-4.4W\dx --dex --output=Hello.dex Hello.class
disassemble hello classjavap -c -classpath . Hello
dump hello dexdexdump -d Hello.dex
convert dex to smalijava -jar D:\work\tools\decompile_apk\smali-2.0.3\baksmali-2.0.3.jar Hello.dex
convert smali to dexjava -jar D:\work\tools\decompile_apk\smali-2.0.3\smali-2.0.3.jar out -o hello2.dex
run Hello with dalvikvmadb push Hello.dex /sdcard/.adb shell dalvikvm -classpath /sdcard/Hello.dex Helloodex系统app,预先生成放入rom中/system/app用户安装app,首次运行时dexopt缓存/data/dalvik-cache