BugKu逆向之05-Easy_vb

BugKu逆向之05-Easy_vb

一、 文件描述

  1. 正儿八经的.exe程序;
  2. 24KB;
  3. 32位;
  4. 工具:OllyDbg

二、解题思路

  1. 二话不说,先放上图看看运行起来的模样。。
    在这里插入图片描述
  2. 于是,,各个下拉框都试了一遍,,点击【确定】没反应。。它竟然没反应,也不显示正确,也不显示错误。。。
  3. 好吧,,直接OD中绕过
  4. 打开字符串列表,如下图,,,
    在这里插入图片描述
  5. 这里第三行有个MCTF{N3t_Rev_1s_E4ay},直觉告诉我,这就是你要的flag,,,好吧,,这样太容易了吧,,
  6. 不行,,我要再试试的
  7. 第四行是“Try again!”,第五行是“欢迎来到MCTF信息安全大赛”。。
  8. 咋整呢,,,
  9. 来到 反汇编窗口中,定位"欢迎来到MCTF信息安全大赛",,,显然这句话是【确定】按钮后弹出来的,,
    在这里插入图片描述
  10. 所以,思路就是,,,,要从程序运行后就跳转到这句输出,,直接跳过【确定】键。。。
  11. 这句话往上看,找到最近的一个跳转键【jnz】【00402776】,,它表or edx,eax使得ZF=1时就跳转,,跳转到很远的地方【004028AC】,直接跳过了“欢迎…”.
  12. 再往上翻,,,没有找到其他跳转指令,,倒是有很多cmp指令,,,可想而知,,这些个cmp都是与我们在下拉框中输入的值进行cmp、、、
  13. 所以,,这更加确定了,我们应该在这个【jnz】处进行修改、、
  14. 废话不多说,,将【00402776】处修改为NOP,,你可能会问为什么不直接跳到“欢迎。。。。”那里,,答案是jnz下面的指令必须得执行才行!!!
  15. 修改后,F9运行程序,点击【确定】,出现一个小弹框。。
    在这里插入图片描述
  16. 点击小对话框的【确定】后,,原来的程序变成这样、、
    在这里插入图片描述
  17. 随便输入一串字符试试看【获取flag】。。
    在这里插入图片描述
  18. 弹出“Try Again!”的弹框,,看来是需要我们自己找到flag才行。。
  19. 继续加油鸭,,
  20. 我们在“Try Again”上打个断点,,
    在这里插入图片描述
  21. 继续输入flag,,然后F8调试程序。。。
    在这里插入图片描述
  22. 调试到这句【00402498h】的时候才出现“Try Again!”的弹框。。
  23. 重点来了,,,“Try Again”上面有个【jmp】【0040246Bh】跳转,,这个jmp直接跳过“Try Again”及其弹窗【00402498h】。。
  24. 由于这个是jmp无条件跳转,,你细想,,程序正常往下走,,遇到【jmp】肯定会执行,也就是会跳过Try Again,,对吧。但是,我这里无论输入什么,,,一直都有Try Again弹窗。。。
  25. 这就说明一点,在【jmp】指令之前,就有一个跳转指向"Try Again!",,,,找找看鸭~~~
  26. 往上找的时候发现一个【jge】【00402471h】和一个【je】【004023EE】,,,
    在这里插入图片描述
  27. 很明显,【je】跳转证明了我的猜想,,,它果然直接跳到了“try again”那里。
  28. 直接把这个【je】给NOP掉。。然后输入继续调试,,
    在这里插入图片描述
  29. 弹窗出现我们输入的结果,,,嘎嘎,,这也不是我想要的flag,,,
  30. 继续往上看,这个跳转之前做了哪些事情。。。
    在这里插入图片描述
  31. 在这张图最上面一行【004023A9h】处,程序push一个字符串:MCTF{N3t_Rev_1s_E4ay},,然后我在下面一行【004023AEh】处打了个断点,,运行调试的时候,可以看到堆栈窗口有两个Unicode,,一个是我输入的“64366”,一个是正确的flag值,,
    在这里插入图片描述
  32. 这个时候,,已经知道这就是我们要的FLAG了,,
  33. 验证一下,,把之前对【je】的修改撤销,,输入正确的Flag后,出来这个弹窗。。。
    在这里插入图片描述
  34. 完美收官,,,

记录一下,,这是我学习逆向的第二个星期,,加油,,有啥解释的不到位或者不对的地方,请大家多多批评指正哇!!!

私信或者评论都行,,共同进步鸭,,,fighting!!!

APK文件的逆向等我装好了软件,再更新好伐~~~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值