WMCTF2022-RE
BaByDriver
0x0 前言
队友太顶了,直接一血
0x1 exe分析
搜索failed,然后一直索引找到主函数
获得电脑的版本判断是不是window7 x64 然后在c盘生成一个sys驱动
寻找一个wmctf的文件
这里就创建了一个wmctf.txt
把输入都异或了一遍i 然后传了进去
可以看到用NtQueryInformationFile保存了参值,其实这个就是把输入传到sys中
前面可以看见创建保存在全局资源表,直接用ResourceHacker dump下来
0x2 sys分析
DriverEntry进去找到调用函数,发现就这一个
AES加密,这下我们就得需要key了
如果还记得这里传值进去,输入都是从这里传过去,那这个qword_140090060有没有可能就是key传过去
0x3 解密
a="WLAWB~DGjpNy={=}O#|wKPVdaX)h=<?b"
for i in range(len(a)):
print(chr(ord(a[i])^i),end="")
# WMCTF{B@byDr1v3r_2nd_E@syA3s!!!}
0x4 总结
做出来的时候,3个战队提交,感觉很爽,没有坐牢
seeee
0x0 前言
这题好可惜,慢了点不然就是我们队一血了。
0x1 Findcrypt
可以发现是无魔改的chacha20,我当时第一步就发现这个,然后直接找到密文
当时看见那么混淆啥也看不见,我一般就直接看cfg看调用关系。可以找到这里的memcmp的对比位置
当时做到这,因为chacha20是异或加密,所以就想找异或位置,找了好几个才发现有点长64位,当时我也不知道输入是有要求的,才导致不能运行。
后面看先获得了参数个数,需要2个
然后进行了明文对比,可以看见对比的位置是0x3F位 说明输入是63位
然后直接断memcmp,把两个对比值dump下来,再和自己的输入异或就出了