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}