如何计算将金丝雀值放在程序中的位置

逆向工程 缓冲区溢出
2021-07-04 04:38:15

我正在尝试利用一个类的缓冲区溢出的程序。该程序启用了金丝雀,当您粉碎堆栈时它会退出。在 gdb 中运行程序时,您可以在调用用户输入之前设置断点并从堆栈中获取金丝雀。我尝试添加 X 个 A 值来查找金丝雀被覆盖的位置。部分 relro 已打开,ALSR 已禁用。在第 71 个 A 之后,第 72 个导致检测到堆栈粉碎和砖块。我试图在像这样 AA...A\x00..etc 这样的小端中的 71 A 之后进入金丝雀,但它仍然检测到粉碎。我在这里错过了什么吗?该程序很难暴力破解,因为它会在端口 1215 上打开一个 netcat 侦听器。从那里您必须 nc 然后提示您输入消息。我试过手动输入它并将其作为python脚本传递给侦听器。

0个回答
没有发现任何回复~