安全开发之某度加固完美脱修

移动安全 1年前 (2023) admin
440 0 0

0.环境

1.火天网测靶场测试环境(Ubuntu+Android)

2.Android Studio

3.某度加固

4.frida-dexdump / BlackDex(github)

5.MT管理器 / Android Killer

1.什么是APP加固


APP加固是对APP代码逻辑的一种保护。原理是将应用文件进行某种形式的转换,包括不限于隐藏,混淆,加密等操作,进一步保护软件的利益不受损坏。

安全开发之某度加固完美脱修


2.各代加固的区别

安全开发之某度加固完美脱修


3.Android Studio编译一个APP

安全开发之某度加固完美脱修

安全开发之某度加固完美脱修

安全开发之某度加固完美脱修

安全开发之某度加固完美脱修

安全开发之某度加固完美脱修

安全开发之某度加固完美脱修

4.查看原始APP结构

我们用jadx-gui打开编译好的app。jadx-gui app-release-unsigned.apk

安全开发之某度加固完美脱修

从这里可以看到我们app的入口点,我们去这个类看先是否可以看到代码逻辑。

安全开发之某度加固完美脱修



上图可以看到,如果没有经过加固的app我们很容易看到这个app源码,从而进行分析破解之类的操作,上次的X音漫客是某度的加固我们只是对其进行了脱壳并未对齐进行修复.这就导致了存在一个问题,我们必须通过hook对数据进行修改.不能直接反编译修改数据,重新打包成app,安装使用。这样就体现出来脱修的重要性了。

安全开发之某度加固完美脱修


5.对APP进行加固操作

1.将app推送到手机,使用MT签名程序。

安全开发之某度加固完美脱修


安全开发之某度加固完美脱修

adb push app-release-unsigned.apk /data/local/tmp

安全开发之某度加固完美脱修

可以看到目前APP是未签名状态/未加固状态.我们点击功能,对APK进行签名。

安全开发之某度加固完美脱修

安全开发之某度加固完美脱修

安全开发之某度加固完美脱修

这里生成了一个新的APP,我们把这个给推送到电脑进行加固。


2.将签名的APP拉取到桌面进行加固

安全开发之某度加固完美脱修


安全开发之某度加固完美脱修

adb pull /data/local/tmp/app-release-unsigned_sign.apk去官网将这个签名的APP进行加固下载即可。


6.对加固APP进行分析

安全开发之某度加固完美脱修

可以看出我们已经找不到这个类了,那我们去看下AppName。

安全开发之某度加固完美脱修

安全开发之某度加固完美脱修

AppInfo这里可以看到原始程序的一些信息。


7.将加固APP进行签名/脱壳/修复

同样的方法将APP推送到手机上用MT看下当前信息。

安全开发之某度加固完美脱修

可以看到当前状态是没有签名但是加固状态显示伪百度加固。那么我们先给他进行签名安装跑起来看看程序是否可以正常使用。

安全开发之某度加固完美脱修

可以看到程序是可以正常运行的,那么我们使用BlackDex对他进行脱壳。

安全开发之某度加固完美脱修

点击需要脱壳的包名会自动进行脱壳。

安全开发之某度加固完美脱修

去这个目录下把脱下的dex进行查看。

安全开发之某度加固完美脱修

先把大小相同的给删除下。然后打开APP目录看下Dex相同的删除。

安全开发之某度加固完美脱修

安全开发之某度加固完美脱修

直接删除即可。接着我们使用dex编辑器看下每个dex文件,不需要的删除。

安全开发之某度加固完美脱修

可以看出这里是blackDex脱壳的dex我们直接删除,对我们没用。

安全开发之某度加固完美脱修

最后发现就这几个dex是我们需要的,其他基本都有加固字样和脱壳的字样,我们需要先合并dex。

安全开发之某度加固完美脱修

这里我们需要对合并后dex进行修复,几种方法。MT或者手动二进制进行前面的字节即可。这里我为了方便用MT进行修复。修复之后改名为classes.dex替换掉APP里面原有的即可。继续修改AndroidManifest.xml文件。

安全开发之某度加固完美脱修

在上面的反编译的AppInfo类中我们可以看到我们原始的appname为空,那么我们需要把这里面的AppName给删除掉。

安全开发之某度加固完美脱修

退出保存即可。继续清理无用资源,这些资源为加固后产生的so文件之类的。

安全开发之某度加固完美脱修

安全开发之某度加固完美脱修

可以很直接的看出这些资源是做什么用的我们直接删除即可。全部修改完毕之后,我们返回到APP哪里看下现在APP的属性,会发现签名校验不通过,这里我们需要对它进行重新签名,因为我们修改删除了里面的数据,导致签名数据不对。

安全开发之某度加固完美脱修

然后执行安装,发现程序已经可以正常运行了。我们在pull到桌面,jadx反编译看下。

安全开发之某度加固完美脱修

可以看到程序已经可以正常的反编译出源码了。至此某度加固脱修算是完成,相对于其他加固,这个算是比较简单的例子。



丈八网安蛇矛实验室成立于2020年,致力于安全研究、攻防解决方案、靶场对标场景仿真复现及技战法设计与输出等相关方向。团队核心成员均由从事安全行业10余年经验的安全专家组成,团队目前成员涉及红蓝对抗、渗透测试、逆向破解、病毒分析、工控安全以及免杀等相关领域。


原文始发于微信公众号(蛇矛实验室):安全开发之某度加固完美脱修

版权声明:admin 发表于 2023年4月3日 下午4:58。
转载请注明:安全开发之某度加固完美脱修 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...