-
-
[讨论]签到题解题步骤
-
发表于: 2019-12-1 17:01 2077
-
第一次玩windows逆向,拿签到题试试水
od打开直接运行,什么都不输入直接点验证
看堆栈发现MessagBoxA,下断点试了几次都这样(我真傻),注意到返回下面一个地址00401892,在程序自身的段内,猜测为字符串处理的函数中调用MFC后的返回,右键follown in disassembler
分析一下,是先strlen看长度是否为0然后再验证,不是0的话应该要从00401894处开始。
看汇编的处理,发现是一个字节一个字节的比较,要求<=39h且>=30h,就是数字0~10。
JZ是到字符串末尾ascll为0的情况,也就是循环结束,JG和JL都是输入不合规就弹出错误提示然后程序就。。。没了
对于合法数据的处理:
把数字当成偏移从一个地址【***-30】取字符串放到另一个地址【***-18】。发现被取的字符串就是上面的cuk!ogl
最后循环结束后把【***-18】这里的字符串当参数送进另一个函数,用strcmp和goluck!比较。最后需要的数字依次就是goluck!在cuk!ogl中的偏移。
用ida看就轻松多了,直接跳到401894处然后F5,非常清晰就能认出来
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
赞赏
他的文章
- [原创]KCTF 2023 第三题 解题过程 9037
- [原创]第二题 CN星际基地 8069
- [原创]第七题:东北奇闻 5183
- [原创]关于【第五题:小虎还乡】的部分实验 6303
- [原创]第四题:西部乐园 4201
看原图
赞赏
雪币:
留言: