问题标签 [pwntools]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
25 浏览

pwntools - 有没有办法将另一个版本的“libc”库加载到 pwntools 脚本中?

我正在尝试使用与我在本地安装的pwntools版本不同的版本来运行可执行文件。libc有什么办法可以做到吗?我尝试过这种方式,但它似乎不起作用。

我将附上一张带有脚本的图片以及我遇到的错误。 在此处输入图像描述

我正在Ubuntu 20.04使用python 3.8.

0 投票
2 回答
55 浏览

linux - 为什么.bss段没有可执行属性?

我有一个以 pwnable.tw 命名的 ELF 32 位可执行文件orwhttps ://pwnable.tw/challenge/ 。在我的 Ubuntu18.04 中,可以执行 .bss 段: 在此处输入图像描述

但是在我的 Ubuntu20 和 IDA Pro 中,.bss 段没有可执行属性,为什么? 在此处输入图像描述 在此处输入图像描述

0 投票
0 回答
69 浏览

security - pwntools:在命令行工具中设置 context.terminal

在 pwntools 中,如何设置context.terminalfor 命令行工具,例如pwn debug. 使用-c失败并出现错误。

0 投票
0 回答
21 浏览

python - p32 函数在 Python2 和 Python3 中输出不同的结果

当我使用p32()pwntools 中的函数时,python2 和 3 的输出不同,这会影响结果。我想知道为什么会这样?

Python2 输出:

Python3 输出:

0 投票
0 回答
24 浏览

debugging - gdb 分别打印当前状态。从 next 或 step 命令重复输出

在 gdb 中,使用next (n)执行下一条指令或使用run (r)命中断点后,将打印应用程序的当前状态,显示寄存器、反汇编、源代码、堆栈等(参见屏幕截图)。通过哪个命令可以分别打印此信息。重复而不做 n, s, r ? 谢谢你。

下一步、步骤、命中断点后的 gdb 默认输出

0 投票
0 回答
19 浏览

gdb - 如何使用 pwntools 从变量中获取值?

我同时使用 pwntools 和 gdb 来探索 ELF 程序,我的问题是如何像在 gdb 但在 pwntools 中使用“p <variable_name>”一样获取变量的值。我已经搜索但什么也找不到。

0 投票
2 回答
39 浏览

python - 使用 pwntools 与可执行文件交互只是在接收时停止

我有一个我想利用的可执行文件。该文件的输出如下所示:

您输入一些文本,程序会将其吐回。

我想用 python 和 pwntools 运行这个程序(然后利用它)。

到目前为止,我的 pwntools 程序的功能部分如下所示:

这工作正常,它获取第一行然后打印它。

我现在要做的是向程序发送一条消息,然后得到最后一行。

我已经尝试过这些方面的东西:

我不确定 send 是否真的发送过任何东西,但是一旦我添加了recv函数,程序就会挂起并且永远不会完成。

我的猜测是可执行文件的输入从未正确给出,因此它仍在等待。

我如何真正将消息传递给可执行文件,以便它可以继续前进并在最后一行发送给我?

0 投票
1 回答
26 浏览

python - 有没有办法将内存地址字符串转换为小端输入?

这件事可以很容易地通过编写一个构建我想要的字符串的函数来解决。但如果有一些我可以导入和使用的东西,它会更好一点,更简洁一点,似乎应该有。我有一个使用 python pwntools 的 python 脚本。

它从一个可执行文件中读取内存泄漏,该可执行文件由一个基本上如下所示的字符串组成:

我需要以小端形式将其注入程序中,就像这样:

所以这基本上就是我需要做的,将所有字符成对地反转。

有谁知道这样做的资源?也许在 pwntools 中,我很陌生?

0 投票
0 回答
37 浏览

python - 使用 send() 函数将数字发送到 __isoc99_scanf("%d", &number)

我正在尝试解决 ctf 平台中的 pwn 问题。该程序仅用于scanf()从标准输入中获取数字数组的索引和内容:

但是,当我使用send()函数向程序发送 4 字节整数时,scanf 函数似乎检测到 EOF(而不是 4 字节整数)并且 scanf 什么也没有。此外,由于EOF,以下scanf()拒绝获取数字。我的send()陈述和执行结果如下:

卓越的执行结果

我的问题是:如何解释这个异常问题,以及如何正确使用向该程序send()中的函数发送数字?__isoc99_scanf("%d", &number)

0 投票
0 回答
9 浏览

python - 如何使用带有子进程或 pwntools 的 python 将 fifo 重定向到标准输入?

例如,我试图“模仿”以下命令集的行为是 bash:

mkfifo named_pipe /challenge/embryoio_level103 <named_pipe & cat > named_pipe

在 Python 中,我尝试了以下命令:

#此时系统挂起...

我的想法是使用 subprocess.Popen 并将 stdout 重定向到 fw... 下一个打开的 named_pipe 进行读取并将其作为 cat 的输入(仍然使用 Popen)。

我知道这是一个简单(而且相当愚蠢)的例子,但我无法让它工作..

你将如何实现这样简单的场景?