모드 커뮤니티

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


기타

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

HeartPattern 2020.01.31 조회 수 169 추천 수 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개의 댓글

윈트초코
2020.02.03

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

HeartPattern
2020.02.12
@윈트초코

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

윈트초코
2020.02.12
@HeartPattern

아하

DDang_
2020.01.31

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

HeartPattern
2020.02.12
@DDang_

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

고급 자료실

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

마인크래프트 버전
API 종속성
조회 수 제목 글쓴이
375 한디포 이용 규칙 15 초스터
612 한디포 이용 가이드! 처음 온 분은 읽어둡시다! 15 초스터
8804 한마포 AD 소개 (유료 광고 서비스) 54 프리루트
89 [API or 라이브러리] MCVersions: 마인크래프트 버전 정보 라이브러리 5 HeartPattern
66 [기타] Exhibitionism: 클래스,메서드,필드를 노출시키는 프로그램 2 HeartPattern
65 [유틸] [1.15.2] 간편 버킷 실행기 2 레도
202 [플러그인] TrafficLogger 1.0 / 서버 트래픽을 최적화해봅시다 3 Skywolf46
152 [API or 라이브러리] CommandAnnotation / 명령어 등록을 더 쉽고 편리하게. 3 Skywolf46
169 [기타] MC-Remapper: 마인크래프트 난독화 제거 툴 5 HeartPattern
165 [API or 라이브러리] 쉽게 명령어를 추가하자 - EzFramework 3 KingCjy
106 [유틸] IntegratedMessageUtil / 전버전 호환 메시지/플레이스홀더 관리 유틸 4 Skywolf46
214 [API or 라이브러리] ReflectedNBTWrapper / 전버전 호환 NBT 라이브러리 10 Skywolf46

 

개발자 최신글
https://www.koreaminecraft.net/files/thumbnails/065/536/001/262x150.crop.jpg

기타

마인크래프트모드를만들고싶어하는사람입니다.

Dogulkkun

2020-04-05

0

https://www.koreaminecraft.net/files/thumbnails/219/535/001/262x150.crop.jpg

커맨드 블록

리미트의 한계까지 달려보는 커맨드 강좌 제 2강 - 맵 설정을 해보자! [한.달] 1

리미트

2020-04-05

0