逆向_game

双击打开程序。

一种破解方式:

 依次输入:1,2,3,4,5,6,7,8

另一种破解方式:

x32dbg打开程序。

 alt+F9

跳转到用户函数:

 F7进入函数。

 搜索字符串

可以在字符串种发现存在"done!!! the flag is "。

双击进入。

在push ebp处下断点。

可以知道这里为flag函数入口。但又可以发现,flag并没有在这里产生。

又可以发现下方存在很多数字字母。揣测,flag由下方的代码生成。

而在done!!!the flag is 下面紧接着add esp,4

没有ret说明该函数接着在往下面走(也就是在生成flag)。(下面可以看到一个%s,这应该就是将flag赋值到%s的地方。新手揣测!!!羡慕那些追码的人)

我们尝试着将flag的入口函数在其他地方去调用。

将flag的入口函数地址记下。我的是0x0083E940。

比如:初始化的时候。或者在输入参数出错的时候。

下面尝试第二种,在输入参数出错的时候。

 在字符串中找到"sorry, n error,try again\n"。

双击进入。

双击修改跳转地址。

点击左上角的文件->补丁->修补文件,保存为1.exe。双击打开。

随便输入一串数字。便可以出flag。

总结一下:

这个flag应该算爆破出来的。因为压根就不清楚lamp算法也不清楚flag的算法。使用的是call直接跳转。

猜你喜欢

转载自www.cnblogs.com/TNTBomb/p/12663903.html
今日推荐