VMP&Dex2C(待更新)

本文最后更新于:4 个月前

前言

研究反混淆有没有意义?

一般而言应该是没有意义的……

  1. 这么多年过去了,连有实用意义的标准ollvm的反混淆都没有搞出来

  2. 就算ollvm的有了,改pass的那么多厂商的非标准混淆,又得从头去研究,没有通用方案

  3. 还有很多从原理上就无法反混淆的技术,比如(dex)vmp、Dex2C等

  4. 手动/人工还原始终是无法被取代的,技术人员还是得掌握完整的混淆分析技巧

  5. frida/unidbg/aosp源码调用等技术出现之后,找到各种合适的点,去hook分析和主动调用,意义更大一些。

文章收集

1、一种通过后端编译优化脱混淆壳的方法

【简介】一种基于编译原理来实现和打造脱混淆壳的方案,内容与编译原理很接近,可以作为解决VMP这类型壳的思路,不过这个思路也是需要去进行优化的。

https://bbs.pediy.com/thread-260626.htm

2、一种通过后端编译优化脱虚拟机壳的方法

【简介】不同于上一篇的文章,内容是有实战环节,这个对抗虚拟机(VMP)的一种解决思路

https://bbs.pediy.com/thread-266014.htm

3、360加固保免费版分析

【简介】该加固中使用到大致如下的内容:

(1)、SO加载动态解密

(2)、自定义linker加载

(3)、dex加密隐藏技术

(4)、VMP化方法

(5)、抹去了dex、so文件头

https://bbs.pediy.com/thread-258511.htm

4、百度加固免费版分析及VMP修复

【简介】这个加固中同样涉及到OLLVM混淆和VMP技术

文中提到了修复vmp的过程,在回答中也提出了一个技巧就是在不还原ollvm的情况下去分析调试,还有就是过Debug.isDebuggerConnected检测

https://bbs.pediy.com/thread-257926.htm

5、利用编译器优化干掉控制流平坦化flatten

【简介】这个文章是借鉴上面的两篇文章进行的研究,对抗控制流平坦化,内容不过多解读,可以证明这个思路是一个不错的思路。

https://bbs.pediy.com/thread-266323.htm

6、通过一款早期代码抽取壳入门学习 so 层分析

【简介】这篇文章详细的记录了抽取式的加固的分析方案,其中涉及到很多基础的分析知识,是我们学习和分析的一个不错的好案例

https://bbs.pediy.com/thread-260251.htm

7、分析邦邦加固

【简介】upx加固so,脱壳并修复,过fart检测,最后手动调试

https://bbs.pediy.com/thread-266247.htm

8、分析乐固加固

【简介】其中涉及到olllvm混淆

https://bbs.pediy.com/thread-266972.htm

9、分析360加固

【简介】加固手段所有的壳大同小异,不过未来覆盖全面还是觉得这个文章是有必要探究一下的。

https://bbs.pediy.com/thread-260049.htm

10、某企业级加固[四代壳]VMP解释执行+指令还原

【简介】分析的样本应该是梆梆加固的企业版,但是作者并未把完整的样本放出来

简单的介绍了如何上手分析VMP

反调试手段(还是逃不过那17种)

OLLVM混淆

然后就是指令还原

https://bbs.pediy.com/thread-257061.htm

11、爱加密-反调试-DumpDex-修复指令-重打包

【简介】比较奇特的一点就是对信号反调试有讲解

本篇文章更多的是反调试,修复指令,定制rom的方式修复,这个应该和FART生成bin文件是类似的。

https://bbs.pediy.com/thread-249684-1.htm

12、某加固详细分析总结,另附该加固脱壳机

【简介】算是加壳的原理解析吧,同时还有脱壳机存在,还是可以研究的,虽然没有vmp的知识,但是都是加固方面的

https://bbs.pediy.com/thread-252828.htm

13、阿里壳分析和修复

抽取式加固方案的分析

https://bbs.pediy.com/thread-226480.htm

14、某VMP壳原理分析笔记

【简介】

  • 反调试

    • 时间反调试
    • rtld_db_dlactivity反调试
    • traceid反调试
    • 端口反调试
  • linker部分:用来加载第二个so

    • 装载
    • 创建soinfo
    • 链接
    • dump second so
  • 虚拟机部分:解释执行保护的代码

    • dump dex
    • onCreate分析
    • 虚拟机入口

https://bbs.pediy.com/thread-225798.htm

Dalvik源码分析到vmp

https://bbs.pediy.com/thread-226214.htm

15、乐固libshella 2.10.1分析笔记

【简介】

修复So文件

第一次解密

第二次解密

解密Dex

Dalvik下加载Dex原理分析

Art下加载Dex原理分析

Dalvik下脱壳机编写

Art下脱壳机编写

https://bbs.pediy.com/thread-218782.htm

16、360加固之onCreate函数还原并重打包

【简介】native onCreate

https://bbs.pediy.com/thread-223223.htm

17、利用活跃变量分析来去掉vmp大部分垃圾指令

【简介】思路很清晰,想法也非常不错,不过看好像是在pc端实现的,并未应用在android端

https://bbs.pediy.com/thread-265950.htm

18、某Android 的 Dex vmp加固逆向分析

【简介】顶象的壳加固

https://bbs.pediy.com/thread-221270.htm

19、去混淆、dex2c、OLLVM混淆

https://bbs.pediy.com/user-240967.htm

这个看雪的博客内容太符合这个专题了,mark一下