Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
libunwind_CVE-2015-3239 — 다중 아키텍처 라이브러리로, 프로그램 호출 스택을 추적하여 Linux, FreeBSD, HP-UX 시스템에서 저수준 디버깅, 충돌 분석 및 보안 연구를 가능하게 합니다. | Kitploit
도구/GitHubGitHub/renukaselvar/libunwind_cve-2015-3239
Memory ForensicsVulnerability AnalysisExploitationReverse EngineeringDebuggersBinary Analysis
GitHubrenukaselvar/libunwind_cve-2015-3239

libunwind_CVE-2015-3239

다중 아키텍처 라이브러리로, 프로그램 호출 스택을 추적하여 Linux, FreeBSD, HP-UX 시스템에서 저수준 디버깅, 충돌 분석 및 보안 연구를 가능하게 합니다.

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기
1년 전아직 검토되지 않음

-- mode: Outline --

이것은 unwind 라이브러리 버전 1.0입니다. 이 라이브러리는 다음과 같은 여러 아키텍처/운영체제 조합을 지원합니다:

Linux/x86-64: 잘 작동합니다. Linux/x86: 잘 작동합니다. Linux/ARM: 잘 작동합니다. Linux/IA-64: 완전히 테스트 및 지원됩니다. Linux/PARISC: 잘 작동하지만, C 라이브러리에 unwind 정보가 없습니다. HP-UX/IA-64: 대부분 작동하지만 몇 가지 심각한 제한이 있는 것으로 알려져 있습니다. Linux/AArch64: 새로 추가됨. Linux/PPC64: 새로 추가됨. Linux/SuperH: 새로 추가됨. FreeBSD/i386: 새로 추가됨. FreeBSD/x86-64: 새로 추가됨 (FreeBSD 아키텍처는 amd64로 알려짐).

  • 일반 빌드 지침

일반적으로 이 라이브러리는 다음 명령어로 빌드 및 설치할 수 있습니다:

root@kitploit:~
$ autoreconf -i # Needed only for building from git. Depends on 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"

프로세서가 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에서 빌드하기

일반 빌드 지침이 적용됩니다. 여러 테스트를 빌드하고 실행하려면 devel/libexecinfo로 포트에서 사용 가능한 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에서 실패할 것으로 예상됩니다:

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에서 예상 결과

HP-UX에서는 "make check"가 현재 지원되지 않습니다. 실행해 볼 수는 있지만 대부분의 테스트가 실패하고 일부는 종료되지 않을 수 있습니다. 현재 작동하는 것으로 알려진 유일한 테스트 프로그램은 다음과 같습니다:

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
도구 다운로드