[writeup] reversing.kr - Easy Crack

最近在学习二进制,本文的例子是reversing.kr的Easy Crack,因为之前没写过博客,所以先拿一个简单的题目练练手。。


首先运行程序,发现有一个输入框,一个按钮,输入的内容应该就是最后的答案。


因为是easycrack,所以应该没加壳,直接ollydbg载入,程序停到了入口点,确实没有加壳



接着F9运行程序,随便输入一串字符,点击按钮,程序跳出了密码错误的提示窗


F12暂停程序,然后Alt+K查看调用栈

在MessageBoxA处右键show call,定位到了弹窗所在的程序段

发现一共有四个判断会跳转至密码错误,分别是4010B5,4010CD,40110B,401112


在这四处下断点,再往上看,发现读取输入文本的GetDlgItemTextA,GetDlgItemTextA和第一个跳转之间有一个字符比较的指令,也下个断点


重新载入程序,运行,

这次输入1234567890,然后点击按钮,程序停到了第一个断点处,

此时进行比较的是输入的第二位'2'和'a'(ASCII=0x61)

F8单步执行程序,遇到跳转时,把Z标志位置1,让跳转不发生,程序进行后续的字符比较


观察堆栈,这时是'34'和'5y'的比较


遇到跳转时,把Z置1,让跳转不发生,

接下来的是比较'567890'和'R3versing',对应的是密码的5到13位


依然让所有跳转都不发生,来到最后一个比较,比较第一位'1'和'E'(0x45)

于是得出密码第2位是a,3到4位是5y,5到13位是R3versing,第一位是E



  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值