0x指纹 24-01-25 15:11

大概是20年左右开始了解编译器分析优化技术在逆向工程中的应用。

起初是在看雪看到baikaishiu用来去控制流平坦化混淆,后面又看到krash自己整了一套分析trace的二进制分析框架,来对抗基于llvm的间接跳转混淆和控制流平坦化混淆,从trace中重建cfg再进行各种分析;再后面就是接触基于vtil的vmp反虚拟化项目novmp和vmp-attacker,看时候顺藤摸瓜找到了一些基于llvm ir进行的vmp反虚拟化的poc项目,除此外还有R1mao出的一道CTF题目,他和另一位解题者通过编译器分析优化技术的思路进行解答。

还断续花了很多时间和精力去了解各种静态分析工具的IR,有IDA、Ghidra、Retdec、Angr和BinaryNinja等,开始了解Binary Lifter的概念,结合着去理解静态分析工具的功能,还扒拉来了不少论文有模有样的翻看,后面还花了些时间研究下不同工具进行binary lift的拓展性和便利性,接着尝试了Binary Ninja对自定义字节码的lift效果。

现在我是以一个总结的视角去回顾,事实上这些进行的都十分零散断续,一来没有说一定要学习这些来完成什么任务产出;二来无论是各式各样的保护技术,还是从编译器分析技术方向进行的对抗,原理和实践都比较晦涩难懂。刚接触时侯很长一段时间都是一头雾水,花了很多时间才弄懂文章在讲什么了,接下来又是很长一段时间的无从下手,不知道从何学起,不知道学了后要怎么具体应用。

回顾这些是因为我最近在做技术工作文档化的整理,翻看四哥博客进行参考的时候,看到一文中一段话,想到在我的技术生活背景里一直横亘着一条连绵起伏的山脉,我断断续续从不同的路线进行过一些探索考察,虽然有收获但并未攀登成功过。

看到这段话没多久后我在想,可能要再试一次了。

> 无论真相如何,此番真地被挑战到了。2019.10剁完Burp Pro之后说过一句话,有技术追求的人应该去挑战那些崇山峻岭。毋庸置疑,不期而遇的ionCube就是新的崇山峻岭。

发布于 广东