Ea5yR3versing

Posted rlee063

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ea5yR3versing相关的知识,希望对你有一定的参考价值。

【Reversing】第一题:2h

  emmm题目就是这样,一道求密码的题目

技术分享图片技术分享图片

 

   字串查找也好,API查找也好先在 Incorrect Password 处打断点,然后从该处找到算法call(要先确定一个CALL不是算法CALL之后再RET,开始在上一层判断是否单击了按钮的CALL里循环了好久).

   技术分享图片

  单步向下执行,前面好几句都是在初始化桟里的内容

  技术分享图片

  这一步OD已经告诉是对GetDlgItemTextA的调用,即获取文本框内的内容,那么之后肯定就是对输入的密码的正误判断。

  技术分享图片

  紧跟的这一条指令,通过数据窗口跟随esp可以发现esp+0x5里的内容是输入的密码的第二个数,即判断第二个数是否为 a (0x61)。

  之后是一条jnz,如果不等就跳转到弹出incorrect对话框,则可以判断密码的第二个数是 a 。

   技术分享图片

  屏蔽掉这个jmp,之后几步都在为一个call传递参数,传递了数字 2 ,字符串“5y”和第三个输入字符的地址,大致可以判断是要判断从第三个位置开始的两个字符是否是"5y".

  技术分享图片

  然后进入这个CALL验证,开始几步保留现场形成新的桟帧。假巴意思判断一下穿进来的参数有没有问题。

   技术分享图片【jecxz:如果ecx为0则跳转】;【倒数第三步ecx = 2】

  接下来又涉及到一个高级操作。作用是计算字符串长度【其实感觉没用啊】。

  技术分享图片【scas: 检索字符串,每次ecx - 1】

  做了两次比较比较"5y"和再次确认是y。该CALL结束。

  技术分享图片

  如果返回值是0,继续执行,否则弹窗!

  技术分享图片

  判断第四位和‘R‘是否相同,实际上他拷贝了“R3versing”,大胆猜测接下来是对R3versing的比较。

  技术分享图片

  循环两个两个的比较,直到遇到00。

  技术分享图片

  假巴意思判断一下eax。判断是否进行过比较。

  技术分享图片

  最后再判断一下第一位是否是"E".

  技术分享图片

  之后就是弹窗“congratulation!!”.

   技术分享图片

  flag:"Ea5yR3versing"。完

  

 

  

  

  

 

以上是关于Ea5yR3versing的主要内容,如果未能解决你的问题,请参考以下文章