4道题做了3到,都不太方便纯静态,动调倒是都挺简单的. 最后一题unity的游戏没什么经验,不知道怎么下手,CE也没下就放弃了
更新:又看了一下其实unity还是很简单,只是忘记dnspy该展开那个类了,(我说怎么看不到代码呢
没打,王哥发了我三题,我就看了一下,稍微多花了时间。
自己无聊,想开发开发。想着最近需要一个tag管理的系统,我用的是windows的,文件管理是层级管理,不是tag的,想着写一个也不难,就自己写了一下。开发语言用rust,数据库使用mongodb,手很生,写了好几天,累死✌了。
最近想看看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.
这是一篇CCFB的文章,来自中科大,文章提出了一种新的二进制混淆模式来抵抗binary diffing技术的分析。
从混淆角度,它是从IR层面切割函数并融合函数,改变了函数的调用关系。与OLLVM是不冲突的混淆,对抵抗binary diffing有很好的效果,并且也是基于LLVM框架,对混淆技术的发展是有意义的。
Obfuscate项目是用于隐藏字符串,增加分析的难度,但是Obfuscate只能对抗静态的分析。zer0pts比赛中的一题就是利用这个项目,但是它很巧妙,隐藏的是模块的函数名,主要逻辑是调用so文件的模块,它隐藏so中的函数名后,从静态分析是很难看出来调用的逻辑是什么,忽然感觉这个项目就有点用了。
利用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 = ...;
}
最近发现二进制文件中符号恢复的手段有不少,这里想记录一下几种符号恢复的工具使用与效果对比。
Finger,lscan,flair,bindiff
没有打sctf,但是赛后看NU1L wp时,看到checkFlow这题,师傅用frida调用本身函数来爆破。虽然这种爆破要求本身函数状态不受运行的影响,但还是很好的做法。这种做法一直都有,只是我一直没去了解,这次看到这个,就学习一下
前几天打了一个应该是天融信的比赛,题目不难,简单记录一下。
一道是花指令+rc4,一道是mov混淆