https://github.com/Shell4026/ShellProtector
텍스쳐 암호화란? 아바타 복사핵이나 추출핵(리핑)을 할 때 아바타의 원본 텍스쳐를 암호 없이는 복구하지 못하게 하는 에셋이야.
기존에 존재한 안티 리핑은 메쉬만 암호화 했고 불편한 점이 꽤 있었지. 그걸 보고 많은 점을 보완했어.
자세한 원리는 위 깃허브 링크 사이트에 잘 설명 돼있으니 참조해.
릴툰과 포이요미를 지원하고 내가 포이요미를 주로 써서 릴툰쪽은 확인 못한 부분이 있을 수 있어. 버그 있으면 말해줘.
아래는 사용법이야.

아직도 깃허브 홈페이지 보면 어지러운 브붕이들을 위해 여기서부터 설명하자면
위의 깃허브 링크에 들어가서 우측의 Releases부분의 +10 releases를 눌러서 모든 버전을 볼 수 있어.

그중 제일 최신버전의 Assets부분에 있는 두 파일을 다운 받아줘.
위는 유니티 패키지 파일이고 아래는 OSC프로그램이야. 인게임에서 암호를 최초 한번 입력할 때 써.
OSC프로그램은 별거 없는데 불안해서 코드 요청하면 보여줄게. C++로 만들었어.

임포트를 다했다면 아바타에 ShellProtector라는 컴포넌트를 추가해.
제일 위에서 언어를 바꿀 수 있고 검출된 셰이더에 자신이 갖고 있는 셰이더 목록이 적힐거야.

제일 처음 할 설정은 비밀번호 길이 설정이야.
비밀번호 0은 왜 있나 싶을 수 있는데, 아바타의 파라미터 수가 부족하다면 써. 0이어도 기본적인 리핑은 막을 수 있어
비밀번호 길이 별로 설명하자면
0바이트의 사용자 키는 컴파일된 셰이더를 어셈블리어로 바꾸고 분석하기만 하면 알아낼 수 있어. (역공학)
4바이트의 사용자 키는 누군가 시간만 들이면 키를 알아낼 수 있어. (4바이트 키 = 파라미터 32칸) (역공학+무차별 대입)
8바이트의 사용자 키는 개인용 컴퓨터로는 알아내는데 시간이 많이 걸려. 적어 (8바이트 키 = 파라미터 64칸)
12바이트의 사용자 키부터는 현대 컴퓨터로는 알아낼 수 없습니다. (12바이트 키 = 파라미터 96칸)
최소 파라미터 96칸을 쓰고 자신이 비밀번호를 복잡하게 설정했다면 누가와도 키를 알아낼 수 없어.
현재 비트코인 채굴등으로 92비트까진 뚫린 기록이 있지만 96비트는 아직 안전해.
근데 현실적으로 파라미터가 그렇게 많이 남진 않을테니 4또는 8바이트 키를 쓰길 바라.
8바이트만 해도 시간 남는 백수가 아니면 풀기 힘들거야.
0바이트 키도 간단한 툴키디 리퍼들은 막을 수 있어.

키 길이를 설정하고 외울 필요 없는 비밀키를 자동생성하고
자신의 키를 입력해줘. 이 키만 외우면 돼.

그 후에 메테리얼 목록에 암호화 할 아바타 메테리얼들을 넣어줘.
이 메테리얼의 Main Texture만 암호화 될거야. 그러니 멍청하게 메인 텍스쳐 암호화 했는데 같은 텍스쳐를 다른 메테리얼에서 쓰면 안 되겠지?
같은 메테리얼 내의 같은 텍스쳐는 자동으로 빼줌 ㄱㅊ

그외 옵션은 신경 쓸 거 없고 암호화 시작! 버튼을 눌러 ㄱㄱ

진행도 표시되고

다 되면 이렇게 끔찍한 노이즈 낀 아바타가 보여질거야.

새로 생긴 아바타에 보면 Testor컴포넌트가 생겼는데 여기서 암호화 성공 체크를 눌러서 복구가 잘 되는지 볼 수 있어

이렇게 복구가 잘 되면 성공이야.
확인 했으면 완료 버튼을 눌러서 원래대로 돌려줘.
만약 복구가 잘 안 되면 유니티를 다시 켜봐. 그래도 안 되면 그건 뭔가 문제가 있는거니 내게 말해줘.


자기가 4바이트 키 이상을 사용했다면 OSC프로그램을 써서 인게임에서 비밀번호를 입력해줘야 해.
단 한번이면 돼. 리셋 아바타를 자주 누르는 유저면 계속 프로그램 켜둬도 되고.

세이프티를 켠 상대에겐 어떻게 보일지 보여주는 움짤이야.
그냥 아얘 안 보여주고 싶으면
릴툰의 경우 VRChat - Custom Safety Fallback을 체크하고 hidden으로 하면 셰이더 세이프티를 켠 사람한테는 안 보이게 돼.
포이요미는 제일 아래 VRChat Fallback Shader에서 선택 가능해.
애니메이션 세이프티는 간단하게 아무 조건 없이 자기 아바타 나타나게 하는 걸 녹화하면 세이프티 켠 사람한테는 안 보이게 될거야.
이걸 응용해서 세이프티 켜져 있는 사람에겐 다른 아바타를 보여줄 수도 있겠지.
이거 써서 핵 걱정에서 벗어나보자고. 딸각 한번 하는 것도 귀찮은 사람은 어쩔 수 없고 ㅇㅇ..
이제 코딩지옥에서 해방이네.