首页
社区
课程
招聘
kctf2021 签到题(思路)
发表于: 2021-11-16 12:31 2387

kctf2021 签到题(思路)

2021-11-16 12:31
2387

首先下载题目阅读,给了一个正确的用户名和序列号,还指定了我们要逆出序列号的用户名

1.先输入真码走一遍流程

来到代码节搜索字符串,可以搜到success的字符串,双击定位到返回窗口

然后找到段首,下个断点,运行程序,输入真码,断在了段首的位置

接下来就是分析了,其中有几个比较关键的call(这个call是对用户名进行了操作)
结合着ida看了下这个call,其实不重要,我们只要记录下他的返回值就行

接着看这个call(这个call是对序列号进行了操作)
下面有个关键的xor eax,ebx
eax就是这个call的返回值 ,ebx存着上面让记录那个call的返回值
然后真码xor完之后 == 52a1ed5a
再下面的call对于"52a1eb5a",返回的还是原值

最后这个call决定是否成功
这里将"52a1ed5a" push 入栈 然后调用call 比较是否等于0x13B88C77
这里发现只要push的是"52a1ed5a"就会成功

2.所以 对用户名操作的call xor 对序列号操作的call == 52a1ed5a 就可以成功

我们记录 对KCTF操作完的返回值 == 5EE54F4C
此时已经知道两个xor的操作数 求第三个

之后分析了一下对序列号操作的call其实就是将10进制转换为16进制
NAME=KCTF
Serial = 205824534


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

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

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册