Minecraft Deobfuscator - снимаем майнобфускацию с сурцов

Автор: Z_Doctor
Ссылка на загрузку: Dropbox - Designer Minecraft Deobfuscator v3 (WPF) (Аналогичный exe-шник см. в прикепленных к треду файлах)
Официальный тред (больше ссылок, FAQ, сурсы и скриншоты): тык


Переведено с официального треда автора:
Описание:
Эта программа пройдет через декомпилированный мод (zip или jar-файл) и заменит все запутанные имена деобфусцированными при копировании всего остального. Например, запутанные поля, такие как field_151034_e или func_130014_f_, будут заменены на читаемые имена APPLE и getEntityWorld, соответственно (как определено MCPBot). Это может быть полезно для восстановления любого потерянного кода.

Цель:
Цель этой программы - помочь в поиске утерянного исходного кода. Существует до +33 000 обфусцированых полей, параметров и методов, и необходимость переименвывать каждое из них вручную - непрактично и отнимает много времени. Minecraft Deobfuscator сделает эту работу за вас.

Как пользоваться:
Чтобы использовать эту программу, сначала нужно получить декомпилированную версию мода. Эта программа не декомпилирует моды самостоятельно (но может сделать это в будущих версиях) и сообщит вам, не был ли декомпилирован предоставленный вами мод. Чтобы узнать, как декомпилировать мод, прочитайте раздел Как "декомпилировать мод".

После того, как у вас будет декомпилированный мод, нажмите кнопку открытия и перейдите к декомпилированному файлу zip или jar и выберите его.

Затем выберите маппинг, нажав кнопку «Mapping». Это откроет список доступных маппингов. Затем, когда вы выбрали маппинг, котороый хотите, закройте список, нажав кнопку еще раз или в любом другом месте. После загрузки маппингов нажмите кнопку «Start». Это предложит вам выбрать, где сохранить деобфусцированный мод. После этого програме останется только выполнить свою работу.

Как декомпилировать мод:
Вы можете использовать декомпилятор, такой как ByteCodeViewer или JD-Gui, но я рекомендую FernFlower. Точнее, версия, которая была модифициована девелоперами Forge'а. Чтобы собрать FernFlower, скачайте и распакуйте zip. Shift + щелчок правой кнопкой мыши и выберите «Открыть окно PowerShell» и введите «. \ Gradlew build». Как только он будет собран, он будет находиться в папке build >> libs. Затем следуйте инструкциям из README, чтобы узнать о командах. (Вы так же можете использовать онлайн декомпиляторы прим. ред.)
Ну и что ты молчишь?
 
428
41
108
Как я могу защитить свои моды от таких недобросовестных действий
progaurd + NLaunch усложнит взлом очень и очень неплохо, без потерь в производительности. В идеале вшить Nlaunch в jvm, но и без этого уйдет немало времени на рениженеринг. За несколько месяцев была только 1 полу-успешная попытка взлома (устаревшей версии), хотя кому я только не сбрасывал ссылку на репозиторий
 
1,074
72
372
Буду благодарен за любые советы и рекомендации по этому вопросу.
Писать на Kotlin (на него нет декомпилятора) и сверху proguard. Дёшево и сердито. И никому ничего не надо платить.
 
153
21
41
Никак не поможет от воровства. Даже если мод является модулем.

Почитал про это, звучит прикольно, но.
1. Все байты идут в рантайм, оттуда же легко дампятся.
2. Динамичный дамп загруженных классов это вырезалка на минималках.

Абсолютно так же как и proguard ничем не поможет.

Клиент сайд ничем не защитить, хоть убейтесь.
 
428
41
108
Все байты идут в рантайм, оттуда же легко дампятся.
Для кого легко - а для кого не очень. Часть способов закрыл проверкой опкодов, но +-,,полностью,, только перекомпиляцией jvm под себя
Но и без этого нервишки потрепает неплохо

В любом случае нормальная защита должна быть многоуровневой, ,,криптографический контейнер Nlaunch,, , писать на котлине, использовать proguard, перекомпиляция jvm, или что-то еще - все это уровни, которые можно комбинировать на свое усмотрение.

Цель защиты в общем простая - чтобы крякер без нужных знаний - и поцарпать не смог, а специалисту - это нахрен не сдалось, потому что долго.
 
153
21
41
В общем поковырял я твое чудо, и такой вывод:

Нативка накрыта upx'om, хотя думал что будет vmp/themida, странное решение. Но строки динамичные, помогает? Нет.

Часть способов закрыл проверкой опкодов
Как я понял это те самые итерации по экспортам java.dll?

Анти дебага нет, от слова совсем.
Анти инжект такой же.
Защиты от подмены файлов так же нет, патчи сколько хочешь, и что хочешь.
Никаких триков для статик анализа тоже нет.

В общем хотим своровать мод за минут 5 - дампим.
Хотим расшифровывать любой мод - находим алго, и так же воруем, ведь нам ничего не мешает анализировать.
 

will0376

Токсичная личность
2,077
55
585
Я предлагаю остановиться на том, что не стоит особо зацикливаться на клиентской защите.
Архитектура майна выстроена таким образом, что только полная её перепись позволит адекватно защитить клиент.
А все эти попытки защитить клиент - лишь отсрочивает неизбежное... И в некоторых случаях получается не защита от спиздинга, а защита от пользователя.

Единственный известный мне адекватный способ +- обезопасить мод от кражи - изначальное продумывание архитектуры мода с сильнейшим разделением клиент-сервер. Но для этого надо иметь немалый опыт в майне, что не у каждого есть.
 
428
41
108
Чего нет того нет, выводы сделал

Защиты от подмены файлов так же нет, патчи сколько хочешь, и что хочешь.
Вперед и с песней вдуплять как работает криптография, если ты .lar пакеты хочешь подмещать, но проще подменить vm и она сама все скажет
 
Сверху