de-ollvm

该文整理了多种对抗OLLVM混淆的技术,包括基于符号执行的angr和miasm方法,利用反编译器IDA的微代码和BinaryNinja,以及基于模拟执行的Unicorn等工具。此外,还提到了通过编译后端优化的高级反混淆方法。
摘要由CSDN通过智能技术生成

[原创]你所需要的对抗ollvm的知识都在这里-Android安全-看雪-安全社区|安全招聘|kanxue.com

你所需要的对抗ollvm的知识都在这里 

 2022-4-22 10:27  25851


整理了一些ollvm对抗的文章,大家可以参考。
ollvm还原主要有静态分析的方法和动态分析的方法。无论哪种方法基本流程都是:找到所有基本块(特征匹配)-确定真实块之间的关联(静态的:符号执行/反编译器提供的IL的API;动态的:模拟执行/IDA trace)-patch原程序

基于符号执行

angr

利用符号执行去除控制流平坦化: https://security.tencent.com/index.php/blog/msg/112
利用angr符号执行去除虚假控制流: https://bbs.pediy.com/thread-266005.htm
TetCTF2022一道代码混淆题分析——crackme_pls: https://bbs.pediy.com/thread-271164.htm
Angr Control Flow Deobfuscation: https://research.openanalysis.net/angr/symbolic%20execution/deobfuscation/research/2022/03/26/angr_notes.html

miasm

Deobfuscation: recovering an OLLVM-protected program:
https://blog.quarkslab.com/deobfuscation-recovering-an-ollvm-protected-program.html
我印象中quarkslab这篇文章是最早的关于去ollvm混淆的文章,有点老了,不过还是值得学习。
MODeflattener - Miasm's OLLVM Deflattener: https://mrt4ntr4.github.io/MODeflattener/

基于反编译器提供的IL的API

IDA的microcode

https://github.com/RolfRolles/HexRaysDeob
https://github.com/idapython/pyhexraysdeob
相关文章:
https://hex-rays.com/blog/hex-rays-microcode-api-vs-obfuscating-compiler/
https://www.virusbulletin.com/uploads/pdf/conference_slides/2019/VB2019-Haruyama.pdf
基于Microcode的IDA反编译代码优化插件(目前暂未开源): https://github.com/obpo-project/obpo-plugin

binary ninja

Dissecting LLVM Obfuscator Part 1: https://rpis.ec/blog/dissection-llvm-obfuscator-p1/
使用Binary Ninja去除ollvm流程平坦混淆: https://bbs.pediy.com/thread-256299.htm

ghidra的p-code

使用Ghidra P-Code对OLLVM控制流平坦化进行反混淆: http://galaxylab.com.cn/%e4%bd%bf%e7%94%a8ghidra-p-code%e5%af%b9ollvm%e6%8e%a7%e5%88%b6%e6%b5%81%e5%b9%b3%e5%9d%a6%e5%8c%96%e8%bf%9b%e8%a1%8c%e5%8f%8d%e6%b7%b7%e6%b7%86/

基于模拟执行

基于Unicorn 的ARM64 OLLVM反混淆: https://bbs.pediy.com/thread-252321-1.htm
ARM64 OLLVM反混淆(续: https://bbs.pediy.com/thread-253533.htm
细说arm反类ollvm混淆-基本思想: https://bbs.pediy.com/thread-257878.htm
这篇文章介绍了模拟执行和IDA trace两种方法。

其他方法

这位是通过编译后端优化干掉混淆,这已经超过我的理解能力了...
一种通过后端编译优化脱混淆壳的方法: https://bbs.pediy.com/thread-260626-1.htm
一种通过后端编译优化脱虚拟机壳的方法: https://bbs.pediy.com/thread-266014.htm

物联网安全入门

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值