Android安全专项测试之反编译

apktool

反编译APK

使用apktool d <apk文件名>,默认会生成和APK文件名同名的文件夹,里面会存放反编译后的文件:

localhost:apk wuxian$ apktool d com.wangyin.payment-3.11.1.apk
I: Using Apktool 2.0.1 on com.wangyin.payment-3.11.1.apk
I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
I: Loading resource table from file: /Users/wuxian/Library/apktool/framework/1.apk
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values */* XMLs...
I: Baksmaling classes.dex...
I: Copying assets and libs...
I: Copying unknown files...
I: Copying original files...

这里写图片描述

反编译后的文件目录

这里写图片描述

  • assets:文件资源
  • lib:依赖库文件
  • original:原生文件
  • res:资源文件
  • smali:dalvik文件
  • unknown:其他

主要关注res文件夹和smail文件夹

res目录中的字符串文件篡改

这里写图片描述

Android中的字符串都保存在res/values/strings.xml中,如果可以修改这个文件,且能重新打包,那么我们的应用就被篡改了。我将应用名更改为TesterHome,且将马上登录 改成了 马上登录TesterHome;

重新编译

命令:apktool b <反编译后的目录>

localhost:apk wuxian$ apktool b com.wangyin.payment-3.11.1
I: Using Apktool 2.0.1
I: Checking whether sources has changed...
I: Smaling smali folder into classes.dex...
I: Checking whether resources has changed...
I: Building resources...
I: Copying libs... (/lib)
I: Building apk file...
I: Copying unknown files/dir...

会在反编译目录下的dist目录下生成一个APK:

这里写图片描述

安装

这个时候安装会报错:

localhost:dist wuxian$ adb install com.wangyin.payment-3.11.1.apk 
992 KB/s (27039435 bytes in 26.616s)
    pkg: /data/local/tmp/com.wangyin.payment-3.11.1.apk
Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]

因为没有证书,我们需要给应用签名。

重签名

重签名需要如下几个文件:signapk.jar,testkey.x509.pem,testkey.pk8三个文件,有了这个文件后执行如下命令给应用签名(auto_sign)。

重签命令:java -jar signapk.jar testkey.x509.pem testkey.pk8 com.wangyin.payment-3.11.1.apk testerhome.apk

签名成功后,会生成一个新的apk:testerhome.apk。这个时候安装就成功了。

效果

这里写图片描述

这里写图片描述

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值