WMCTF2022-Re


WMCTF2022-RE

BaByDriver

0x0 前言

队友太顶了,直接一血

0x1 exe分析

image-20220821210258800

搜索failed,然后一直索引找到主函数

image-20220821210357572

获得电脑的版本判断是不是window7 x64 然后在c盘生成一个sys驱动

image-20220821210442626

寻找一个wmctf的文件

image-20220821210511530

这里就创建了一个wmctf.txt

image-20220821210555265

把输入都异或了一遍i 然后传了进去

image-20220821210615410

可以看到用NtQueryInformationFile保存了参值,其实这个就是把输入传到sys中

image-20220821210744924

前面可以看见创建保存在全局资源表,直接用ResourceHacker dump下来

0x2 sys分析

image-20220821210949832

DriverEntry进去找到调用函数,发现就这一个

image-20220821211037653

AES加密,这下我们就得需要key了

image-20220821211120190

如果还记得这里传值进去,输入都是从这里传过去,那这个qword_140090060有没有可能就是key传过去

0x3 解密

image-20220821211244088

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

image-20220821211754688

image-20220821211810851

可以发现是无魔改的chacha20,我当时第一步就发现这个,然后直接找到密文

4

当时看见那么混淆啥也看不见,我一般就直接看cfg看调用关系。可以找到这里的memcmp的对比位置

当时做到这,因为chacha20是异或加密,所以就想找异或位置,找了好几个才发现有点长64位,当时我也不知道输入是有要求的,才导致不能运行。

1

后面看先获得了参数个数,需要2个

2

然后进行了明文对比,可以看见对比的位置是0x3F位 说明输入是63位

然后直接断memcmp,把两个对比值dump下来,再和自己的输入异或就出了


文章作者: Blue
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Blue !
评论
  目录