360加固后的apk,在arm设备上首先会将assets目录下的libjiagu.so拷贝到files目录下,然后通过libjiagu.so动态加载原始dex

libjiagu.so的init_proc和init_array都无实质功能,真正的解密放在JNI_OnLoad里面

JNI_OnLoad函数里有非常多的垃圾跳转指令干扰分析,后面还会有动态解密的函数运行,如果检测到调试器,会把动态函数置成非法代码,使程序CRASH

51b0c404这个位置就会跑飞。这样分析比较累人。换个思路,对一些关键函数进行hook,进行hook log分析

Hook dlopen和dlsym LOG打印出libjiagu.so的加载基址和大小

可以看到JNI_OnLoad的地址还是在libjiasu.so内存范围内的

Hook RegisterNatives函数,打印如下LOG

这个LOG可以看到RegisterNatives有被调用,注册了一个interface7函数,函数地址是51e2f211,仔细看这个地址发现,这个地址已经是thumb指令集了,跟libjiagu.so使用的arm指令集不太相符,而且可以看到函数地址已经超出了libjiagu.so内存范围了.

libjiagu.so的基址是51b3b000,大小是46000,最大内存地址是51B81000

那么,基本可以确定,它在内存中加载了另一个so

从/proc/%pid%/maps里找到函数地址所在的内存块,把周围连续的内存一起dump出来

在这片内存里找到如下一块内存

这其实就是elf heaer了,不过一些elf结构信息已经被抹掉了。除了基本的结构信息还缺失

如下三个数据:

0x20                   e_shoff

0x30                   e_shnum

0x32                   e_shtrndx

接下来的工作就是对这个残缺的内存进行修复了,通过分析上面三个数据,dlopen其实都没有用到,其值对elf运行没有影响。

经过修复后的文件可以替换掉原来的libjiagu.so,重新签名后使apk正常运行,用于IDA动态调试分析。

下面是经过修复后的libjiagu.so用ida分析的流程图片段

360在dex加载的时候,并没有调用dvmDexFileOpenPartial,而是自实现了此函数的功能,因此直接在这个函数上下断点是不能脱壳的。它的实现方式基本是照抄了dalvik源码

如上面源码所示,使用dex所在内存的时候都会使用memcmp校验MAGIC是否为dex,所以只要hook memcmp,然后在过滤函数里校验是否为dex,然后dump出来即是原始的dex

(创建了一个Android逆向分析群,欢迎有兴趣的同学加入,群号码:376745720)

360加固之libjiagu.so脱壳及dex dump相关推荐

  1. 360加固保so动态脱壳

    环境及工具 手机    : 中兴 U887 系统版本:   Android 2.3.5 工具    :   IDA pro 6.6 .0101Editor 目前so加壳有很多家,我己知的有 爱加密,梆 ...

  2. 360加固之libjiagu.so dump修复

    一.elfheader修复 dump出来的内存如下图所示,elf header结构有缺失 下面是正常elf头的对比图 下面是010editor对正常elf header的解析 由上图可知,dump出来 ...

  3. 360加固保的dex脱壳方法

    博客地址:http://blog.csdn.net/qq1084283172/article/details/53149214 360整体加固classes.dex后的apk程序的特点,以超信1.1. ...

  4. Android逆向之路---脱壳360加固

    前言 众所周知,现在软件在防止逆向采取了混淆,加壳等措施.比如360加固,腾讯加固,梆梆加固等等. 这两天在逆向一款app的时候找到了一个不错的xposed插件推荐给大家, 下载地址:点我下载 < ...

  5. 360加固android app反编译,apk360加固脱壳

    360加固保动态脱壳,360加固保带给我们的惊喜,360加固脱壳工具,apk360加固脱壳 360 加固后的 apk,在 arm 设备上首先会将 assets 目录下的 libjiagu.so 拷贝到 ...

  6. 【安卓逆向】360加固-脱壳修复

    最近花了一些时间学习逆向脱壳,这方面一直投入的时间比较少.样本经过某加固宝进行加固,这里简单记录一下脱壳过程和思路,感谢某数字公司对安全加固的无私贡献,让我有机会小小的提高一下这方面的技能. *安卓逆 ...

  7. Android逆向之路---脱壳360加固 1

    前言 众所周知,现在软件在防止逆向采取了混淆,加壳等措施.比如360加固,腾讯加固,梆梆加固等等. 这两天在逆向一款app的时候找到了一个不错的xposed插件推荐给大家, 下载地址:点我下载 前提环 ...

  8. python 工程结构加固_【安卓逆向】360加固-脱壳修复

    360加固-脱壳修复 最近花了一些时间学习逆向脱壳,这方面一直投入的时间比较少.样本经过某加固宝进行加固,这里简单记录一下脱壳过程和思路,感谢某数字公司对安全加固的无私贡献,让我有机会小小的提高一下这 ...

  9. Apk脱壳之—脱掉“360加固”的壳

    一.前言 现在主流的加固平台有:梆梆加固,爱加密,360加固,腾讯加固,在之前的一篇文章中介绍了:如何脱掉"爱加密"的壳,现在这里要脱掉另外一个平台的壳:360加固,因为有了之前的 ...

最新文章

  1. only static const integral data members can be initialized within a class
  2. MySQL修改存储过程
  3. 算法训练 字符删除 c语言
  4. 所谓高情商就是会说话--总结
  5. 网络教育统考计算机怎么考试,网络教育统考怎么考
  6. Vue 高德地图使用总结
  7. Hands-on Lab (15) - 使用Prometheus Operator监控应用
  8. python pdf表格识别不出来_Python识别pdf表格
  9. 英特尔中国研究院成立20周年,我看到了这些好玩Demo
  10. HDFS超租约异常总结(org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException)
  11. Android获取Java类名/文件名/方法名/行号
  12. paip.SVN无法提交--提示冲突的解决
  13. js实现正方体旋转动画
  14. 局域网中的通信子网和资源子网
  15. 图片怎么做gif?如何让图片变GIF动图?
  16. 程序架构之redis扩容 (增加端口)
  17. 现代软件工程讲义 0 教学方法
  18. 电商网站数据库设计好文章分享
  19. Altium 在PCB重新编号更新到SCH原理图的方法
  20. 百度地图行政区划边界线获取,只要界线,遮罩层透明设置方法

热门文章

  1. MISRA-C 2004 规则解读(41S-60S)
  2. 为什么宇宙会将最大速度限制在光速
  3. 浅谈数据结构-关键路径
  4. go break跳出两层for循环
  5. Python实战项目:高血压检测项目调查问卷接口的测试
  6. SQL exists 删除重复记录
  7. AE动效设计:超越技术的动態思维|打造脱颖而出的代表作
  8. 【第006篇】Java工具类之半角和全角字符相互转换
  9. 使用echarts制作泡泡效果
  10. [附源码]计算机毕业设计springboot飞越青少儿兴趣培训机构管理系统