混淆技术研究
文章平均质量分 80
以实战为例子,通过对Java字符串混淆、流混淆以及Native OLLVM混淆进行一系列技术研究,从而能够破解此类混淆,最终目标实现一个通用的反混淆工具
Tasfa
www.tasfa.cn
展开
-
混淆技术研究-混淆技术-源码分析(2)
OLLVM(Obfuscator-LLVM)是基于LLVM(Low Level Virtual Machine)框架的一种代码混淆器。它主要用于对C/C++和汇编语言程序进行混淆,以增加代码的复杂性,提高代码的安全性和抵抗逆向工程的能力。IR(Intermediate Representation)是指中间表示,是编译器在将源代码转化为目标代码的过程中使用的一种中间形式。它作为源代码和目标机器代码之间的一个抽象层,方便进行代码优化、分析和生成。Module、Function、BasicBlock和Ins原创 2023-09-28 16:11:44 · 563 阅读 · 0 评论 -
混淆技术研究-OLLVM混淆-指令替换(SUB)
指令替换(Instruction Substitution)是一种代码混淆技术,用于将程序中的原始指令替换为等效但更难理解和还原的指令序列。通过指令替换,可以增加程序的复杂性和抵抗逆向工程的能力。指令替换可以采用不同的方式进行,下面是一些常见的替换方式:常量展开(Constant Unfold):将原始指令中的常量操作替换为等效的指令序列,增加了代码的复杂性和可读性。原始指令:a = b * 5替换指令:a = (b原创 2023-09-28 15:50:43 · 1061 阅读 · 0 评论 -
混淆技术研究-OLLVM混淆-控制流平坦化(FLA)
控制流平坦化通过将程序中的条件分支语句转化为等价的平铺控制流来实现。通常,这包括将原始的分支语句(如if语句、switch语句)中的每个分支提取出来,并将它们放置在一系列连续的基本块中,然后使用一个状态变量或标志来选择要执行的基本块。这样,原本嵌套的条件分支结构就被展开成了一个扁平的基本块序列。原创 2023-09-10 22:25:11 · 579 阅读 · 0 评论 -
混淆技术研究-OLLVM混淆-虚假控制流(BCF)
虚假控制流(BCF, Bogus Control Flow),该方法通过在当前基本块之前添加一个基本块来修改函数调用图。这个新的基本块包含一个不透明谓词,然后进行条件跳转到原始基本块。并且原始基本块也被克隆,并填充了随机选择的垃圾指令。原创 2023-09-10 16:15:28 · 2422 阅读 · 0 评论 -
混淆技术研究-混淆技术简介(1)
代码混淆技术是一种软件保护技术,它通过对程序代码进行变换和加密来增加逆向分析的难度,从而提高软件的安全性。具体来说,代码混淆技术可以将程序代码中的函数、变量名替换成无意义的字符,使得逆向分析者难以理解源代码的含义。同时,混淆技术还可以对代码进行重组、插入假代码、修改逻辑等操作,从而使得程序的行为变得更加复杂和难以理解。此外,混淆技术还可以对程序中的字符串、常量和数据进行加密处理,以增加破解难度。代码混淆技术广泛应用于各种软件,尤其是移动应用和游戏等领域,可以有效地防止软件被盗版、破解和篡改。原创 2023-09-08 16:41:17 · 2505 阅读 · 0 评论