elf

재배치 주소 계산 빈도가 매우 낮습니다.
elf

재배치 주소 계산 빈도가 매우 낮습니다.

이사에 대해 배우고 있어요ELF 참조그리고이 블로그, 그런데 이전 주소를 계산할 수 없습니다. 유형의 두 개의 파일 A이 있고 연결 중에 이름이 지정된 부분을 병합하려고 한다고 가정합니다. 이러한 부분에는 파일 에 있는 기호와 파일 에 있는 기호가 포함됩니다. 재배치 항목과 재배치 오프셋이 있고 링커가 재배치 주소 충돌을 피하는 방법을 이해하지 못하는 경우 : 컴파일하는 동안 이러한 파일이 서로 알려지지 않기 때문에 이러한 오프셋이 동일할 수 있다고 가정합니다.BET_RELSSAASBBA.elfB....

Admin

aarch64 ELF 실행 파일이 x86_64 시스템에서 실행되는 이유는 무엇입니까?
elf

aarch64 ELF 실행 파일이 x86_64 시스템에서 실행되는 이유는 무엇입니까?

저는 Raspberry Pi 3에서 간단한 "Hello World" C 프로그램을 컴파일하여 AMD64 노트북으로 전송했습니다. 호기심에 실행했는데 실행될 것이라고는 예상하지 못했지만 다음과 같이 실행되었습니다. $ uname -a Linux 15ud490-gx76k 6.5.0-25-generic #25~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Feb 20 16:09:15 UTC 2 x86_64 x86_64 x86_64 GNU/Linux $ file hello64 hel...

Admin

Linux가 $ORIGIN을 사용하여 로더(통역사라고도 함)를 찾을 수 없는 이유
elf

Linux가 $ORIGIN을 사용하여 로더(통역사라고도 함)를 찾을 수 없는 이유

Linux에서 바이너리를 컴파일할 때 공유 객체를 찾을 위치를 동적 로더에게 알려주는 RPATH라는 것이 있습니다. RPATH에 대해 제가 좋아하는 점은 이 속성을 사용하여 .so원하는 경우 $ORIGIN로더가 실행 파일 경로에 상대적인 경로에서 해당 파일을 검색하는 특정 파일을 제공 할 수 있다는 것입니다. 따라서 내 바이너리에 RPATH가 있는 경우 $ORIGIN/.로더는 해당 디렉터리에서 검색하므로 소프트웨어 배포에 유용합니다. 문제가 있습니다. 로더 자체를 하드코딩해야 하므로 모든 종속성을 배...

Admin

ELF에서 두 부분의 오프셋이 동일한 이유는 무엇입니까?
elf

ELF에서 두 부분의 오프셋이 동일한 이유는 무엇입니까?

최근에 저는 Linux에서 약간 의심스러운 ELF 파일 두 개를 발견했습니다. "/bin/ls" 파일을 예로 들어 readelf를 실행하면 다음을 볼 수 있습니다. 오프셋 0x213b8에서 시작하는 27개의 섹션 헤더가 있습니다. Section Headers: [Nr] Name Type Address Off Size ES Flg Lk Inf Al [ 0] NULL 00000...

Admin

XCOFF 바이너리 편집기
elf

XCOFF 바이너리 편집기

빌드된 XCOFF 파일을 편집하는 도구가 있습니까? XCOFF와 링크할 때 -bipath 플래그가 수행하는 것처럼 빌드 후 일부 종속성에 대한 경로를 지정하고 싶습니다. 나는 AIX와 XCOFF만을 위한 patchelf와 같은 것을 찾고 있습니다. 내가 찾은https://www.ibm.com/docs/en/aix/7.2?topic=l-ldedit-command, 하지만 할 수 없을 것 같습니다 ...

Admin

일부 안드로이드 엘프 파일에 인터프리터 경로가 있는 이유는 무엇입니까?
elf

일부 안드로이드 엘프 파일에 인터프리터 경로가 있는 이유는 무엇입니까?

Android의 elf 파일 형식을 배우고 있는데 일부 elf 파일이 프로그램 헤더의 인터프리터 경로를 통해 로더를 지정할 수 있다는 것을 발견했습니다. 그런데 제가 안드로이드 스튜디오를 통해 직접 작성한 elf 테스트 파일에는 이 속성이 없습니다. 그 이유는 무엇입니까? 인터프리터 경로가 있는 elf 파일에서 자체 로더 링커를 지정하여 더 빠른 elf 디버깅 시간을 얻을 수 있지만 이제는 많은 파일에 인터프리터 경로가 없습니다. 다른 옵션이 있나요? ...

Admin

ld-linux.so를 사용하여 프로그램을 실행하고 patchelf를 사용하여 인터프리터를 변경할 때 다른 결과가 나타나는 이유는 무엇입니까?
elf

ld-linux.so를 사용하여 프로그램을 실행하고 patchelf를 사용하여 인터프리터를 변경할 때 다른 결과가 나타나는 이유는 무엇입니까?

