首页
社区
课程
招聘
[原创]KCTF2022签到题-富贵还乡writeup
发表于: 2022-11-15 13:35 1833

[原创]KCTF2022签到题-富贵还乡writeup

2022-11-15 13:35
1833

题目

下载题目后,解压打开,看到txt文件
图片描述
给了一组用户名和序列号,要求获取KCTF对应的序列号。

解题过程

尝试输入题目给的用户名和序列号
图片描述
发现回显了“success”。于是使用x64dbg打开程序,shift+D搜索字符串
图片描述
发现该字符串,双击进入,往上找到段首
图片描述
同时发现了输入的两个提示,因此这里就是关键输入点。
图片描述
在序列号后的call下断点,运行,输入用户名KCTF后
图片描述
触发断点,而此时输入序列号的提示还没出现,继续F8单步到下一个call
图片描述
此时输入序列号11111111111111111111111111111111。这里是32位,可以根据题目给出的序列号长度知道,也可根据后面的指令即cmp rax,20知道。
图片描述
单步,发现出现了一串字符串4fc0296a51e6d90c794c91951886dc2b,暂时不知道有什么用。此时也可以看到后面出现了1841352字符串,继续单步
图片描述
这个call将1841352与输入的KCTF拼接在了一起。单步
图片描述
这个call经过md5计算得到了一串字符串9b0c4341d546c9c7f15d2f15f973aaab。
图片描述
这里比较长度后,后面就是关键代码。直接单步到
图片描述
每次从字符串中取出1位,进行一些操作后,与输入的每位字符进行比较,后面je指令判断是否相等。我们输入的都是1,因此rax中的就是正确的序列号。
图片描述
在cmp指令下断点,后面的je改成jmp,之后直接F9,每次都运行到cmp这个位置,记录下rax的值,如第二位
图片描述
如此即可得到序列号:213d1aada77bf4a51441947c515199fb
试验一下
图片描述
破解成功!


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//