처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
테크 뉴스
Hacker News 2026.06.22 41

syscall을 가로채는 가장 빠른 방법, 왜 인텔에선 막혔나

Hacker News 원문 보기

리눅스에서 프로그램이 호출하는 시스템 콜을 가로채 계측(instrumentation)하려면 보통 ptrace나 seccomp를 씁니다. 하지만 이 방식은 커널을 오가는 트랩 비용이 커서 호출이 잦을수록 성능이 무너집니다. 그래서 저자는 더 빠른 길을 시도합니다. 실행 파일 안의 syscall 명령어 자체를 바이너리 재작성으로 바꿔, 커널 트랩 대신 사용자 공간의 핸들러로 직접 점프시키는 것이죠. 문제는 x86-64의 syscall 명령어가 단 2바이트(0F 05)라는 점입니다. 보통의 call이나 jmp는 5바이트 이상이라 2바이트 자리에 끼워 넣을 수 없습니다. 여기서 등장하는 묘수가 메모리 간접 호출(memory-indirect call)입니다. 짧은 인코딩으로 메모리에 저장된 주소를 통해 핸들러를 부르려는 시도죠. 하지만 제목의 'negative result'가 말하듯, 인텔 CPU의 명령어 인코딩과 길이 제약 탓에 이 접근은 깔끔하게 들어맞지 않았습니다. 흥미로운 건 실패 그 자체가 아니라, 명령어 인코딩과 원자적 패치라는 저수준 제약을 파고드는 사고 과정입니다. 시스템 콜 후킹이나 샌드박싱을 고민하는 엔지니어라면 한 번쯤 따라가 볼 만한 기록입니다.

이 뉴스가 유용했나요?

TTJ 코딩클래스 정규반

월급 외 수입,
코딩으로 만들 수 있습니다

17가지 수익 모델을 직접 실습하고, 1,300만원 상당의 자동화 도구와 소스코드를 받아가세요.

144+실전 강의
17개수익 모델
4.9수강생 평점
정규반 자세히 보기

"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"

실제 수강생 후기
  • 비전공자도 6개월이면 첫 수익
  • 20년 경력 개발자 직강
  • 자동화 프로그램 + 소스코드 제공

매일 AI·개발 뉴스를 받아보세요

주요 테크 뉴스를 매일 아침 이메일로 전해드립니다.

스팸 없이, 언제든 구독 취소 가능합니다.