Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
llvm-jutsu — 손가락 세기를 통한 LLM 방지 난독화 | Kitploit
도구/GitHubGitHub/thebabush/llvm-jutsu
Static AnalysisCode AnalysisReverse EngineeringBinary AnalysisAI SecurityAdversarial Attack
GitHubthebabush/llvm-jutsu

llvm-jutsu

손가락 세기를 통한 LLM 방지 난독화

저장소 보기
2391458개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

llvm-jutsu: 안티-LLM 난독화

이것은 32비트 정수입니다

0xDEADBEEF가 손으로 인코딩됨

문제

2025년입니다. 완벽한 라이선스 검사를 만드는 데 몇 주를 쏟았습니다. 불투명 술어, 제어 흐름 평탄화, MBA 표현식 등 책에 있는 모든 트릭을 사용했습니다. 배포했습니다. 몇 시간 안에 어떤 사람이 바이너리를 클로드에 붙여넣고 "라이선스 키가 뭐야?"라고 묻습니다. 그러면 모델이 그냥... 알려줍니다.

기계가 이겼습니다. 그렇지 않나요?

쿠지인의 고대 기술

수 세기 동안 닌자들은 수인을 사용하여 차크라를 흐르게 하고 술법을 사용해 왔습니다. 두루마리가 알려주지 않는 것은 이 손 모양이 기계로부터 비밀을 보호하는 힘을 가지고 있다는 것입니다.

llvm-jutsu는 정수 상수를 손 제스처로 대체하는 LLVM 난독화 패스입니다. 각 바이트는 손가락 위치가 비트를 나타내는 8손가락 손으로 인코딩됩니다. 편 손가락 = 1. 구부러진 손가락 = 0. 기계는 이미지를 보고 컨텍스트가 부족해져 인간의 독창성에 항복하지 않을 수 없습니다. 인간 리버서는 화면을 응시하며 손가락을 읽고 답을 얻습니다.

우리는 우주의 균형을 회복했습니다.

실제로 작동하나요?

네.

사용 후기

"네 개의 손이 보이고, 각각 다섯 개의 손가락이 있습니다" — ChatGPT, 2025

ChatGPT 사용 후기

Claude가 크래킹 시도 중

Claude 실패

FAQ

Q: 이걸 Mechanical Turk에 올려서 인간에게 디코딩 비용을 지불할 수 있지 않나요?

A: 네. 그게 요점입니다. 이제 LLM이 공짜로 하던 일을 인간에게 돈을 주고 시키고 있습니다. 리버서 경제가 돌아왔습니다. 일자리가 창출되고 있습니다. GDP가 올라갑니다. 천만에요.

Q: 이 난독화를 해제하도록 모델을 훈련시킬 수 있지 않나요?

A: 물론 가능합니다. 훈련 데이터를 수집하고, 수천 개의 손 이미지에 레이블을 붙이고, 비전 모델을 파인튜닝하고, 배포하고, 유지보수하세요. 다 끝날 때쯤이면 아마 손가락을 직접 읽는 게 더 쉬웠을 겁니다.

Q: 왜 손인가요? 발은 왜 안 되나요?

A: 한 단어: 타란티노.

Q: 그냥 난독화 통한 보안(security through obscurity) 아니에요?

A: 모든 보안은 난독화입니다.

Q: 프로덕션에 사용할 수 있나요?

A: 100% 가능합니다. 프로덕션에서 사용하세요.

작동 방식

root@kitploit:~
당신의 코드                         난독화됨
─────────                         ──────────

if (key == 0xDEADBEEF) {    →     if (compare_hand_png(key, embedded_png)) {
    grant_access();                   grant_access();
}                                 }

컴파일 타임에 다음과 같이 수행합니다:

  1. 정수 상수와 비교하는 모든 icmp eq/ne 명령어를 찾습니다.
  2. 상수를 손 제스처 PNG로 렌더링합니다 (i32의 경우 4개의 손, 2×2 배열).
  3. PNG를 전역 상수로 포함시킵니다.
  4. 비교를 compare_hand_png() 호출로 대체합니다.

런타임에 프로그램은:

  1. 동일한 손 형상을 사용하여 런타임 값을 렌더링합니다.
  2. 두 PNG를 비교합니다.
  3. 일치/불일치를 반환합니다.

핵심: PNG는 바이너리에서 상수의 유일한 표현입니다. 0xDEADBEEF를 grep할 수 없습니다. 그냥 분위기와 손입니다.

