android native 反编译,Android逆向从入门到入土(smali修改,so修改)

闲来无事,学习了下安卓的逆向工程,有助于观摩学习他人的优秀代码,查询了解后发现大体包括两部分:

1.dex反编译,即smali语法学习;

2.Native层,arm汇编学习。

反编译dex,Smali语法

工具

java环境不多说

1.apktool.jar;

2.jd-gui.jar;

3.dex2jar.zip;

这里就不提供了,毕竟自己动手,丰衣足食,建议百度下载最新的版本,旧版本可能会有bug。

查看java源码

假设现在有一个test.apk,如果我们想要查看一个apk里的java源码,就可以通过解压apk文件得到dex文件,然后使用dex2jar.zip工具包中的d2j-dex2jar.bat将dex转为jar文件:

bV1jIO?w=1139&h=641

将classes.dex拖动到d2j-dex2jar.bat上,得到classes-dex2jar.jar,使用jd-gui.jar打开就可以查看源码了:

bV1jJh?w=824&h=522

反编译

但是jar文件只能辅助我们查看java代码,无法修改。想要修改的话,还是要反编译出smali文件,然后对smali文件进行修改操作,使用下边的命令反编译apk:

apktool.jar d test.apk

然后会在当前目录生成test目录,目录内容大体如下:

bV1aZh?w=734&h=372

assets资源目录,包含了图片和字体等资源;

build和dist为重新编译生成的,新apk在dist目录;

lib为so文件目录;

original保存了原签名和反编译前的清单文件;

res主要为layout,strings等xml文件;

unknown不用管;

下边是AndroidManifest.xml,清单文件,已经可以打开查看了;

然后最重要的来了smali和smali_classes2,apk中的每个dex文件会反编译出一个smali文件夹,classes.dex对应smali,classes2.dex对应smali_classes2,以此类推。

修改smali

知道了这些后,就可以查看修改我们想要的内容了。AndroidManifest.xml不多说ÿ

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值