android逆向分析之反编译

提到逆向工程,首先就要提到反编译,对于反编译,现在工具还是比较多的,市面上广泛应用的三神器(apktool、dex2jar、jdgui),本篇主要围绕着三神器展开,后面还会阐述smali和使用smali2java。我是通过这三神器入门的,最初的时候,通过反编译去看一些公司的架构和一些功能的实现,还是挺嗨的,但是伴随着软件安全意识的加强,还有各个公司对自己产品的保护,现在反编译的难度越来越大的,可读性也随之低了好多,从之前的混淆到现在的加壳,还有一些大公司更是通过C/C++实现代码更加安全。。。

不多说,就是干,今天就围绕某个保险公司的产品展开(这是之前别人让我做的一个私活,修改内部的一个功能)。apk本身就是一个压缩包,可以直接解压,解压完成后,一级目录会有一个classes.dex文件,此时把文件拷贝到dex2jar文件夹下,找到dex2jar.bat文件(我是在Windows环境下),通过cmd打开操作窗口,把dex2jar.bat拖到操作窗口,一个空格后在拖入classes.dex文件,一个回车就ok,如图所示:

android逆向分析之反编译_第1张图片

完成此操作后,便会生成一个jar文件。

android逆向分析之反编译_第2张图片

通过jdgui打开,如下

android逆向分析之反编译_第3张图片

虽然此保险公司在全国都很出名,大个子还代言过,这代码安全方面确实有点汗颜,没加壳也没做混淆,赤裸裸的暴露出来了。。。

此时,我们拿到的仅仅是源代码,对于资源文件,打开后都是乱码,说到这里,apktool闪亮登场了,通过操作窗口键入到apktool文件夹下,apktool d jst.apk这是反编译命令。通常情况下,我是把要反编译的文件放在apktool文件夹下,这样不用担心路径的问题,过程和结果如下:

这里写图片描述
PS:这是我的路径,需要填写自己apktool的路径。

android逆向分析之反编译_第4张图片

android逆向分析之反编译_第5张图片

现在的xml文件,可以通过记事本或者文本编辑工具直接打开,如果需要修改一些代码和功能,smali文件夹下面找到对应的文件进行修改,修改完后的文件,通过apk b jst直接打包,是对文件夹打包,注意的是jst没有后缀,此处未做签名校验,签名后便可以安装运行。

android逆向分析之反编译_第6张图片

android逆向分析之反编译_第7张图片

工具链接(apktool、dex2jar、jdgui、Smali2Java)

你可能感兴趣的:(Android路上)