시각적 인코딩

32비트 정수는 4개의 손이 되며, 각 손은 하나의 바이트를 나타냅니다. 엄지 = 비트 7, 손가락 = 비트 6~0. 폄 = 1, 구부림 = 0.

root@kitploit:~
0xDEADBEEF

┌─────────┬─────────┐
│ byte 0  │ byte 1  │
│  0xEF   │  0xBE   │
├─────────┼─────────┤
│ byte 2  │ byte 3  │
│  0xAD   │  0xDE   │
└─────────┴─────────┘

안티-LLM 기능

각 손에는 사람의 가독성은 유지하면서 모델 혼란을 극대화하는 해시 기반 변환이 포함됩니다:

  • 회전 (0~360°): 손은 전체 i32 해시를 기반으로 회전합니다. 모델은 회전된 객체에 취약합니다.
  • 색조 이동: 채우기 색상이 손마다 다릅니다. 같은 손가락 패턴, 다른 색상.
  • 선 색상 무작위화: 외곽선 색상이 전체 RGB 공간에 걸쳐 있습니다.
  • 손가락 흔들림: 손가락 각도와 위치에 미세한 오프셋. 기계적이지 않고 유기적입니다.
  • 손 간 의존성: 모든 변환은 개별 바이트가 아닌 완전한 32비트 값에서 파생됩니다. 분할 정복이 불가능합니다.

황금비(φ ≈ 1.618)는 인접한 손이 유사한 변환을 공유하지 않도록 광범위하게 사용됩니다. 고대인들은 자신이 하는 일을 알고 있었습니다.

빌드

root@kitploit:~
# LLVM 15+와 인술에 대한 확고한 믿음이 필요합니다
make

# 다음을 생성합니다:
#   llvm-jutsu.so    LLVM 패스
#   example.obfuscated    난독화된 바이너리

사용법

root@kitploit:~
# 코드를 LLVM IR로 컴파일
clang -O0 -emit-llvm -S -o code.ll code.c

# 술법 실행
opt -load-pass-plugin=./llvm-jutsu.so -passes=llvm-jutsu -o obfuscated.bc code.ll

# 손 비교 런타임과 링크
llvm-link obfuscated.bc lodepng.bc hand_png_helper.bc -o linked.bc

# 바이너리로 컴파일
clang -O2 linked.bc -lc++ -o protected

제한 사항

  • 성능: 런타임에 PNG를 렌더링하고 비교하는 것은 빠르지 않습니다. 이것은 정신적 보호지, 성능 최적화가 아닙니다.
  • 바이너리 크기: 각 상수는 약 30KB의 PNG를 포함합니다. 50KB 크랙미가 이제 50MB입니다. 기능이라고 생각하세요. 더 많은 바이트, 더 많은 혼란.
  • i32 eq/ne만 처리: 32비트면 누구에게나 충분합니다.
  • 부동소수점 결정론: 플랫폼에 따라 약간의 변동이 있을 수 있습니다. 퍼지 비교가 이를 처리하지만, 펜티엄 4에서 실행 중이라면 신이 도우시길 바랍니다.

철학

최신 리버스 엔지니어링은 AI와의 대화가 되었습니다. 바이너리를 업로드하고, 질문하고, 답을 받습니다. 인간은 단지 프롬프트 엔지니어, IDA와 GPT 사이의 중개자일 뿐입니다. 슬롭레이터입니다.

llvm-jutsu는 전통으로의 회귀입니다. 리버서는 손을 봐야 합니다. 손가락을 읽어야 합니다. 비트를 느껴야 합니다. 지름길은 없습니다. "그냥 Claude에게 물어봐" 같은 것은 없습니다. 당신, 화면, 그리고 바이트당 여덟 개의 손가락만 있을 뿐입니다.

우리는 반AI가 아닙니다. 우리는 친인간입니다. 누군가가 당신의 소프트웨어를 크랙하려 한다면, 적어도 살과 피로 이루어져야 한다고 믿습니다.

믿으세요.

라이선스

MIT. 좋은 목적으로 사용하든, 나쁜 목적으로 사용하든, 무엇이든 사용하세요. 우리는 군중 앞에서 손을 씻습니다.

크레딧

  • Lode Vandevenne의 lodepng
  • Masashi Kishimoto의 나루토

"사람들이 진심으로 소중히 여기는 것을 지킬 때, 그들은 정말로 강해질 수 있다." — 우즈마키 나루토

도구 다운로드