elf

일부 안드로이드 엘프 파일에 인터프리터 경로가 있는 이유는 무엇입니까?
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

편집하다
elf

편집하다

다른 유사한 질문이 있는 것을 보았지만 거기에 대한 답변은 나에게 적합하지 않았습니다. 제가 다운받은거 사용중인데Julia 1.9.2(Linux, x86-64, glibc) 사전 빌드된 바이너리바이너리를 실행하려고 시도했지만 다음 오류가 발생했습니다. bash: ./julia: cannot execute: required file not found 내 컴퓨터에서 다른 모든 바이너리를 실행할 수 있습니다. 내 이해는 bash가 파일을 실행하는 데 필요한 인터프리터를 찾을 수 없기 때문이라는 것입니다. ...

Admin

실행 가능한 바이너리를 동적 라이브러리로 변환
elf

실행 가능한 바이너리를 동적 라이브러리로 변환

기능적으로 바이너리(예: 셸에서 실행될 수 있는 ELF 바이너리)는 특정 대상 ABI의 기계어 코드를 바이너리 형식으로 포함하는 파일이라는 점에서 라이브러리와 다소 유사합니다. 차이점은 다음과 같습니다. 실행 가능한 바이너리에는 잘 정의된 main()서명(매개변수 및 반환 값)이 있는 잘 정의된 진입점(C의 경우)이 있는 반면, 동적 라이브러리에는 임의의 이름과 서명이 있는 진입점이 무제한 있을 수 있으며 각 진입점을 알아야 합니다. 이용을 원하는 발신자에게. 실행 가능한 바이너리는 새로 생성된 자...

Admin

컴파일된 elf 파일이 다른 명령을 실행하도록 만드는 방법
elf

컴파일된 elf 파일이 다른 명령을 실행하도록 만드는 방법

ELF 파일이 실행될 때 명령이 실행되어야 합니다. 예: /usr/bin/file이 컴파일된 ELF 바이너리를 실행하고 다음 명령을 실행합니다.touch /tmp/file_is_executed 가능하다면 코드를 다시 컴파일하고 소스 파일에 원하는 명령을 추가하겠습니다. 하지만 소스코드가 없어서 컴파일된 버전을 처리해야 합니다. ...

Admin