이 게시판에 글을 작성하시려면 인증 개발자 권한이 필요합니다. 언제든지 지원해주세요(바로가기).

기타

MC-Remapper: 마인크래프트 난독화 제거 툴

HeartPattern 2020.01.31 조회 수 265 추천 수 2
마인크래프트 버전 1.15계열 
API 종속성 기타 

중요 사항

MC-Remapper는 충분히 검증되지 않았습니다. 이 프로그램을 다른 프로젝트에 적용하기 전, 주의깊게 검증하시기 바랍니다.


소개

마인크래프트 1.14 이후 버전부터, 난독화된 코드에 대한 원본 이름 매핑 파일을 제공합니다. (FinalChild님의 글 참고)

이 프로그램은 해당 매핑 파일을 사용하여 소스코드의 난독화된 부분을 원상태로 복구해줍니다. 이 툴은 클래스파일 변환을 통하여난독화만 제거하기에 소스코드를 읽거나 수정하려면 선호하시는 디컴파일러로 직접 디컴파일하셔야 합니다.


컴파일

깃허브 레포지토리를 로컬 머신에 클론한 뒤, build.gradle 파일이 존재하는 폴더에서 아래 명령어를 실행합니다.

./gradlew installDist

build/install/MC-Remapper 폴더 아래에 실행 스크립트와 라이브러리가 생성됩니다.


사용법

build/install/MC-Remapper/bin 폴더에서 MC-Remapper(Max/Linux의 경우), MC-Remapper.bat(Windows의 경우)을 아래의 명령줄 인수와 함께 실행합니다.


--mapping (필수)

매핑 파일의 url주소입니다. 이 주소는 .minecraft/versions/$version/$version.json의 downloads에서 찾을 수 있습니다. client_mapping은 마인크래프트 클라이언트, server_mapping은 마인크래프트 서버 매핑입니다.


--input (필수)

입력파일(난독화된 파일)의 경로입니다. 입력파일은 마인크래프트 클라이언트(.minecraft/verions/$version/$version.jar), 마인크래프트 서버(minecraft.net에서 다운로드 받을 수 있는 바닐라 서버), 또는 재난독화(--reobf)할 파일입니다.


--output (필수)

출력파일(난독화가 제거된 파일)의 경로입니다. 같은 경로에 이미 파일이 존재한다면, 덮어씁니다.


--thread (선택, 기본값 = 8)

매핑 파일을 변환할때 사용할 스레드의 갯수입니다.


--reobf (선택)

reobf 옵션은 매핑의 방향을 바꿉니다. 기본적으로 MC-Remapper는 난독화된 파일을 난독화되지 않은 파일로 만듭니다. 만약 난독화가 제거된 코드로 모드 또는 플러그인을 개발한 후, 포지나 버킷에 적용한다면 NoClassDefFoundException, NoSuchMethodException과 같은 오류가 발생합니다. 이는 현재의 포지와 버킷은 난독화된 마인크래프트 코드를 사용하지만, 적용한 모드나 플러그인은 난독화가 제거된 클래스나 메서드, 필드에 접근을 시도하기 때문입니다. 이런경우, 제작한 모드나 플러그인을 이 옵션을 통해 재난독화시켜 난독화된 마인크래프트 코드에 접근하도록 만듭니다. 즉, 난독화가 제거된 코드를 난독화된 코드로 변환합니다.

사용 예시


./MC-Remapper --mapping https://launcher.mojang.com/v1/objects/448ccb7b455f156bb5cb9cdadd7f96cd68134dbd/server.txt --input server.jar --output deobf.jar --thread 8

링크

Github: https://github.com/HeartPattern/MC-Remapper


5개의 댓글

WintChoco
2020.02.03

..? 서버개발에 도움이 되는건가요?

HeartPattern
2020.02.12
@WintChoco

상위버전에서 nms를 사용할때, deobfuscate된 상태로 작업 후 reobfuscate하는 방식으로 쉽게 코딩할 수 있습니다.

WintChoco
2020.02.12
@HeartPattern

아하

DDang_
2020.01.31

상위는 난독화가 되어있나요?

HeartPattern
2020.02.12
@DDang_

상위버전 하위버전 모두 난독화되어 있지만, 상위버전은 난독화를 해제할 수 있는 파일을 제공합니다. 이 툴은 해당 파일을 이용해 난독화를 제거해줍니다.

고급 자료실

인증 개발자 분들이 창작하신 고급 자료들을 만나보실 수 있습니다!

마인크래프트 버전
API 종속성
조회 수 제목 글쓴이
3445 [1] [베개서버] 상위버전 <인생약탈서버>를 체험해보세요. 14 오리야
2244 [2] [링팜서버] 마인팜서버를 대표합니다. 9 U 링팜서버
1221 [3] [CSAOS] 양산형서버는 이제 그만! 국내 유일한 AOS, PVP장르 높은 퀄리티로 여러분을 모십니... 5 찬성찬성
1067 서버 홍보 게시판에 글 작성이 가능합니다! (홍보 규칙도 변경) 15 U 프리루트
1714 일부 SNS 로그인 지원 중단 및 안내 가이드 (카카오, 트위터) 17 프리루트
914 한디포 이용 가이드! 처음 온 분은 읽어둡시다! 21 초스터
719 한디포 이용 규칙 26 초스터
572 한마포 디자인 담당자님~ 어디에 계세요? 3 프리루트
139701 한마포 에디터 모집 안내 207 U 프리루트
502 한마포 정품인증자 분들을 위한 포인트 이벤트! 13 프리루트
418 [유틸] [1.15.2] 간편 버킷 실행기 3 레도
470 [유틸] [1.12.2] 간편 버킷 실행기 1 레도
379 [플러그인] TrafficLogger 1.0 / 서버 트래픽을 최적화해봅시다 4 Skywolf46
140 [API or 라이브러리] MCVersions: 마인크래프트 버전 정보 라이브러리 5 HeartPattern
110 [기타] Exhibitionism: 클래스,메서드,필드를 노출시키는 프로그램 2 HeartPattern
197 [API or 라이브러리] CommandAnnotation / 명령어 등록을 더 쉽고 편리하게. 3 Skywolf46
265 [기타] MC-Remapper: 마인크래프트 난독화 제거 툴 5 HeartPattern
205 [API or 라이브러리] 쉽게 명령어를 추가하자 - EzFramework 3 KingCjy
6 [API or 라이브러리] MCVersions: 마인크래프트 버전 정보 라이브러리 HeartPattern
137 [유틸] IntegratedMessageUtil / 전버전 호환 메시지/플레이스홀더 관리 유틸 4 Skywolf46
268 [API or 라이브러리] ReflectedNBTWrapper / 전버전 호환 NBT 라이브러리 10 Skywolf46

한디포 자료란
사진이 없습니다.

플러그인

플레이어 아이템 우클릭시 반응 코드

logdev

2020-06-30

1

https://www.koreaminecraft.net/files/thumbnails/185/838/001/262x150.crop.jpg

프로그래밍 일반

주니어 개발자의 자바 일기 - jdk 와 환경변수

logdev

2020-06-30

0