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

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

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

题目下载:

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

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

若想成功,也就是对密码处理后的返回值是0x41d26f00,也就是密码是字符串"41d26f00"
re学习笔记(40)i春秋2020 GYCTF-re-吃鸡神器_第15张图片
根据题干输入密码即为flag
最终flag为flag{41d26f00}

你可能感兴趣的:(ctf小白成长ing,#,reverse)