x86so文件装换成arm64位_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文件:

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

反编译

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

apktool.jar d test.apk

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

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

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

lib为so文件目录;

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

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

unknown不用管;

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

然后最重要的来了smali和smali_classes2,apk中的每个dex文件会反编译出一个smali文

你可能感兴趣的:(x86so文件装换成arm64位_Android逆向从入门到入土(smali修改,so修改))