ELF 실행 파일을 368바이트로 줄이는 방법
Creating Teensy ELF Executables for Linux (Or, "Size Is Everything")
소프트웨어 비대화에 지친 프로그래머를 위한 완벽한 해독제. 이 문서는 Linux x86 환경에서 ELF 실행 파일의 크기를 극한으로 줄이는 방법을 단계별로 설명한다. C 코드로 작성한 3998바이트의 프로그램을 시작으로, 어셈블리 재작성, _start 진입점 직접 정의, 시스템 콜 사용, 불필요한 섹션 제거 등을 통해 최종적으로 368바이트까지 줄이는 과정을 보여준다. 각 단계에서 ELF 파일 형식과 Linux 시스템 콜의 내부 동작을 상세히 설명한다.
우리 프로그램은 이제 7바이트밖에 안 된다. ELF 파일에 361바이트의 오버헤드가 정말 필요한가?
HN 토론
20- WalterGR
2부: https://www.muppetlabs.com/~breadbox/software/tiny/revisit.h...
몇 달 전에 여기서 논의되었습니다: https://news.ycombinator.com/item?id=48654411
3부: https://www.muppetlabs.com/~breadbox/software/tiny/somewhat....
- BruceEel
이건 정말 재미있네요. 리눅스에서는 해본 적 없지만, Windows PE EXE 파일도 비슷한 트릭이 가능합니다. 특히 Windows 95는 매우 관대했습니다. (오늘날 기준으로는 아주 원시적인) 헥사 에디터로 ".text" 섹션을 헤더 중간에서 시작하게 해봤는데, 짠! 작동하더군요. 일종의 계시였죠. 요즘 로더는 보안 때문에 좀 더 엄격할 것 같지만, 언제나 자신만의 로더를 만들 수는 있으니까요 :)
- davidwritesbugs
이 중 얼마나 많은 부분을 영리한 링커가 할 수 있을지 궁금하네요? 거기에는 많은 기술이 있지만, 우리 같은 사람들을 위해 LLM은 어떻게 할까요?