赵赵赵小云 发表于 2020-11-22 22:22

bugku逆向wp

本帖最后由 赵赵赵小云 于 2020-11-23 11:36 编辑

bugku新的测试平台的题目 (题目地址:https://test.bugku.com) (因为本人是刚刚接触逆向这方面,是菜鸡,大神勿喷)


Reverse的Call:
首先下载附件,解压缩得到一个call.exe文件,打开之后观察应该是一个类似输入正确密码得到flag的程序。如下



于是正常的流程,使用exeinfope打开查壳,发现无壳,然后直接使用爱盘中的OD打开。(这个OD带有许多好用的插件,适合新手使用)
进入程序后使用右键->中文搜索引擎->智能搜索

直接看见有flag字样,双击跟随过去,然后根据以往的经验,向上找开头即 push ebp处,但这个程序找了半天,并没有看见push ebp,只有push -0x1,于是开始下断点(我一般在认为有用的地方都加上断点。。)

然后重新加载一下程序开始调试。
直接运行,弹出程序,随便输入

然后程序停在第一个断点处,然后F8单步步过,再此过程中要时刻注意几个通用寄存器中的情况

到这时可以看见EAX寄存器中的值为 “0694303”,怀着试一试的运气尝试一下,发现输入之后仍是失败,然后继续F8


当看见jnz这条跳转指令时先点击一下看一下跳转到哪里,预览时发现正好跳到执行失败的那条语句,这样就好办了,在jnz call.00401F1A这条语句右键->二进制->使用NOP填充

然后继续F8,执行几步之后发现ESI寄存器中有一个值,先记录一下

然后继续执行,最终到sorry...这一块,此时寄存器中的值还是没变,推测应该是把输入的值和ESI中的值做对比,然测试一下

于是得到flag

(这个应该是静态的程序,测试每次输入不同最后ESI中的值都是相同,否则需要写出注册机,分析算法,这些过程菜鸡暂时不会。。)

Hmily 发表于 2020-11-23 09:58

没有图?过程有些简单哦。

鸭子咯咯哒~ 发表于 2020-11-24 12:01

谁讲解下push 0x1 这个和push ebp区别都是一样的吗都是开头的吗

charlotterlc 发表于 2020-11-24 16:35

悬赏问答区

addqcx 发表于 2020-11-25 12:27

谢谢分享

伞兵一号卢本伟 发表于 2020-11-25 15:47

谢谢分享

Nop_ 发表于 2020-11-25 22:27

谢谢分享

BaconOle 发表于 2020-11-26 07:42

大神666!

mdjlw 发表于 2020-11-27 21:02

欢迎分析讨论交流,吾爱破解论坛有你更精彩!

wolfdada 发表于 2021-2-1 10:08

谢谢大侠分享,受教受教
页: [1]
查看完整版本: bugku逆向wp