通过修改物理内存实现跨进程内存读写
跨进程内存读写有多种方式,这里主要了解一下修改物理内存来实现跨进程内存修改方法。这种方法主要是无痕,对比修改cr3来说要无痕的多。
后面再试试修改cr3和修改MDL映射来做到跨进程内存读写方式。
Read More跨进程内存读写有多种方式,这里主要了解一下修改物理内存来实现跨进程内存修改方法。这种方法主要是无痕,对比修改cr3来说要无痕的多。
后面再试试修改cr3和修改MDL映射来做到跨进程内存读写方式。
Read More最近想看看binary diffing的内容,直接从头看看一篇篇翻,涉及到很多机器学习内容,很多不懂的,慢慢来看吧。这里先看了10几篇,很多都只看了一个摘要。 主要是了解一下思路,看看这个领域的内容的研究历史,Binary Diffing 1暂时只看到2016年的paper,后续继续更新,主要文章引用如下
Categories: Paper
这是一篇CCFB的文章,来自中科大,文章提出了一种新的二进制混淆模式来抵抗binary diffing技术的分析。
从混淆角度,它是从IR层面切割函数并融合函数,改变了函数的调用关系。与OLLVM是不冲突的混淆,对抵抗binary diffing有很好的效果,并且也是基于LLVM框架,对混淆技术的发展是有意义的。
Read MoreTags: llvm reverse obfuscation
利用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
Categories: Reverse Cheatsheets
没有打sctf,但是赛后看NU1L wp时,看到checkFlow这题,师傅用frida调用本身函数来爆破。虽然这种爆破要求本身函数状态不受运行的影响,但还是很好的做法。这种做法一直都有,只是我一直没去了解,这次看到这个,就学习一下
Read MoreCategories: Reverse
Tags: movfuscator junk reverse
这题使用了DWARF字节码,需要了解DWARF相关知识,实际上是c++异常处理中的相关知识。这题利用异常处理的栈回溯,执行了一段设计好的DWARF字节码,单纯的跟踪是跟踪不到的
这题怪我没有心去做这题,不然早就出了,最近想改变一下心态,既然不能摆脱,那就走到底。
Read More前些天没做出来的题目,后面再思考后发现了自己忽略so文件中调用java代码,赛后做了出来整理在此。
Read MoreSearch