首页
社区
课程
招聘
[讨论]签到题解题步骤
发表于: 2019-12-1 17:01 2077

[讨论]签到题解题步骤

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,非常清晰就能认出来

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

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