
클로드 코드 버디 가챠 해킹하기. 레전더리 뽑아드림
요약
Claude Code의 버디(Buddy) 시스템에서 원하는 희귀도와 외형을 얻기 위해 솔트(Salt) 값을 변경하여 브루트 포스(Brute-force) 방식으로 패치하는 방법을 소개합니다.
핵심 포인트
- 버디 시스템은 사용자 ID와 솔트 값을 해시하여 결정됨
- 솔트 값을 변경하여 원하는 티어를 얻는 브루트 포스 방식 활용
- TUI를 통해 종, 희귀도, 눈, 모자 등 외형 커스텀 가능
- 바이너리 패치를 통해 원하는 조합이 나올 때까지 반복 실행
Video: 클로드 코드 버디 가챠 해킹하기. 레전더리 뽑아드림
Channel: 코드팩토리
Duration: 13m 13s
Source: subtitle (auto, ko)
Transcript:
자, 일단 제 버디 인증부터 해
드리면은 저는 레전더리 샤이니의
드래곤 타입을 뽑았습니다. 그래서
잉크블라지라는 이름을 갖고 있고요.
자, 여러분도 이렇게 레전더리 샤이니
티어를 뽑을 수 있도록 제가
도와드리도록 할게요. 쏘as지. 자,
제 [목을 가다듬음] 저번 영상을
보셨으면 알겠지만 저는 언커먼티어가
나왔거든요. 그래서 좀 구린게
나왔는데 제가 카톡방이 여러 개가
있어요. 우리 커뮤니티에 들어오면은
되게 활발하게 많이들 활동을 하시는데
3,명이 항상 꽉 차 있는 크로드코드
채널이 하나 있습니다. 자, 그
채널에서 제가 쇼츠로 올린 뒤로 막
다 인증을 하고 난리가 났어요.
그래서 저도 너무 갖고 싶은
거예요.이 높은 티어가. 자, 그래서
이제 찾아봤죠. 찾아보니까 역시나
누군가가 이거를 패치할 수 있는
방법을 만들어 놨더라고요. 자,
그래서 우리가이 커맨드를 바로 실행을
해 주면 되는데 그럼 우리가 원하는
티어를 고를 수가 있어요. 음,
원하는 타입을 고르고 뭐 눈이라든가
모자라든가 이런 것도 전부 다 우리가
변경을 할 수가 있거든요. 자, 그게
왜 되냐면요. 자, 우리가 이게 조금
웃긴게 클로드 코드에서 우리가
가차라고 이제 얘기를 하지만 가차가
사실 아니고요.이 사용자 아이디랑이
솔트 스트링을 조합해서 해시한 다음에
그 결과값으로 우리가 그냥 펫을
지정을 받는 거예요. 그러니까 쉽게
말하면 이미 정해져 있습니다.
여러분이 회원 가입을 할 때부터 이미
정해져 있기 때문에 이거는 바꿀 수가
없어요. 그래서 여러분이 처음으로
슬래시버디를 실행했을 때 랜덤으로
나오는 건 아니다. 자, 그리고 이게
우리가 인증을 할 때도 똑같이 쓰는
방식인데 어, 제가 주니어들
트레이닝할 때 이거 쉽게 이해할 수
있도록 항상 하는 강의가 있거든요.
자, 이거는 이제 개발자들은 다 아는
내용인데 요즘에 이제 아예 그냥 지식
자체가 없는 분들 되게 많으니까
개발자 출신이 아니라면은 마지막에
PPT도 한번 봐 보세요. 되게
재밌는 내용이고 도움이 되게 많이 될
거예요, 앞으로. 자, 그래서 어떻게
작동을 하느냐? 자, 저희가 그냥이
조합을 선택을 할 수가 있어요.
그래서 스페시 그러니까 종류 선택을
할 수가 있고 레리트는 이제
희귀도죠. 그리고 눈을 선택할 수
있고요. 그다음에 모자까지 우리가
TUI로 선택을 할 수가 있다. 자,
그다음에 이제 브루포스치라고 하는데
실제로 우리가 비밀번호 털거나 할 때
가장 단순한 방법이 이런 방식이에요.
자, 그래서 우리가 솔트를 그냥
리플레이스를 한다. 자, 왜냐? 우리
아이디랑 솔트인데 우리가 아이디는 못
바꾸니까 솔트를 바꿔 보는 겁니다.
그래 놓고서 막 바꿔 가지고 우리가
원하는 조합이 나올 때까지 굴려 보는
거죠. 그게 이제 브루포스치입니다.
자, 바이너리 패치를 우리가 그래서
한다. 자, 우리가 이거를 그냥
패치를 해 버리고 그리고 우리 후까지
적용을 해 가지고 패치가 계속
들어가도록 할 수가 있다라는 거죠.
자, 이게 다요. 별게 없습니다.
그럼 한번 해 볼 건데 자, 우리가
복사하기 해서 자, 여기서 붙여 넣게
그대로 하면요. 자, 이렇게 창이
떠요. 자, Y 눌러 주고요. S
누르면은 터미널 UI가 바로 실행이
됩니다. 그죠? 자, 이렇게 나와
가지고 우리가 스패시 고를 수
있거든요. 자, 스패시를 우리가 뭐이
중에서 저는 드래곤이 제일 멋진 거
같아요. 그래서 드래곤 골라 줄
거고요. 자, 눈을 고를 수가
있어요. 그럼 오른쪽에 이렇게 눈이
바뀌는 거 보일 수가 있죠. 저는 좀
반짝반짝한 눈이 좋아 가지고
반짝반짝한 눈을 고를 거고. 자,
ար리ity 여기서 여러분 이제
선택을 할 수가 있고이 확률이
낮을수록이 솔트를 찾아내는데 시간이
오래 걸리기 때문에 조금 더 기다려야
된다라고 보시면 될 거 같아요. 자,
근데 뭐 당연히 레젠더리가 제일
좋으니까 레전더리를 선택하면 좋겠죠?
자,이 모자를 자, 크라운으로
할게요, 저는. 자, 그리고 샤이니.
샤이니는 어, 1%의 확률을 더
추가하는 겁니다. 1%짜리를
레전더리의 샤이니를 더하면 이제
0.01%가 되는 거예요. 자,
0.1%까지가 볼게요. 자, 샤이니
예스라면은 오래 걸린다 하는데 1분
안에 끝나요, 어차피. 자, 그다음에
자,이 스탯을 커스터마이즈 할 수도
있거든요. 저는 뭐 커스터마이즈는 안
할 거고 여러분 하고 싶으면 해도
돼요. 자, 넌을 누른 다음에 자,
엔터 눌러 가지고 바로 진행을 해
줄게요. 그래서 Y를 눌러 주면은
자, 솔트를 제 이렇게 찾아 가지고
바로 적용을 하는 거를 볼 수가
있죠. 자, 100만 번 시도를 해서
여덟 개의 CPU 코어를 사용을 했고
자, 이렇게 우리 펫에 버디를
만들었다라고 나옵니다. 그러면 예를
누르면요. 자, 예스를 누르면 이제
바로 적용이 되고요. 자, 오토
패치I 같은 경우에는 사실 이렇게
바꾸는게 진짜로 바뀌는 건 아니에요.
아까 말씀을 드린 대로 이미 계정에
바인딩이 돼 있기 때문에 계정 정보로
우리가 해싱을 해 버리는 거기 때문에
연구적으로 바꾸지는 못하고요. 매번
어, 클로드 코드가 업데이트 될
때마다 진짜 이게 우리 패신 것처럼
버딘 것처럼 우리가 훅으로 자동으로
업데이트 되도록 할 수가 있어요.
y를 누르고서 엔터를 하면은 아 계속
매번 업데이트 될 때마다 바뀔 때마다
우리가 계속 우리 버디를 유지하도록
할 수가 있고요. 저는 그러진
않을게요. 자, N하고 네임뉴 컴니
해 가지고 여러분이 마음대로 할 수도
있지만 저는 그대로 두겠습니다. 자,
그리고 person날리티 같은 경우는
여러분이 마음대로 넣을 수도 있는데
자, 이것도 저는 그냥 기본으로
넣을게요. 자, 그러고 나서 우리가
클로드 실행해서 들어가면은 자,
이제는 이렇게 아래에 잉크블러 자,이
버디가 나오는 거를 볼 수가 있죠.
그래서 여러분이 원하는 조합을
마음대로 만들 수가 있고요. 만약에
클로드 코드를 업데이트를 하게 되면
아까 훅을 적용하지 않았을 때는
리셋이 될 수가 있다라는 정도로
여러분들이 알고 계시면 될 거
같고요. 지금 당장은 이걸 연구적으로
바꿀 수 있는 방법은 없습니다. 네.
그 왜 그런지 우리가 조금 한번 봐
볼게요. 자, 이거는 제가 주니어들
트레이닝을 할 때 어, 정말 옛날부터
사용을 하던 프레젠테이션을 제가 조금
간단하게 만들어 가지고 가져왔는데
자,이 해싱과 어티케이션 우리가 인증
시스템을 만들면은 생각보다 어,
요즘하는 분들은 다 애 있어 가지고
만들게 되니 이런 걸 이해하려고
하지도 않겠지만 옛날에 우리가 한 땀
한 땀 손으로 로코딩을 했을 때는
이게 생각보다 복잡하고 어려운
과정이거든요. 특히나 주니어 때는.
그리고 우리가 이해해야 되는 부분들이
많은데 그거를 그냥 어 이렇게 하면
돼라고 얘기를 하는 것보다 왜
그런지를 이해를 하면 우리가 거의
뭐이 지식이 영원이 가기 때문에 저는
그 스토리 라인을 만들어서 강의를
하는 걸 되게 좋아요. 자, 그래서
우리가 차근차근 한번 봐 볼 건데이
비밀 번호의 암호화가 왜 필요한지부터
우리가 한번 얘기를 해 볼 겁니다.
자, 만약에 우리가 A 사이트가 있고
B 사이트가 있다고 한번 가정을 해
볼게요. 자, 그런데 우리가 A
사이트에서 만약에 jc골뱅이
코드팩토리.I라는 AI라는 이메일
그리고 비밀번호를 1 2 3 1
23을 사용을 했다면은이
데이터베이스가 나중에 해킹이 됐을 때
그러니까 제가 막 해킹을 해 가지고이
데이터베이스를 확보를 했을 때이
이메일과 비밀번호 조합으로 우리가
B를 접근할 수가 있다라는 거죠.
그죠? 왜냐면은 뭐 여러분 생각을 해
보면은 솔직히 말해서 모든 사이트에
똑같은 이메일과 비밀번호 번호를
사용해 가지고 가입을 하잖아요.
그죠? 자, 그리고 특히나 옛날에는
오스가 없는 경우가 많았기 때문에
까먹으면은 귀찮으니까 이렇게 되게
많이 했었거든요. 그죠? 자, 그래서
하나의 데이터베이스가 뚫리면 여러분의
모든 계정이 다 뚫려 버릴 수가
있다. 그냥 넣어 보면 되는 거니까.
자, 그래서 우리가 해싱이라는 걸
사용을 합니다. 자, 우리가 원본비
번호가 만약에 1 2 3 1
23이다. 자, 그러면 해싱
알고리즘이 그냥 수학적
알고리즘이에요. 돌리면 이렇게 완전히
다른이 문자가 생성이 되는데
랜덤하다고 말할 수는 조금 없어요.
왜냐면은 항상 똑같은 결과가
나오거든요. 원본밀번호 우리가 1 2
3 1 2 3이라고 넣었을 때 항상이
똑같은 결과가 나옵니다. 지금이
실제로 해시는 아니에요. 제가 예제로
넣은 거예요. 자, 근데 이게
재미있는게 이건 단방향이에요.
단방향이라는게 되돌릴 수가 있기는
한데 굉장히 어렵습니다. 그래서
사실상 되돌릴 수가 없다라고 판단을
하는 거고 우리가이 블랙체인에서이
여러 개의 인테그리티를 지키는
방식과도 굉장히 유사해요. 원래 이제
이론 자체가 여기서부터 나오는
겁니다. 거기에다 이제 플러스 알파로
다양한 방식들이 이제 들어가 있죠.
자, 그래서 우리가 여기서 뭐
하냐면요. 원본 비밀번호 번호를
우리가 해싱을 해서 그 해싱된
결과값을 우리가 데이터베이스에 저장을
해요. 그래서 원본 비율 번호는 그냥
날아갑니다. 아예 없어요. 존재하질
않아요. 데이터베이스에 이거를 저장을
하게 되면은이 첫 번째 문제가 생기기
때문에 그 어떤 데이터베이스도 원본
비밀번호를 들고 있지 않습니다.
그러니까 몰라요. 우리가 비밀번호
까먹었어요 하고서 물어봐도 어 당신의
비밀번호 이겁입니다라고 알려줄 수가
없는게 몰라요. 실제로. 자, 그러면
우리가 어떻게 되느냐? 자, A
사이트에는 이제는 비밀번호라는 칼럼은
있지만 사실 해시가 저장이 되죠.
이제는 원본 비닐번호 우리가 저장하고
모르니까. 자, 그래서 1 2 3
23이라는 비율번호가 만약에 AVZ
33이라는 값이 나와서이 해시를
저장을 했다고 가정을 해 볼게요.
그죠? 자, 근데 제가 해킹을
했어요. A 사이트를. 그래서
jc골뱅이 코드팩토리.ai
- 빌번호 AVZ3을 B이트가 그죠?
자, 그러면 어떻게 하냐면요. 우리가
이제는 해시를 저장을 하기 때문에
우리가 이메일과 비밀번호 조합을
넣으면은 비밀번호 번호를 또 해시를
해서 그거를 지금 데이터베이스랑
비교를 해 봐요. 똑같은 값을 똑같은
조건으로 해싱을 하게 되면 똑같은
값이 항상 나오거든요. 그러니까
우리가 원본 비밀번호라도 생성된
해시가 같다면은 그리고 그것과
이메일의 조합이 똑같다면은 그러면은
어, 이거는 같은 문자가 입력이
됐다. 같은 빌어가 입력이 됐다라고
우리가 가정을 알 수가 있어요. 왜
가정이냐면은 굉장히 낮은 확률로
똑같은 해시가 나올 확률도 있기는
있습니다. 자, 그런데 이메일까지
우리가 조합을 해 가지고 본다라고
하면 사실상 불가능하겠죠. 자,
그러면은 우리가이 해킹한이 해시를
이메일의 조합과 입력을 했을 때
우리는 AVZ3이라는 해시를 입력을
했기 때문에 비밀 번호로 B이트에서
이거를 다시 해시를 하겠죠. 그죠?
왜냐면 이게 원본 비밀번호라고 생각을
할 거니까. 자, 그러면 또 다른
문자가 나와요. 자, 그렇기 때문에
우리가 데이터베이스에 비교를 해
보면은 비율번호가 저장이 돼 있는
거는 AVZ 똑같이 AVZ 33이라고
저장이 돼 있는데 이거는 한 번 더
해시해서 비교를 하니까 당연히 이거는
틀린 비밀 번호입니다라고 나온다라는
거죠. 간단하죠, 여기까지는. 자,
그럼 이런 문제가 있다 보니까이
해커들이 또 어떤 똑똑한 생각을
하냐면은 딕셔너리 어택이라는 공격을
합니다. 자, 그럼 우리가이 레인보우
테이블이라는 걸 만드는데 우리가
해킹한 데이터베이스가 있잖아요.
그죠? 자, 그럼 거기는 해시가
저장이 돼 있겠죠? 그러면 AVZ3,
QQBVZXC
뭐 이렇게 저장이 돼 있는데 원래
우리가 회원 가입을 할 때 입력을
했던 비밀번호는 당연히 다른
비밀번호일 거예요. 그죠? 자,
그런데 만약에 우리가 미리 굉장히
많이 쓰는이 비밀번호 조합들을 전부
다 해싱을 미리 해 두면은 뭐 진짜
수천억 개의이 가장 많이 쓰는
비밀번호 막 테스트 테스트라던가
아니면은 1 2 3 1 2 3 ABC
ABC 이런 비밀 번호를 전부 다
미리 해싱을 해 두고서 우리가
테이블을 데이터베이스와 갖고
있다면은이 해킹한 데이터베이스의이
해싱값과 미리 해싱해 놓은이 레인보우
테이블이라는이 매칭되는 값을 우리가
해시끼리 비교를 하고 비밀번호 번호를
다시 우리가 복구를 시킬 수가 있는
거죠.이 해시 값이 같으면은 우리가
원본 비닐번호 뭘로 해시해 가지고이
결과가 나왔는지를 알 수가 있으니까.
자, 그래서 이게 바로 딕셔너리
여택입니다. 미리 데이터베이스를
만들어 놓고서 원본 비닐번호로 다시
찾아가는 거죠. 자, 그래서 또
나온게 이제 솔트라는 거를 추가를
합니다. 자, 원본 비닐번호가 1 2
3 1 2 3이잖아요. 그죠? 이거를
그대로 우리가 해시를 해 버리면은 1
2 3 1 2 3이라는이 비밀 번호를
미리 해시를 해 두고서이 테이블을
갖고 있을 때 리버스 엔지니어링이
된단 말이에요. 자, 그러면 안
되니까 우리가 그 뒤에다가 그냥
랜덤한 캐릭터를 붙여요. 예를 들어서
1 2 3 1 2 3에다가 코드
팩토리라고 붙여 버려요. 자,
그리고이 솔트값은 어, 무엇이 될
수도 있지만 보통 이제 같은 솔트값을
씁니다. 뭐 다른 솔트값이
상관없어요. 왜냐면 이거는 어,
비크립트 같은 걸 썼을 때 솔트값은
어차피 보이거든요. 그 안에. 데
그래도 상관없는 이유가 있어요. 자,
그래서 우리가 1 2 3 1 2
3플러스 코드 팩토리 해 가지고
해싱을 해 버리면은 완전히 또 다른
해시값이 나오기 때문에 이거를 미리
테이블을 생성을 해 놓을 수가
없어요. 왜냐면 솔트값이 뭐가 될지를
모르니까. 그리고 이건 다시 되돌릴
수가 없어요. 역시나 마찬가지로.
그렇기 때문에 비밀번호 복구가 또 안
됩니다. 이제는이 레인보 테이블을
사용한 딕셔너리 어택이
불가능해지겠죠. 자, 그럼 또 이런
생각을 할 수가 있죠. 어, 그러면
솔트값까지 만약에 알아낸다면은 그러면
우리가 또 똑같이 이렇게 레인보
테이블 만들어 가지고 매칭해 가지고
빌본을 복구할 수 있는 거 아니야?
라고 생각을 할 수 있는데 어 그거는
불가능해요. 자, 왜 그러냐? 느림의
미약이라는 건데 우리가이 해싱을 할
때 사용하는 알고리즘들이 다양하게
있는데 그중에 아마 전 세계에서 가장
많이 쓰는 알고리즘은 비크립트라는
알고리즘일 거예요. 근데 우리가
해싱을 할 수 있는 알고리즘은 굉장히
많습니다. 굉장히 많은데 특히나
빅크립트를 많은 사람들이 이제
선호하는 이유는 비크립트는 고의적으로
느려요. 되게 웃긴 소린데 모든이
기능들이 컴퓨터 관련된 기능들이 전부
다 빨라지려고 노력하잖아요. 근데
빅크립트는 우리가 고의적으로 계속
느리게 만들 수가 있습니다.이 이
라운드를 늘려 가지고 12라운드나 뭐
10라운드이 사이를 보통 많이 쓰는데
만약에 뭐 31라운드 막 이렇게
가면은 하나의 해시를 만들어 내는데
2에서 3일이 걸려요. 자 무슨
뜻이냐? 자 그래서 우리가 솔트까지
알아냈어. 솔트까지 내 알아내고서
우리가 어 솔트 조합을 해서 레인보우
테이블을 만들려고 해. 근데 그러면은
우리가 리버스 엔지니어링 하는 거기
때문에 정말 많은이 문자 조합을
우리가 미리 테이블로 만들어
놔야겠죠. 자, 그런데이 친구가 느려
버리면은이 수천억 개의 문자들을
솔트값의 조합으로 데이터베이스와
하는데 막 수백 수천년이 걸릴 수가
있다라는 거예요. 그래서 그렇게 못
하기 때문에 실제로 우리가이
비크립트의 해시값을 보면은 끝부분에
솔트가 그냥 공개가 돼 있어요. 이거
알아도 어차피 못 뚫는다는
얘기거든요. 그래서 우리가 어 인증을
할 때 암호화가 오래 걸리는
알고리즘을 사용해서 솔트를 추가해서
암호화를 하고 그 결과값을
데이터베이스에 저장을 해야지 나중에
우리가이 데이터베이스가 해킹이 됐을
때 다른 사이트에서 똑같은 이메일과
비밀번호 조합으로 접속하는 거를 막을
수가 있다라는 거예요. 지금 당장 내
데이터베이스를 보호하려는 목적과는
조금 다릅니다. 어, 그거는 그냥
다른 보완적인 부분에서 여러분이
충족을 해야 되는 거고 어, 우리가이
인증 관점에서 봤을 때 데이터베이스의
빌번호를 저장하지 않고 해싱된 값을
저장을 하는 거는 이게 만약에 털렸을
때 다른 곳까지 다 털리는 그런
문제가 생기지 않도록 하는 거다.
한번 털리고 나면 어차피 그거는 이제
망한 거기 때문에 왜냐면 이제 뭐 그
다 연결 돼 있잖아요. 그죠?
데이터베이스 안에서. 그거는 이제
막지 못하는 거고 다른 곳까지이
문제가 전파되는 건 여러분이 막을
수가 있다. 그렇기 때문에 여러분이
인증을 설계를 할 때 AI가 뭐
어쩌고 얘기를 하면서 어 이거 조금
보안 관련된 문제인 거 같은데라는
생각이 들면은 잘 알지 못하더라도
쉬운 말로 설명해 달라고 하고서
여러분이 꼭 읽어보고 플래닝을 제대로
하셔야 돼요. 안 그러면 진짜 큰
문제가 생길 수가 있습니다. 자,
오늘 제가 준비한 콘텐츠는
여기까지입니다. 오늘 콘텐츠가
좋았다면은 구독과 좋아요 알림 설정
그리고 하이프까지 꼭 해 주세요.
감사합니다. 쏘as지.
AI 자동 생성 콘텐츠
본 콘텐츠는 코드팩토리의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기