reverse

Binary Diffing

mi1itray.axe published on
57 min, 11385 words

最近想看看binary diffing的内容,直接从头看看一篇篇翻,涉及到很多机器学习内容,很多不懂的,慢慢来看吧。这里先看了10几篇,很多都只看了一个摘要。 主要是了解一下思路,看看这个领域的内容的研究历史,Binary Diffing 1暂时只看到2016年的paper,后续继续更新,主要文章引用如下

  • Bitshred: feature hashing malware for scalable triage and semantic analysis.
  • Binary function clustering using semantic hashes.
  • Binslayer: accurate comparison of binary executables.
  • Control flow-based malware variant detection.
  • {MutantX-S}: Scalable Malware Clustering Based on Static Features.
  • Semantics-based obfuscation-resilient binary code similarity comparison with applications to software plagiarism detection.
  • Leveraging semantic signatures for bug search in binary programs.
  • Cross-architecture bug search in binary executables.
  • Bingo: Crossarchitecture cross-os binary search.
  • Statistical similarity of binaries.
  • discovRE: Efficient Cross-Architecture Identification of Bugs in Binary Code.
  • Scalable Graph-based Bug Search for Firmware Images.
  • Crossarchitecture binary semantics understanding via similar code comparison.
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

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

Frida learn && sctf 2023 checkFlow

mi1itray.axe published on
15 min, 2848 words

没有打sctf,但是赛后看NU1L wp时,看到checkFlow这题,师傅用frida调用本身函数来爆破。虽然这种爆破要求本身函数状态不受运行的影响,但还是很好的做法。这种做法一直都有,只是我一直没去了解,这次看到这个,就学习一下

Read More

2023 ciscn ezbytes Write Up

mi1itray.axe published on
9 min, 1635 words

这题使用了DWARF字节码,需要了解DWARF相关知识,实际上是c++异常处理中的相关知识。这题利用异常处理的栈回溯,执行了一段设计好的DWARF字节码,单纯的跟踪是跟踪不到的

这题怪我没有心去做这题,不然早就出了,最近想改变一下心态,既然不能摆脱,那就走到底。

Read More