欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

[原创]某某盾加固包逆向脱壳及原理分析

[原创]某某盾加固包逆向脱壳及原理分析

最近对移动应用安全加固产生了浓厚的信息,从而关注市面上已有的一些加固技术,既然想知道其中的相关原理,当然免不了对应的进行破解分析,于是就有了此主题内容,好了,废话不多说,直接上内容。

一、样本

     1. 蓝海银行(com.LanHaiBank.mobile_v2.0.1_21.apk),直接从应用宝下载最新版本即可。

二、外壳特征

     2.1外壳入口代码


     2.2 壳实现库


三、脱壳

     3.1 通过壳的入口代码可以看出,必定有一个2代壳,所以不管三七二十一先让程序跑起来然后通过cookie数组dump所有已经加载的dex.



     3.2 检查发现没有加了其他更高级的壳,就只是加了一个简单的2代壳

四、原理分析

   4.1 主要的实现代码在libegis.so库中,libegis.so加了压缩壳,可以脱壳或者带壳动态调试挂起来看都行。

   4.2 反调试:

      a、检查模拟器


      b、检查调试器是否连接


      c、检查TracerPid


     d、文件签名校验


   4.3 dex动态加载,主要思路是先加载一个假的dex然后,内存加载真实的dex,替换掉假的dex的cookie实现加载。

      a、attachbasecontext native函数实现:


      b、oncreatenative函数实现


五、总结

     总得来说强度比较弱,就一个简单的2代壳,实现方式也是大同小异,没什么很特别的东西,还没使用其他厂商所宣传的函数分离,vmp的相关技术,对应的防调试手段也比较通用,整体来说,还是需要加强一下的。

上传的附件 attachbasecontext_native函数.png
oncreatenative函数.png

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功