Reverse

Rust污点分析调研

mi1itray.axe published on
1 min, 76 words

Rust语言污点分析相关的几篇内容

  • SafeDrop: Detecting Memory Deallocation Bugs of Rust Programs via Static Data-flow Analysis.
  • Encapsulated Functions: Fortifying Rust's FFI in Embedded Systems.
  • Demystifying Compiler Unstable Feature Usage and Impacts in the Rust Ecosystem
  • Detecting Cross-language Memory Management Issues in Rust
  • MirChecker: Detecting Bugs in Rust Programs via Static Analysis
  • Static Deadlock Detection for Rust Programs
Read More

BiAn: Smart Contract Source Code Obfuscation

mi1itray.axe published on
5 min, 975 words

智能合约代码混淆,感觉还是ollvm的影子,还是那三种模式,只是做了相关的适配以及加了很多其他细节,总体思路是没有变的。

创新点在于使用改进后的混沌映射来做不透明谓词,增加了一定的混淆程度

会议:IEEE Transactions on Software Engineering

等级:CCF-A

Read More

Khaos: The Impact of Inter-procedural Code Obfuscation on Binary Diffing Techniques

mi1itray.axe published on
14 min, 2721 words

这是一篇CCFB的文章,来自中科大,文章提出了一种新的二进制混淆模式来抵抗binary diffing技术的分析。

从混淆角度,它是从IR层面切割函数并融合函数,改变了函数的调用关系。与OLLVM是不冲突的混淆,对抵抗binary diffing有很好的效果,并且也是基于LLVM框架,对混淆技术的发展是有意义的。

Read More

Obfuscate hide string && zer0pts

mi1itray.axe published on
13 min, 2454 words

Obfuscate项目是用于隐藏字符串,增加分析的难度,但是Obfuscate只能对抗静态的分析。zer0pts比赛中的一题就是利用这个项目,但是它很巧妙,隐藏的是模块的函数名,主要逻辑是调用so文件的模块,它隐藏so中的函数名后,从静态分析是很难看出来调用的逻辑是什么,忽然感觉这个项目就有点用了。

Read More

Frida call java class/method to explode

mi1itray.axe published on
13 min, 2519 words

利用Frida去调用java代码中的类,然后爆破。算是一种主动的方法。主要是之前有一道apk题目是爆破的思路,但是我不会写java代码,想起来很难受,冲浪的时候看到Sakura的blog有感,就再去试试,并记录在此。然后发现这题原来是adword原题,(其实题目挺简单,只是当时摆),气死✌了。

主要是记录Frida主动调用apk中Java中的代码。主动调用可以用于爆破,模拟程序部分执行。

需要注意的知识点是在java代码中的static类型数据在爆破过程中需要每次都对这种类型值重新设置。因为static类型在所有实例中都是统一,修改一个实例就会修改所有实例,需要用变量.属性.value = ...的写法重新设置值。

var bvar = b.$new(IntClass.$new(2));
for (...) {
    bvar._static_val.value = ...;
}
Read More