안녕하세요. 작년 12월에 커스터마이징 파일을 뜯어보고 관련 자료를 공개했던놈입니다.
우선 이 일이 이렇게 커질거라 생각은 못했어서 의도치 않게 피해보신 분들께 먼저 사과드립니다.
---------------------------------------
프로그램 사용법입니다.

!! 오류가 나는 분들이 있으신거 같아서 좀 파일이 복잡하긴 한데 오류 덜한 버전 추가했습니다.
실행은 BCCP.exe를 실행시키시면 됩니다!

1. exe파일을실행시킵니다.

2. 나오는 창에 검은사막에서 저장한 커스터마이징 파일의 이름을 입력합니다.
C:Users사용자명DocumentsBlack DesertCustomization
위치에 커스터마이징 파일이 존재해야합니다!.
3. 비교할 파일을 꼭 두개 입력해주세요! 안그러면 튕깁니다!

4.입력 하셨다면 '비교시작'버튼을 누르시면 분석한 결과가 나타납니다.



--------------------------------------------




최근 며칠동안 커스터마이징 파일에서 유사성을 확인하는 프로그램을 만들기 위해 분석을 추가적으로 더 진행한 결과, 커스터마이징 파일들은 일련의 암호화 또는 압축이 되어 있는 상태라는 것을 알게 되었습니다.
아래는 제가 분석한 커스터마이징 파일의 특징입니다.


커스터마이징 부위 하나당 위치, 회전, 크기 3바이트 값을 가지고 있는 것으로 판단했었습니다.
그러나 부위를 하나씩 분석할수록, 겹치는 바이트가 생기기에, 겹치는 부분이 다른 역할이 있을 것이라 생각하고 다시 슬라이더 값 하나씩만 움직여서 회전, 크기값이 1바이트고 나머지 2바이트가 위치값을 지정한다는 것을 알게 되었습니다.

그 이후로 이 값들이 슬라이더에서 0~100까지의 값으로 변환된다는 것을 고려해서 위의 16진법 코드를 10진법으로 바꾸고, 값을 1씩 증가시켜서 비교 분석 해봤으나 제 결론은 코드가 모종의 압축 또는 암호화 과정을 거치면서 순차적으로 증가하지 않는다입니다.

위의 이유로 인해서 이 프로그램의 처음 목표였던 각 커마 부위별 옵션의 편차값을 구하는 것은 실패했습니다.
그래서 저는 약간 방향을 바꿨습니다.

메커니즘은 다음과 같습니다.
1. 커마 파일 A 와 B를 준비합니다.
2. 커마파일을 읽고 1 바이트(위의 코드 기준 xx xx xx xx가 1바이트입니다)단위로 쪼개서 코드를 대조 분석합니다.
한글자씩 하지 않는 이유는 우연의 사고로 겹치는 코드가 있을 수있고, 각 단위가 1바이트 단위로 바뀌기 때문에 정확도 이슈로 1바이트씩 분석했습니다. 
쉽게 말해서 '갈' 이라는 글자를 '길'이라는 글자와 비교할때 ㄱ, ㅏ ,ㄹ 로 나눠버리면 이게 ㄱ, ㄹ  두개의 자음이 일치하므로 비슷한 단어라는 결론을 내는 오류가 발생하는것과 비슷합니다.
3.얼굴의 유사성을 구하는데에 목적을 두고 있으므로 그 외의 변해도 상관 없는 값(몸체, 근육, 문신등)연산에서 제외하고 130개의 바이트를 분석합니다. 
만약 저 값들을 합산 계산했으면 커마를 할때 잘 안만지는 부분이 통계에 들어가서 공통점이 발생합니다. 이는 10/130과 10/230으로 본다면 후자가 좀더 낮게 편향되는 결과를 만들 수 있기 때문입니다.
4. 일치하는 코드가 보일시에 하나씩 카운팅합니다.
5. 커마 기본값과 일치하는 코드가 발견되면 하나씩 카운팅합니다. 이는 나중에 기본커마와 유사한 커마에서 발생할 수 있는 결과값 분석의 오류를 대비하기 위한 것입니다.
모든 종족의 커마는 기본값이 동일합니다(화장제외). 50바이트정도의 값들은 기본값이 동일하기 때문에 기본커마에서 크게 안건들인 파일을 넣으면 같다고 판단할 수 있기 때문입니다.

그러나 제 분석방법에는 슬라이더값을 3이상(애초에 커마 파일에서 기록되는건 3픽셀정도는 이동해야 값이변하더라고요)차이나게 해서 모든 부위를 약간씩만 변화를 주면 정확성이 눈에 띄게 낮아집니다.
또한 제 프로그램은 유사한 커마를 비교하는것에 적합하지 않은 알고리즘입니다. 두 커마의 수치별 값의 편차가 아닌, 커마 수치가 단 1이라도 차이가 나면 바로 NO 처리 합니다.
그러므로 이 프로그램은 두 커마가 비슷한 경우에 사용하는 것보다는 누군가가 나의 것을 도용했어요!
하는 경우에 사용하는 것을 추천드립니다.

다음은 실제로 시연해본 결과입니다.





1.딱봐도 달라보이는 커스터마이징을 비교할때
좀더 확실한 실험을 위해 란 커스터마이징 1위인 딸기밭촌들 님의 커스터마이징을 사용했습니다.

아래는 결과입니다.

일치율 3퍼센트입니다.
기본커마가 일치하는 경우는 최대50개이므로 이 값이 50에 가까워질수록 기본커마랑 비슷하다는 뜻입니다.
단 이때 기본 커마와 일치하는 코드 갯수는 첫번째 칸에 넣은 파일 기준으로 작성됩니다!

2. 도용한것을 아주 약간씩 바꿈
아래는 제가 제 커마를 스스로 눈에 잘 안띌정도로 약간씩 슬라이더 값을 건드린 결과입니다.

두개는 거의 비슷할겁니다. 

위와같이 일치율은 52퍼센트정도로 현저하게 낮아집니다. 이말은 즉슨, 맘먹고 슬라이더값 바꾸면 이프로그램은 신빙성을 잃는다는 의미입니다.

그러나 슬라이더 값이 유효한 130개중 65개정도가 완전히 동일하다는 뜻은, 65/3바이트 하면 20개의 부위가 완전 동일하다는 뜻이니 이건 좀 도용했다고 판단할 수 있을 것 같습니다.

지금까지 긴 글 읽어주셔서 감사합니다.
추가로 펄어비스에서 시도해볼만한 도용 방지 시스템은 다음과 같습니다.
1. 커마 파일을 오프라인 저장방식에서 무조건 서버로 다 저장하는 방식으로 전환.(또는 업로드는 가능하나 오프라인 다운로드 금지)
2. 커마의 변천사를 기록하는 시스템 만들어서(버전별로 보여주는) 급격하게 변하는 구간이나 오프라인에 내려갔다가 올라오면서 갑자기 다른 커마로 변한다거나 하는 부정의심 사례를 잡을 수있습니다.