360加固保dump出来的dex怎么修复

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了360加固保dump出来的dex怎么修复相关的知识,希望对你有一定的参考价值。

参考技术A 通常二次打包的步骤是:解包(反编译)-->插入/篡改代码-->生成新包-->重签名-->运行。
  首先可以通过使用ApkTool、Jeb、baksmali/smali等反编译工具,反编译apk安装包,图1为调用baksmali文件的截图。

  解包后可以看到所有文件列表,找到需要修改的smali文件,这里修改的是MainActivity.smali,如图2。

  解开MainActivity.smali文件后,在里面插入一段篡改代码,修改登录界面中“Button”按钮上的文本,图3和图4是修改前后smali文件中的代码。

  修改后再调用smali.jar文件,将smali重新打包成dex文件,如图5所示。

  接下来再将新生成的classes.dex文件替换原安装包中的classes.dex,并进行重新签名,就生成了一款盗版应用。运行该款盗版应用时会发现登录界面的登录按钮被修改替换成了“Fake Btn”,如图6、图7所示。

  通过简单的几个操作步骤,一款未经加固保护的APP就被盗版了,一个团队一年的劳动成果几分钟内就被轻易窃取。通常,盗版应用会通过插入/替换广告SDK赚取广告收入、修改支付渠道截取开发者收入、插入病毒/木马程序盗取用户信息等形式出现,操作步骤与上面介绍的类似,严重侵害了开发者和用户的利益。
  要想保护手机APP,避免被盗版,就要从源头进行加固保护,让破解者无从下手。图8是使用360加固保对APP进行加固前后的对比,加固后再调用baksmali.jar进行反编译,可以看到代码文件全部被隐藏,暴露的只是加固程序的一些代码,破解者自然无法再对源程序进行篡改了。

  360加固保基于360核心加密技术,对安卓应用进行加固保护,能有效避免应用被恶意破解、反编译、二次打包、内存抓取等。同时给应用提供数据加密、签名校验、防内存修改、完整性校验、盗版监测等保护功能,给予安卓应用最强保护,从源头消灭恶意盗版应用。作为移动互联网安全服务行业的领跑者,360加固保将持续关注手机应用安全的发展,不断完善加固保服务,切实保护开发者收入和权益。本回答被提问者采纳

非代码抽取的dex加固脱壳

常见的非代码抽取的dex加固,可以通过修改或者hook源码中的dex解析函数拿到目标dex完成脱壳。该dex解析函数为DexFile* dexFileParse(const u1* data, size_t length, int flags),位于src4.4.4_r1/dalvik/libdex/DexFile.cpp文件。

1.修改源码,编译系统,实现脱壳,使用该方法的代表工具--“DexExtractor”。对其的介绍和使用教程见一大牛博客:

http://www.wjdiankong.cn/apk%E8%84%B1%E5%A3%B3%E5%9C%A3%E6%88%98%E4%B9%8B-%E5%A6%82%E4%BD%95%E8%84%B1%E6%8E%89%E6%A2%86%E6%A2%86%E5%8A%A0%E5%9B%BA%E7%9A%84%E4%BF%9D%E6%8A%A4%E5%A3%B3/

2.利用Cydia Substrate 框架hook dexFileParse函数,完成脱壳。以下为详细的步骤:

http://wps2015.org/drops/drops/Android.Hook%E6%A1%86%E6%9E%B6Cydia%E7%AF%87(%E8%84%B1%E5%A3%B3%E6%9C%BA%E5%88%B6%E4%BD%9C).html

以上是关于360加固保dump出来的dex怎么修复的主要内容,如果未能解决你的问题,请参考以下文章

Android Apk脱壳(360加固)

脱掉360奇虎的“加固保”壳后的发现与你的微信安全

经过360加固的apk怎么破解

怎么加固安卓软件????

Jenkins之自动进行360加固

安卓逆向之基于Xposed-ZjDroid脱壳