ld + --library-path를 사용하여 프로그램을 실행하는 것과 patchelf를 사용하여 로더를 변경하는 것의 차이점은 무엇입니까? 이를 설명하기 위해 다음은 있는 그대로 실행되지 않는 바이너리입니다. 아마도 최신 버전의 라이브러리가 없기 때문일 것입니다. $ ~/DOWNLOADS/APPS/magick /tmp/.mount_magickXiWzgy/usr/bin/magick: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (...

Admin

32비트 프로그램이 3GB 주소 공간 모드로 로드되는 이유는 무엇입니까?
elf

32비트 프로그램이 3GB 주소 공간 모드로 로드되는 이유는 무엇입니까?

Manjaro Linux(커널 6.6.8)가 ADDR_LIMIT_3GB 세트로 32비트 실행 파일을 로드하는 것을 확인했습니다. 또는 다음과 같습니다: setarch -B --3g. 그러나 이전에는 그렇지 않았고 32비트 프로그램이 --4G 모드에서 시작되었다는 것을 분명히 기억합니다. 커널에 하드코딩되어 있나요? 아니면 구성 가능한 동작인가요? 어떻게 바꿀 수 있나요? ...

Admin

ELF 실행 파일에 인터프리터 경로가 하드코딩되어 있는 이유는 무엇입니까?
elf

ELF 실행 파일에 인터프리터 경로가 하드코딩되어 있는 이유는 무엇입니까?

(이것은 불만 사항이 아닌 일반적인 질문입니다. 이에 대한 좋은 설명이 있을 수 있습니다.) 컴파일된 실행 파일의 경우 운영 체제가 결정하도록 하는 대신 인터프리터 경로를 바이너리로 하드코딩하는 이유는 무엇입니까? 즉, 인터프리터는 실행 파일의 형식(예: ELF) 및 아키텍처(x86-64)에서 파생되어서는 안 됩니다. 통역사 경로는 다음을 실행할 때 볼 수 있습니다 file /path/to/some-executable. some-executable: ELF 64-bit LSB executable, x...

Admin

FreeBSD 커널을 ELF 형식으로 부팅해야 할까요, 아니면 zImage 형식으로 부팅해야 할까요? 어떻게?
elf

FreeBSD 커널을 ELF 형식으로 부팅해야 할까요, 아니면 zImage 형식으로 부팅해야 할까요? 어떻게?

방금 Arm(32비트) Chromebook에서 Debian 12를 가상화했습니다. 호스트/dom0으로는 Devuan 5를 선택했고 게스트/domU로는 Debian 12를 선택했습니다. 그것은 아주 잘 작동합니다. 하지만 우리의 목표는 다릅니다. 우리는 FreeBSD를 domU로 가상화하고 싶습니다. FreeBSD arm 게스트를 위해 작동하는 Xen PV 네트워크 드라이버를 제공할 수 있습니까? 저는 Julien Grall이 Xen 드라이버를 Arm의 FreeBSD로 포팅했다는 사실을 발견했습니다. ...

Admin

"H"/72/0x48이 실행 파일에서 두 번째로 흔한 바이트인 이유는 무엇입니까?
elf

"H"/72/0x48이 실행 파일에서 두 번째로 흔한 바이트인 이유는 무엇입니까?

(이 질문이 72점이라면 투표하지 마세요!) 나는 이것을 실행했습니다 : cat /usr/bin/* | perl -ne 'map {$a{$_}++} split//; END{print map { "$a{$_}\t$_\n" } keys %a}' | grep --text . | sort -n | plotpipe --log y {1} 그리고 이것을 얻었습니다 : (대수적인 y축을 사용하더라도 여전히 기하급수적으로 보입니다! 위쪽과 아래쪽 사이의 거리가 100배 이상 더 큽니다.) 숫자를 살펴보세요...

Admin

ELF 세그먼트 간 매핑 및 RWX 권한
elf

ELF 세그먼트 간 매핑 및 RWX 권한

나는 gcc를 사용하여 Linux에 구축된 고전적인 "Hello world" C 프로그램을 가지고 있습니다. 빌드된 바이너리의 세그먼트와 섹션은 다음과 같습니다. Program Headers: Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align PHDR 0x000040 0x0000000000000040 0x0000000000000040 0x0001f8 0x0001f8 ...

Admin

POWER CPU에서 ppc64le Linux 커널을 부팅할 때 리틀 엔디안 상태를 설정하는 것은 무엇입니까?
elf

POWER CPU에서 ppc64le Linux 커널을 부팅할 때 리틀 엔디안 상태를 설정하는 것은 무엇입니까?

ppc64le Linux에 대해 조사해 왔지만 POWER CPU가 리틀 엔디안으로 어떻게 설정되어 있는지 잘 모르겠습니다. 내가 이해한 바에 따르면, 머신과 CPU 상태는 펌웨어에서 기본적으로 빅엔디안 모드로 실행됩니다. 그러나 커널을 부팅할 때 예상되는 엔디안으로 전환하는 책임은 무엇입니까? 자세한 내용을 다루지 않고 POWER/PPC에서 커널을 부팅하는 방법은 다음과 같이 요약됩니다. 펌웨어는 기계가 기계 상태를 재설정하고 재설정할 때 실행됩니다. 펌웨어는 부트로더를 로드하고 제어를 전달합니다....

Admin

auto-patchelf는 종속성 libQt5SerialPort.so.5를 충족할 수 없습니다.
elf

auto-patchelf는 종속성 libQt5SerialPort.so.5를 충족할 수 없습니다.

NixOS에서 Qt Design Studio 2.3.1 Community를 실행하려고 합니다. 내 nix 파생 코드: flake.nix: { description = "Qt Design Studio"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs"; flake-utils.url = "github:numtide/flake-utils"; }; outputs = { self, nixpkgs, flake-utils }: flake...

Admin

동일한 바이너리와 다른 권한, 어떻게 가능합니까?
elf

동일한 바이너리와 다른 권한, 어떻게 가능합니까?

pwn ctf를 하다가 이상한 상황을 발견했습니다. ctf에는 바이너리와 서버가 포함됩니다. 주어진 elf 64 비트가 있습니다. checksec 출력(동일한 로컬 및 서버) Arch: amd64-64-little RELRO: Partial RELRO Stack: No canary found NX: NX disabled PIE: No PIE (0x400000) RWX: Has RWX segments 여기에서 우리는 RWX 세그먼트는 있지만 NX 비트는 ...

Admin