Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/renukaselvar/libunwind_cve-2015-3239_after
内存取证漏洞分析漏洞利用逆向工程调试器二进制分析
GitHubrenukaselvar/libunwind_cve-2015-3239_after

libunwind_CVE-2015-3239_After

一个多架构库,用于展开程序调用栈,支持在 Linux、FreeBSD 和 HP-UX 系统上进行底层调试、崩溃分析和安全研究。

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库
1年前尚未审核

-- mode: Outline --

这是 unwind 库的 1.0 版本。该库支持以下多种架构/操作系统组合:

Linux/x86-64: 运行良好。 Linux/x86: 运行良好。 Linux/ARM: 运行良好。 Linux/IA-64: 经过全面测试并受支持。 Linux/PARISC: 运行良好,但 C 库缺少 unwind-info。 HP-UX/IA-64: 大部分功能正常,但已知存在一些严重限制。 Linux/AArch64: 新增。 Linux/PPC64: 新增。 Linux/SuperH: 新增。 FreeBSD/i386: 新增。 FreeBSD/x86-64: 新增(FreeBSD 架构称为 amd64)。

  • 通用构建说明

通常,可以通过以下命令构建并安装此库:

root@kitploit:~
$ autoreconf -i # 仅从 git 构建时需要。依赖 libtool。
$ ./configure
$ make
$ make install prefix=PREFIX

其中 PREFIX 是安装前缀。默认使用前缀 /usr/local,因此 libunwind.a 安装至 /usr/local/lib,unwind.h 安装至 /usr/local/include。对于测试,你可能希望使用 /usr/local 作为前缀。

  • 使用 Intel 编译器构建

** 版本 8 及更高版本

从版本 8 开始,IA-64 Intel 编译器的首选名称为 "icc"(与 x86 上的名称相同)。因此,configure 命令应如下所示:

root@kitploit:~
$ ./configure CC=icc CFLAGS="-g -O3 -ip" CXX=icc CCAS=gcc CCASFLAGS=-g \
	LDFLAGS="-L$PWD/src/.libs"
  • 在 HP-UX 上构建

目前,libunwind 必须在 HP-UX 上使用 GCC 构建。

libunwind 应在 HP-UX 上按如下方式配置和安装:

root@kitploit:~
$ ./configure CFLAGS="-g -O2 -mlp64" CXXFLAGS="-g -O2 -mlp64"

注意事项:当前不支持对 32 位(ILP32)二进制文件的展开。

** 旧版本 GCC 的解决方法

GCC v3.0 和 GCC v3.2 附带了一个有问题的 sys/types.h 版本。解决方法是在运行 "configure" 之前执行以下命令:

root@kitploit:~
$ mkdir $top_dir/include/sys
$ cp /usr/include/sys/types.h $top_dir/include/sys

GCC v3.3.2 及更高版本已修复此问题,无需此解决方法。

  • 为 PowerPC64 / Linux 构建

要为 power64 构建,应使用:

$ ./configure CFLAGS="-g -O2 -m64" CXXFLAGS="-g -O2 -m64"

如果你的 Power 支持 altivec 寄存器: $ ./configure CFLAGS="-g -O2 -m64 -maltivec" CXXFLAGS="-g -O2 -m64 -maltivec"

检查处理器是否支持向量寄存器(altivec): cat /proc/cpuinfo | grep altivec 并且应该显示类似如下内容: cpu : PPC970, altivec supported

如果 libunwind 似乎无法正常工作(回溯失败),尝试使用 -O0(无优化)进行编译。某些编译器问题取决于你的 gcc 版本。

  • 在 FreeBSD 上构建

通用构建说明适用。要构建并执行多个测试,你需要 libexecinfo 库,该库可在 ports 中的 devel/libexecinfo 获得。

该端口的开发工作是在 FreeBSD 8.0-STABLE 上完成的。该库使用系统编译器(gcc 4.2.1 的修改版本)以及 gcc 4.4.3 构建。

  • 回归测试

构建库后,你可以使用以下命令运行一组回归测试:

root@kitploit:~
$ make check

** IA-64 Linux 上的预期结果

