Debugging 玩具程序-使用GDB绕过C函数

Debugging 玩具程序-使用GDB绕过C函数,debugging,gdb,reverse-engineering,Debugging,Gdb,Reverse Engineering,我正在用C编程语言在GDB中做一个练习,这是一种帮助开发人员调试代码的方法,但似乎不理解应该采取的方向 我只知道玩具程序要求输入密码,而最终的练习目标是GDB应该允许发现漏洞,从而绕过密码检查。这就是我所知道的,所以任何代码对我和读者来说都是混乱的。所以基本上,我要求有经验的人尝试一套步骤 我已经通过objdump进行了转储,发现了一个非常大的转储。我找到了main func,但后来只找到了很多具有非常神秘的十六进制和汇编代码的库函数。 我是否应该采取不同的启发式方法?我对stacks不太熟悉,

我正在用C编程语言在GDB中做一个练习,这是一种帮助开发人员调试代码的方法,但似乎不理解应该采取的方向

我只知道玩具程序要求输入密码,而最终的练习目标是GDB应该允许发现漏洞,从而绕过密码检查。这就是我所知道的,所以任何代码对我和读者来说都是混乱的。所以基本上,我要求有经验的人尝试一套步骤

我已经通过objdump进行了转储,发现了一个非常大的转储。我找到了main func,但后来只找到了很多具有非常神秘的十六进制和汇编代码的库函数。
我是否应该采取不同的启发式方法?我对stacks不太熟悉,所以也许有点类似?我知道我可以设置断点,但不知道从哪个函数开始寻找。当程序运行时,它说“请输入密码”,我输入一个随机密码,玩具程序说“密码不正确!”。在两者之间的某个地方,我需要截取一些东西,但那是我无法理解的


谢谢你的帮助。你会让一个终身学者非常快乐。

好吧!!!代码在哪里?我想我没有权限访问代码。它只是一个名为“login”的预编译文件,我正在通过终端中的“gdb login”对其进行解析。有什么方法可以通过这个提供代码吗?如果这是“使用C编程语言”,这是否意味着你有源代码?是的,我有。我该怎么转帐?它只是一个名为login的c程序(我在虚拟机中运行,因为我被告知要保护我的计算机)。在这里:(被信任网评为绿色。你需要符号,否则这是一个asm问题。使用复制/粘贴来传输程序…好吧!!!那么代码在哪里?我想我没有权限访问代码。它只是一个名为“login”的预编译文件,我正在通过终端中的“gdb login”来解析它。我有什么办法可以通过这个来提供代码吗?如果这是“使用C编程语言”,这是否意味着您有源代码?是的,我有。我应该如何传输它?它只是一个名为login的C程序(我在虚拟机中运行,因为我被告知要保护我的计算机)。它在这里:(被信任网评为绿色。您需要符号,否则这是asm问题。使用复制/粘贴传输程序。。。