apk格式分析及逆向

apk解压后目录结构:
    

Dex文件格式:
视频
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中文件,然后用自己的证书重新签名使用。


apk反向工程
使用dex2jar根据dex生成jar,使用jd-gui查看jar包源码
使用apktool根据apk解开apk生成smali文件及资源文件,可反向根据smali及资源文件生成apk
apktool使用smali及baksmali处理dex与smali的转化
smali syntax is based on   jasmin/ dedexer syntax

实例操作
创建Hello.java
     Hello.java

generate Hello.class
    javac Hello.java

generate Hello.dex
    D:\android\sdk\build-tools\android-4.4W\dx --dex --output=Hello.dex Hello.class

disassemble hello class
    javap -c -classpath . Hello

dump hello dex
    dexdump -d Hello.dex

convert dex to smali
    java -jar D:\work\tools\decompile_apk\smali-2.0.3\baksmali-2.0.3.jar Hello.dex

convert smali to dex
    java -jar D:\work\tools\decompile_apk\smali-2.0.3\smali-2.0.3.jar out -o hello2.dex

run Hello with dalvikvm
adb push Hello.dex /sdcard/.
adb shell dalvikvm -classpath /sdcard/Hello.dex Hello
odex
    系统app,预先生成放入rom中
        /system/app
     用户安装app,首次运行时dexopt缓存
        /data/dalvik-cache
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值