除非你安装了非常新的 C 库和编译器,否则目前预计以下测试在 IA-64 Linux 上会失败:

root@kitploit:~
Gtest-init		(从 glibc-2.3.x/gcc-3.4 开始应通过)
Ltest-init		(从 glibc-2.3.x/gcc-3.4 开始应通过)
test-ptrace		(从 glibc-2.3.x/gcc-3.4 开始应通过)
run-ia64-test-dyn1	(从 glibc-2.3.x 开始应通过)

这并不意味着 libunwind 不能与较旧的编译器或 C 库一起使用,只是对于某些极端情况,展开将失败。由于它们是极端情况,应用程序不太可能触发它们。

注意:如果在 Gia64-test-nat 和 Lia64-test-nat 中遇到大量错误,几乎肯定表明汇编器版本过旧。GNU 汇编器曾错误地编码了前栈指针相对偏移量。此错误已于 2004 年 9 月 21 日修复,因此任何更新版本的汇编器均无问题。

** x86 Linux 上的预期结果

以下测试预计在 x86 Linux 上会失败:

root@kitploit:~
Gtest-resume-sig	(无法获取 SIGUSR2)
Ltest-resume-sig	(同样)
Gtest-dyn1		(尚不支持动态展开信息)
Ltest-dyn1		(尚不支持动态展开信息)
test-setjmp		(longjmp() 尚未实现)
run-check-namespace	(尚无 _Ux86_getcontext)
test-ptrace

** x86-64 Linux 上的预期结果

以下测试预计在 x86-64 Linux 上会失败:

root@kitploit:~
Gtest-dyn1		(尚不支持动态展开信息)
Ltest-dyn1		(尚不支持动态展开信息)
Gtest-init(参见 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18743)
Ltest-init		(同样)
test-async-sig		(由于错误的展开信息导致崩溃?)
test-setjmp		(longjmp() 尚未实现)
run-check-namespace	(尚无 _Ux86_64_getcontext)
run-ptrace-mapper	(??? 需要调查)
run-ptrace-misc(参见 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18748
		 和 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18749)

** PARISC Linux 上的预期结果

注意事项:在 PA-RISC Linux 上需要 GCC v3.4 或更新版本。早期版本的编译器无法生成展开所需的异常处理程序头(GNU_EH_FRAME)。

以下测试预计在 x86-64 Linux 上会失败(应为 PARISC?原文如此,保持):

root@kitploit:~
Gtest-bt   (由于缺少展开信息,回溯在 kill() 处被截断)
Ltest-bt   (同样)
Gtest-resume-sig  (Gresume.c:my_rt_sigreturn() 存在某种错误)
Ltest-resume-sig  (同样)
Gtest-init (同样)
Ltest-init (同样)
Gtest-dyn1 (尚不支持动态展开信息)
Ltest-dyn1 (尚不支持动态展开信息)
test-setjmp		(longjmp() 尚未实现)
run-check-namespace	(工具链尚不支持 HIDDEN)

** HP-UX 上的预期结果

"make check" 目前不支持 HP-UX。你可以尝试运行它,但大多数测试都会失败(有些可能无法终止)。目前已知能工作的测试程序只有:

root@kitploit:~
 tests/bt
 tests/Gperf-simple
 tests/test-proc-info
 tests/test-static-link
 tests/Gtest-init
 tests/Ltest-init
 tests/Gtest-resume-sig
 tests/Ltest-resume-sig

** PPC64 Linux 上的预期结果

"make check" 运行时,失败的测试数应不超过 24 中的 10 个。

  • 性能测试

此发行版包含几个简单的性能测试,可以大致了解各种 libunwind 操作的基本开销。构建库后,你可以使用以下命令运行这些测试:

$ cd tests $ make perf

  • 联系开发者

所有关于此库的问题请直接发送至:

root@kitploit:~
[email protected]

你可以通过向 [email protected] 发送邮件,并在正文中写入以下内容来实现:

root@kitploit:~
subscribe libunwind-devel

或者你也可以通过以下网页界面订阅并管理你的订阅:

root@kitploit:~
https://savannah.nongnu.org/mail/?group=libunwind
下载工具