当前位置:   article > 正文

APP安全——反编译分析(反编译、再编译、签名)_app反编译

app反编译

点赞后看,养成习惯
喜欢的话 可以点个关注哟
你们的点赞支持对博主们来说很重要哦 !!!

在这里插入图片描述

00 前言

结合最近测试经历,发现, 某地区的4款APP中,有三款apk均无加壳、混淆机制。

使用dex2jar、apktool、apkide等工具便可对其进行反编译与编译操作,而仅有一款APP疑似做了反逆向工程,反编译后不可重新进行编译。

那么到底,什么是反编译分析呢?

简单来说,反编译分析就是一种从源代码层面上分析APP安全性的手段。我们通过审计源码,来发现应用程序可能存在的漏洞。

我们知道,APP的反编译有两种反编译方式,dex2jarapktool

dex2jar反编译出java源代码, 易读性比较高。

apktool反编译出的是java汇编代码,可以反编译出来smali反汇编代码、res资源文件、assets配置文件、lib库文件、我们可以直接搜索smali文件和资源文件来查找链接等。

在本篇文章里,就和大家分享有关于上述工具的一些使用。


01 软件说明

apktool ,其作用是拿到apk 中的dex文件

dex2jar,把dex转化为jar文件,这是最关键的一步

gui ,这是一个图形化工具,查看jar里面的代码

autosign,签名工具,对再编译的apk进行二次签名认证

四件套全家桶,我已经打包如下:

Call个6666获取资源


02 反编译分析步骤

1、apktool反汇编

下载压缩包,解压缩后,能看到以下三款软件。 这里,我把一个app安装包移到了该目录底下。

在这里插入图片描述


在该目录底下进入CMD,输入

java -jar apktool_2.3.4.jar d -f com.tydic.tibet.workhelper.apk -o vpn
  • 1

就会使用apktool工具对该apk进行反汇编,并输出文件到vpn目录底下

在这里插入图片描述


查看vpn目录下反编译的情况。在生成的文件和文件夹当中,我们关心的是【res】文件夹中和AndroidManifest.xml文件,打开res文件夹,里面就有我们想要看到的东西了,如下图所示:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
想查看哪个xml文件就使用文本编辑器打开看看吧,反正全部都可以看到了。 以上就是使用apktool这个工具将一个apk反编译得到图片、XML配置、语言资源等文件的过程。

2、dex2jar反编译

接下来使用dex2jar反编译apk得到Java源代码

将apk文件后缀名改成zip,然后解压。

在这里插入图片描述
将其中的classes.dex文件复制

在这里插入图片描述


放到dex2jar-2.0 目录下

在这里插入图片描述


然后在该界面进入DOS命令行,输入"d2j-dex2jar classes.dex",得到如下文件

在这里插入图片描述

3、jd-gui查看java源码

复制一份classes-dex2jar.jar到上级目录,然后将该文件拖拽至jd-gui.exe工具,即可查看java源代码

在这里插入图片描述
发现java源码并未经过混淆,接下来便可以进行源代码分析工作(这需要我们掌握一些app正向开发的知识点)

在这里插入图片描述


对于一些被混淆过的class,反编译的效果就不是那么理想了,被混淆过的class反编译后的效果图(类文件名称以及里面的方法名称都会以a,b,c…之类的样式命名

在这里插入图片描述

4、修改源码并重新打包

在这里,为方便演示, 我简单地分析了下string.xm;尝试修改应用名

在这里插入图片描述


修改后将其重新打包

java -jar apktool_2.3.4.jar b vpn 
  • 1

在这里插入图片描述


默认apk生成路径是在文件夹内的dist下

在这里插入图片描述

5、autosign二次签名

将其重命名为test.apk,拷贝到autosign目录下,执行命令

java -jar signapk.jar testkey.x509.pem testkey.pk8 test.apk test_signed.apk 
  • 1

在这里插入图片描述


test_signed.apk就是签名后的apk

在这里插入图片描述

6、测试是否生效

将生成的test_signed.apk拖拽入雷电模拟器中,发现APP应用名确实被修改了

在这里插入图片描述


03 简单小结

以上便是一次简单的反编译分析,由于该apk没有进行加壳、混淆等反逆向工程,所以一路下来较为顺畅。

不过大家可别大意,以为反逆向的过程总是那么一路顺风,要知道现在的加固APK方式也是层出不穷。

加固之后: 篡改后无法正常运行、无法正常动态调试、反动态注入无法注入、反编译无法获取到原dex代码或完整的dex代码、So文件的整体加密,使用自定义链接器的技术,对SO文件进行整体的加密,完全阻止IDA等逆向工具的静态分析。

道阻且长,还得努力~~~





以上文章,作为自己的学习笔记,仅供参考

本文完,感谢你的阅读!!!

最后,如果本文对你有所帮助,希望可以点个赞支持一下。你们的鼓励将会是博主原创的动力。
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/440243
推荐阅读
相关标签
  

闽ICP备14008679号