首页
论坛
课程
招聘
kctf2021 签到题(思路)
2021-11-16 12:31 679

kctf2021 签到题(思路)

2021-11-16 12:31
679

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

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


【看雪培训】《Adroid高级研修班》2022年夏季班招生中!

收藏
点赞0
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回