가장작은 실행파일크기는 어떻게 만들수있나요.

toy의 이미지

리눅스에서 가장작은 실행파일 크기는 몇바이트인지요...?
그리고...어떻게 만들어야 할까요.

hjlee의 이미지

이것이 찾으시는 것 같은데...
그리 간단하지만은 않습니다.

http://jikos.jikos.cz/teensy.html

toy의 이미지

감사합니다.
정말 빠르시네요 ^^

세벌의 이미지

0바이트

touch 0
chmod 700 0

./0 실행 해 보니 에러는 안 나던데... 이런 걸 원하시는 건 아니었나요? :)

Necromancer의 이미지

elf류의 바이너리 실행파일중에 제일 작은 거라면
아래 어셈 코드를 문법맞춰서 쓰시길. 문법은 각자 알아서 하시고 변수는 쓰지 마세요.

 mov eax,SYS_EXIT
 int 0x80

SYS_EXIT는 시스템 콜 번호 중 하나인데 값이 아마 1일겁니다.

Written By the Black Knight of Destruction

hb_kim의 이미지

Daniel Lee wrote:
이것이 찾으시는 것 같은데...
그리 간단하지만은 않습니다.

http://jikos.jikos.cz/teensy.html

링크 따라가다가 마주친 INTERCAL 언어 설명 보면서 웃느라 금요일 오후의 생산성이 완전 바닥으로 떨어졌네요. 상대성이론 풀이해놓은것도 재미있군요.

angpoo의 이미지

옛날 도스시절에 3바이트짜리던가 com파일을 만들어서
바이러스 감염시키며 바이러스 수집하던일이 생각나는군요.

elf format의 경우는 헤더크기만 해도 52 byte입니다. 64bit의 경우 64byte

/usr/include/elf.h
#define EI_NIDENT (16)

typedef struct
{
  unsigned char e_ident[EI_NIDENT];     /* Magic number and other info */
  Elf32_Half    e_type;                 /* Object file type */
  Elf32_Half    e_machine;              /* Architecture */
  Elf32_Word    e_version;              /* Object file version */
  Elf32_Addr    e_entry;                /* Entry point virtual address */
  Elf32_Off     e_phoff;                /* Program header table file offset */
  Elf32_Off     e_shoff;                /* Section header table file offset */
  Elf32_Word    e_flags;                /* Processor-specific flags */
  Elf32_Half    e_ehsize;               /* ELF header size in bytes */
  Elf32_Half    e_phentsize;            /* Program header table entry size */
  Elf32_Half    e_phnum;                /* Program header table entry count */
  Elf32_Half    e_shentsize;            /* Section header table entry size */ 
  Elf32_Half    e_shnum;                /* Section header table entry count */
  Elf32_Half    e_shstrndx;             /* Section header string table index */
} Elf32_Ehdr;
 
toy의 이미지

0바이트짜리를 말한것은 아니었습니다.
file 로 확인해보시죠.....
empty로 나오는걸 확인하실수있을겁니다.