问题标签 [buffer-overflow]

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 投票
6 回答
14550 浏览

php - 如何在 PHP/Python 中进行缓冲区溢出?

这是c中的一个示例:

0 投票
7 回答
767 浏览

c - C中的内存分配

我有一个关于内存分配顺序的问题。在下面的代码中,我在循环中分配了 4 个字符串。但是当我打印地址时,它们似乎没有一个接一个地分配......我做错了什么还是操作系统为防止可能的缓冲区溢出而实施的某种防御机制?(我使用 Windows Vista)。

谢谢你。

输出:

abcdefgh 9650064 9650128

祝你好运 9650068 9638624

穆利 9650072 9638680

斯塔姆 9650076 9638736

0 投票
0 回答
3392 浏览

sockets - Android SDK 安装错误 - “没有可用的缓冲区空间(已达到最大连接数?):recv 失败

我正在尝试设置我的环境来开发一个 android 应用程序,所以我下载了 SDK ( http://developer.android.com/sdk/installing.html )。解压文件并运行 SDK Setup.exe 后,会打开 Android SDK 和 AVD 管理器。在安装过程中,我收到一条错误消息,说明如下:

获取 URL https://dl-ssl.google.com/android/repository/repository.xml失败,原因:HTTPS SSL 错误。您可能希望在设置中通过 HTTP 强制下载。

然后我进入设置选项卡并激活复选框,其中状态:

强制 https://... 使用 http:// 获取源

然后点击保存并应用。屏幕上会闪烁一个框,这似乎是上一个显示错误的框,除了这一次,进度条在大约一秒钟内从 0 加速到 100%,然后消失。所以点击 FORCE 选项似乎已经解决了这个问题。

现在,我单击 AVAILABLE PACKAGES 选项卡,Android 管理器实际上在这里下载所有可用资源,包括每个“SDK Platform Android Vx.x”和每个“Google Inc. 的 Google API,API x,修订版 x”

每个复选框都有绿色复选标记,表示我需要下载每个更新。所以我点击安装选择。

确认页面出现。再次,我单击安装接受。

安装档案框弹出,这就是我卡住的地方。我收到以下错误,我不知道从这里做什么..

下载 Android SDK,API 7,修订版 1 的文档
没有可用的缓冲区空间(达到最大连接数?):recv 失败
下载 SDK 平台 Android 2.1,API 7,修订版 1
没有可用的缓冲区空间(达到最大连接数?):recv 失败
跳过' Google Inc. 的 Google API,Android API 7,修订版 1';它取决于未安装的“SDK Platform Android 2.1, API 7, revision 1”。
下载 Google Inc. 的 Google API,Android API 7,修订版 1
没有可用的缓冲区空间(达到最大连接数?):recv failed
Downloading SDK Platform Android 2.0.1,API 6,修订版 1
没有可用的缓冲区空间(达到最大连接数?) : 接收失败
跳过“Google Inc. 的 Google API,Android API 6,修订版 1”;它取决于未安装的“SDK 平台 Android 2.0.1,API 6,修订版 1”。
下载 Google Inc. 的 Google API,Android API 6,修订版 1
没有可用的缓冲区空间(达到最大连接数?):recv 失败
下载 SDK 平台 Android 2.0,API 5,修订版 1
没有可用的缓冲区空间(达到最大连接数?):recv
跳过“Google Inc. 的 Google API,Android API 5,修订版 1”失败;它取决于未安装的“SDK Platform Android 2.0, API 5, revision 1”。
下载 Google Inc. 的 Google API,Android API 5,修订版 1
没有可用的缓冲区空间(达到最大连接数?):recv 失败
下载 SDK 平台 Android 1.6,API 4,修订版 2
没有可用的缓冲区空间(达到最大连接数?):recv failed
跳过“Google Inc. 的 Google API,Android API 4,修订版 2”;它取决于未安装的“SDK Platform Android 1.6, API 4, revision 2”。
下载 Google Inc. 的 Google API,Android API 4,修订版 2
没有可用的缓冲区空间(达到最大连接数?):recv 失败
下载 SDK 平台 Android 1.5,API 3,修订版 3
没有可用的缓冲区空间(达到最大连接数?):recv
跳过“Google Inc. 的 Google API,Android API 3,修订版 3”失败;它取决于未安装的“SDK 平台 Android 1.5,API 3,修订版 3”。
下载 Google Inc. 的 Google API,Android API 3,修订版 3
没有可用的缓冲区空间(达到最大连接数?):recv 失败
下载 SDK 平台 Android 1.1,API 2,修订版 1
没有可用的缓冲区空间(达到最大连接数?):recv
下载 USB 驱动程序包失败,修订版 3
没有可用的缓冲区空间(达到最大连接数?):recv 失败

我在“没有可用的缓冲区空间(达到最大连接数?)”上进行了一些谷歌搜索,显然这是一个套接字问题,通常在调用数据库查询并且有大量 TCP 连接时发生。

但除此之外,我完全陷入困境。在我的问题上找不到与 Android SDK 安装有关的任何内容,我真的不知道该去哪里继续安装 SDK。

先感谢您!


任何熟悉安装 Android sdk 的人,是否有另一种下载 SDK 组件的方法,然后使用 Android SDK 管理实用程序?

显然,我的系统与这位经理相处得并不好,但我完全被困在这里,真的很想继续前进..

再次感谢..

[截图] 可供下载的软件包:http: //i45.tinypic.com/9igs48.jpg

--

安装错误:http: //i50.tinypic.com/260fxox.jpg

0 投票
1 回答
1758 浏览

sockets - 是否可以在不使用 Android SDK 管理实用程序的情况下下载 Android SDK 组件?

在安装我的 Android SDK 的过程中,我在经理出去下载 API 和 SDK 的所有修订版的过程中遇到了困难。

这可能是由于调用数据库查询并且有大量 TCP 连接时通常发生的套接字问题...根据谷歌搜索我的错误(没有可用的缓冲区空间(达到最大连接数?):recv failed )。 ..

所以我只需要知道除了使用 Android 下载管理器之外,是否有其他方法可以使用以下 Android SDK 组件下载/更新我的计算机:

下载 Android SDK,API 7,修订版 1 的文档
没有可用的缓冲区空间(达到最大连接数?):recv 失败
下载 SDK 平台 Android 2.1,API 7,修订版 1
没有可用的缓冲区空间(达到最大连接数?):recv 失败
跳过' Google Inc. 的 Google API,Android API 7,修订版 1';它取决于未安装的“SDK Platform Android 2.1, API 7, revision 1”。
下载 Google Inc. 的 Google API,Android API 7,修订版 1
没有可用的缓冲区空间(达到最大连接数?):recv failed
Downloading SDK Platform Android 2.0.1,API 6,修订版 1
没有可用的缓冲区空间(达到最大连接数?) : 接收失败
跳过“Google Inc. 的 Google API,Android API 6,修订版 1”;它取决于未安装的“SDK 平台 Android 2.0.1,API 6,修订版 1”。
下载 Google Inc. 的 Google API,Android API 6,修订版 1
没有可用的缓冲区空间(达到最大连接数?):recv 失败
下载 SDK 平台 Android 2.0,API 5,修订版 1
没有可用的缓冲区空间(达到最大连接数?):recv
跳过“Google Inc. 的 Google API,Android API 5,修订版 1”失败;它取决于未安装的“SDK Platform Android 2.0, API 5, revision 1”。
下载 Google Inc. 的 Google API,Android API 5,修订版 1
没有可用的缓冲区空间(达到最大连接数?):recv 失败
下载 SDK 平台 Android 1.6,API 4,修订版 2
没有可用的缓冲区空间(达到最大连接数?):recv failed
跳过“Google Inc. 的 Google API,Android API 4,修订版 2”;它取决于未安装的“SDK Platform Android 1.6, API 4, revision 2”。
下载 Google Inc. 的 Google API,Android API 4,修订版 2
没有可用的缓冲区空间(达到最大连接数?):recv 失败
下载 SDK 平台 Android 1.5,API 3,修订版 3
没有可用的缓冲区空间(达到最大连接数?):recv
跳过“Google Inc. 的 Google API,Android API 3,修订版 3”失败;它取决于未安装的“SDK 平台 Android 1.5,API 3,修订版 3”。
下载 Google Inc. 的 Google API,Android API 3,修订版 3
没有可用的缓冲区空间(达到最大连接数?):recv 失败
下载 SDK 平台 Android 1.1,API 2,修订版 1
没有可用的缓冲区空间(达到最大连接数?):recv
下载 USB 驱动程序包失败,修订版 3
没有可用的缓冲区空间(达到最大连接数?):recv 失败

谢谢你。

0 投票
2 回答
583 浏览

c - 如何从带有反馈的缓冲区中读取,所以缓冲区不会溢出?

我有这个代码

它从缓冲区读取 BUFFER_LEN 浮点数,并返回它实际读取的浮点数。“handle”告诉 sf_rad_float 缓冲区有多大。

例如,如果缓冲区包含 5 个浮点数,并且 BUFFER_LEN 为 3,readcount 将首先返回 3,下一次返回 2,while 循环将退出。

我想有一个做同样的功能。

更新

经过大量编码,我认为这是解决方案。

下次调用 copy_buffer() 时,dest 包含 3,4。再次运行copy_buffer()只会复制值“5”。所以我认为它现在有效。

虽然它不是很漂亮,但我在int src_pos = 0;外面copy_buffer()

如果我可以像 sndfile 那样给出copy_buffer()一个唯一的句柄而不是,那就更好了。&src_pos

有谁知道怎么做?

0 投票
8 回答
2009 浏览

c - C中的字符串溢出检测

我们正在使用 DevPartners boundchecker 来检测内存泄漏问题。它做得很好,虽然它没有发现字符串溢出,如下所示

问题 1:他们有什么办法,我可以让 BoundsChecker 检测到这一点吗?

问题 2:他们是否有任何其他工具可以检测到此类问题?

0 投票
5 回答
10254 浏览

c - 如何调用缓冲区溢出?

我有一个家庭作业要求我调用一个函数而不显式调用它,使用缓冲区溢出。代码基本上是这样的:

虽然我不确定如何进行。我考虑过更改程序计数器的返回地址,以便它直接转到 g() 的地址,但我不确定如何访问它。无论如何,提示会很棒。

0 投票
6 回答
132932 浏览

c - 如何关闭 gcc 编译器优化以启用缓冲区溢出

我正在处理一个需要禁用编译器优化保护才能工作的作业问题。我在 ubuntu linux 上使用 gcc 4.4.1,但不知道哪些标志是正确的。我意识到它依赖于架构 - 我的机器运行 w/ 32 位英特尔处理器。

谢谢。

0 投票
3 回答
494 浏览

php - 导致 PHP 崩溃

PHP 如何导致内存泄漏、缓冲区溢出、堆栈溢出和任何其他此类错误?PHP甚至会导致这样的错误吗?

0 投票
3 回答
2954 浏览

c - 对于缓冲区溢出,使用 pthread 时的堆栈地址是什么?

我正在学习计算机安全课程,并且有一个额外的学分分配将可执行代码插入缓冲区溢出。我有我正在尝试操作的目标程序的 c 源代码,并且我已经到了可以成功覆盖当前函数堆栈帧的 eip 的地步。但是,我总是遇到分段错误,因为我提供的地址总是错误的。问题是当前函数位于 pthread 内部,因此,堆栈的地址似乎总是在程序的不同运行之间发生变化。是否有任何方法可以在 pthread 中查找堆栈地址(或用于估计 pthread 中的堆栈地址)?(注意:pthread_create 的第二个参数为空,所以我们没有手动分配堆栈地址)