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

admin 2024年11月13日22:39:55评论24 views字数 1662阅读5分32秒阅读模式

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余年经验的安全专家组成,团队目前成员涉及红蓝对抗、渗透测试、逆向破解、病毒分析、工控安全以及免杀等相关领域。

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

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月13日22:39:55
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   安全开发之某度加固完美脱修https://cn-sec.com/archives/1678533.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息