re学习笔记(40)i春秋2020 GYCTF-re-吃鸡神器

i春秋2020新春战疫赛-re-吃鸡神器
新手一枚,如有错误(不足)请指正,谢谢!!
个人博客:点击进入
题目描述:

卢姥爷收到了朋友发来的“吃鸡神器”,但是朋友忘了告诉他登录账户和密码,⽽且卢姥爷也不好意思去问。所以 请为卢姥爷以 “lubenwei” 为⽤户名注册个账户。flag格式为 “flag{对应密码}”

题目下载:

链接: https://pan.baidu.com/s/1gVE158CY6VmSV4qUwtXXqA 提取码: 2020

OD载入,字符串搜索
在这里插入图片描述
找到关键字符串,双击进入
在这里插入图片描述
F2下断点,运行程序,
在这里插入图片描述
输入用户名和假码,进行login
在这里插入图片描述
程序被断下来。
在这里插入图片描述
ctrl+F9执行到返回,返回上层函数
在这里插入图片描述
发现所在模块变成了一个dll,继续ctrl+F9执行到返回。发现来到了Login主模块
在这里插入图片描述
发现没有跳过去的跳转啥的。retn返回上层call
来到这里
在这里插入图片描述
这个程序IDA的基址和OD的基址一样,都是0x400000,用IDA配合查看
在这里插入图片描述
用IDA找到弹窗call地址0x00402ade
快捷键G打开跳转地址窗口
在这里插入图片描述
F5查看伪代码
在这里插入图片描述
发现判断是否进行错误弹窗代码的条件是402090函数参与的,双击进入查看伪代码
在这里插入图片描述
加上OD调试可知此处将输入的用户名的每个字符取出,在35~41行的循环里,对result进行变换最终返回result
因为用户名题目已经给出,所以返回的result为一个定值0x41d26f00
返回OD,也就是eax的值为0x41d26f00,而eax与edi进行比较,来控制下面的跳转,edi是在0x4021d1地址处被eax赋值的。
而eax是0x4021c9地址处调用的0x401fb0call的返回值。
在这里插入图片描述
IDA查看401fb0()函数
在这里插入图片描述
使用OD调试可知这部分是对输入的密码进行处理。输入只能是0~9,a~f。
(其实就是将输入的十六进制字符串转换为十六进制数值然后返回

若想成功,也就是对密码处理后的返回值是0x41d26f00,也就是密码是字符串"41d26f00"
在这里插入图片描述
根据题干输入密码即为flag
最终flag为flag{41d26f00}

发布了62 篇原创文章 · 获赞 11 · 访问量 5886

猜你喜欢

转载自blog.csdn.net/Palmer9/article/details/104448823