DASCTF X GFCTF 2022十月挑战赛!
本文最后更新于:2022年10月24日 晚上
DASCTF X GFCTF 2022十月挑战赛!
Reverse
贪玩CTF
die看无壳 64位

使用ida64动态调试发现自动退出
发现TlsCallback_0 在start函数前面执行

把call cs:IsDebuggerPresent nop掉
并把 jz patch 换成jnz
如下图

可以正常调试了

shift+f12看字符串

进去 ctrl + x 数据的交叉引用 静态分析

进入 sub_7FF6ED1619C0 函数

长度如果不等于16 返回 -1 得到是账户是 是16位

返回-1 弹出 弹窗 字符长长度不对

和上面一样密码也是16位 否则返回 -1 然后提示框 长度不对
让后我随便输入16个账户和16个密码
最下面有异或

下面的判断给他断下来 按tab转汇编窗口


双击进入rsi寄存器

提取

编写脚本
1 | |
账户:wllm08067sec&das
分析密码 进入 sub_7FF6ED161390函数

进入 byte_7FF6ED166040 字节

1 | |
aes加密 特征

根据上面猜测上面的buffer应该是密钥
密钥:wllm08067sec&das

让后跳出往下走

byte_7FF6ED166990[v18] 是自己输入的密码
byte_7FF6ED1643D8[v18] 是aes加密后的密码
提取 byte_7FF6ED1643D8[v18] 里面的字符


1 | |
让后我们找个在线aes 解密 https://the-x.cn/cryptography/Aes.aspx

账户是:wllm08067sec&das
密码是:e4deb7a6510a10f7

flag 格式为DASCTF{账号+密码}
DASCTF{wllm08067sec&dase4deb7a6510a10f7}