Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

Вопрос Остатки обфы

Начинающий
Начинающий
Статус
Онлайн
Регистрация
15 Фев 2024
Сообщения
52
Реакции
0
Со вчера пытаюсь снять обфу с джарке. Кое-что уже получилось: смог переименовать классы и восстановить их исходные имена и пути. Но всё ещё борюсь с остатками ремаппинга — например, когда переменная изначально называлась Player, а после обфускации (ProGuard или чем-то подобным) превратилась в private MixRiverLayer a. Есть ещё куча мелких классов с именами вроде zz.class, Xx.class — в них немного кода, но без контекста сложно понять, за что они отвечают.

Вот, к примеру, один из таких фрагментов:

Код:
Expand Collapse Copy
package test.test.test;

class Dk extends tS<CO, Yh> {

    Dk(String string, uO uO, Yh yh) {
        super(string, uO, yh);
    }

    public boolean isSettable(CO cO) {
        return cO.textAlignment == null || !cO.textAlignment.isBound();
    }

    public uW<Yh> getStyleableProperty(CO cO) {
        return (uW<Yh>)cO.textAlignmentProperty();
    }
}

Только вчера начал разбираться в декомпиляции и снятии обфускации, поэтому многого ещё не знаю. Подскажите, есть ли какие-то автоматические инструменты, которые помогают восстанавливать имена переменных или расшифровывать такие «запутанные» классы? А также — существуют ли утилиты, способные объединять классы вроде MainClass и MainClass$1 в одно целое?
 
привет! инструменты которые могут помочь восстановить(хоть и частично) имена переменных и структуру классов и вот два из них:
1.
Пожалуйста, авторизуйтесь для просмотра ссылки.
- сайт куда кидаешь джарку и он тебе ее декомпилирует(отлично если надо убрать классы по типу ExampeMod$1 и еще на моем опыте особо эффективен в воссоздании структуры проекта
2. Enigma от fabric(noad) - по сути должн хорошо снимать обф с фабрика и прочего так как он создан как раз под майн
3. жмяк(noad) - вот еще тема на югейме где представлено больше деобфускаторов/декомпиляторов которые тоже могут тебе помочь :roflanzdarova:
 
привет! инструменты которые могут помочь восстановить(хоть и частично) имена переменных и структуру классов и вот два из них:
1.
Пожалуйста, авторизуйтесь для просмотра ссылки.
- сайт куда кидаешь джарку и он тебе ее декомпилирует(отлично если надо убрать классы по типу ExampeMod$1 и еще на моем опыте особо эффективен в воссоздании структуры проекта
2. Enigma от fabric(noad) - по сути должн хорошо снимать обф с фабрика и прочего так как он создан как раз под майн
3. жмяк(noad) - вот еще тема на югейме где представлено больше деобфускаторов/декомпиляторов которые тоже могут тебе помочь :roflanzdarova:
Решил воспользоваться вашим первым способом — не помогло: просто добавились обратные слеши (\) перед папками, внутри классов ничего не поменялось. В третьем способе много чего узнал, но у меня есть джар файл нового клиента без обфускации, а мне нужно получить исходники со старого клиента. Звучит очень тупо, но как есть. Я сделал программу, которая ищет совпадения с новой джарки и сравнивает со старой с обфускацией, кое-что я и починил, но по пути(test.test.test), который был сделан прогвардом, остались некоторые файлы, например aaH.class, ca.class.

У меня есть исходники новой версии клиента (там есть протект(сурсы), который вроде бы я снял, не уверен). Могу прислать под хайд.
 
Со вчера пытаюсь снять обфу с джарке. Кое-что уже получилось: смог переименовать классы и восстановить их исходные имена и пути. Но всё ещё борюсь с остатками ремаппинга — например, когда переменная изначально называлась Player, а после обфускации (ProGuard или чем-то подобным) превратилась в private MixRiverLayer a. Есть ещё куча мелких классов с именами вроде zz.class, Xx.class — в них немного кода, но без контекста сложно понять, за что они отвечают.

Вот, к примеру, один из таких фрагментов:

Код:
Expand Collapse Copy
package test.test.test;

class Dk extends tS<CO, Yh> {

    Dk(String string, uO uO, Yh yh) {
        super(string, uO, yh);
    }

    public boolean isSettable(CO cO) {
        return cO.textAlignment == null || !cO.textAlignment.isBound();
    }

    public uW<Yh> getStyleableProperty(CO cO) {
        return (uW<Yh>)cO.textAlignmentProperty();
    }
}

Только вчера начал разбираться в декомпиляции и снятии обфускации, поэтому многого ещё не знаю. Подскажите, есть ли какие-то автоматические инструменты, которые помогают восстанавливать имена переменных или расшифровывать такие «запутанные» классы? А также — существуют ли утилиты, способные объединять классы вроде MainClass и MainClass$1 в одно целое?
а в чем сообственно проблема? тут все читается вроде бы как, буквально дефолт ремаппер, который меняет название классов и все
 
а в чем сообственно проблема? тут все читается вроде бы как, буквально дефолт ремаппер, который меняет название классов и все
Да, проблема в том, что я не знаю, как снимать прогуард или что-то вроде его. Я сам не знаю, что там стоит. Я не понимаю, как вернуть название классов да и внутренности кода, по типу var. Я достал мапинги, то есть сделал их через Recaf (noad), закинул джарку Mapping - Generate и получаю файл с 32к строчек. Я не знаю, куда его дальше девать. В том же самом Recaf, если буду применять их, ничего не поменяется. Я не знаю, с чем это связано. Пытался и в других программах - все безуспешно.
 
Да, проблема в том, что я не знаю, как снимать прогуард или что-то вроде его. Я сам не знаю, что там стоит. Я не понимаю, как вернуть название классов да и внутренности кода, по типу var. Я достал мапинги, то есть сделал их через Recaf (noad), закинул джарку Mapping - Generate и получаю файл с 32к строчек. Я не знаю, куда его дальше девать. В том же самом Recaf, если буду применять их, ничего не поменяется. Я не знаю, с чем это связано. Пытался и в других программах - все безуспешно.
1 - зачем тебе его вообще пытаться разремаппить, если логика понятна
 
Ты думаешь, я буду пастить? Нет, я пытаюсь сделать из джарника - сурсы.
прогуард это ренеймер, оно тебе из Player сделал Ab как ты узнаешь что такое Ab? ты не сделаешь исходное название никак.
прогуард это ренеймер, оно тебе из Player сделал Ab как ты узнаешь что такое Ab? ты не сделаешь исходное название никак.
Да и прогуард это никакой не обфускатор - он не предоставляет никакой проблемы
 
прогуард это ренеймер, оно тебе из Player сделал Ab как ты узнаешь что такое Ab? ты не сделаешь исходное название никак.
Ну, маппинги как вариант. Или ты мне предлагаешь самому всё это заменять и гадать, что это?
 
Ну, маппинги как вариант. Или ты мне предлагаешь самому всё это заменять и гадать, что это?
какие маппингу к тому что написал человек? это тебе официальное сообщество которое их предоставляет или что?
Ну, маппинги как вариант. Или ты мне предлагаешь самому всё это заменять и гадать, что это?
Нет - это даже не нужно заменять... У тебя уже логика на руках
 
какие маппингу к тому что написал человек? это тебе официальное сообщество которое их предоставляет или что?

Нет - это даже не нужно заменять... У тебя уже логика на руках
Взял я эти маппинги с джарки (без обфы), только это джарка новой версии. Если у меня логика на руках, то каким инструментом ты мне предлагаешь превращать это в сурсы?
 
Взял я эти маппинги с джарки (без обфы), только это джарка новой версии. Если у меня логика на руках, то каким инструментом ты мне предлагаешь превращать это в сурсы?
ручками
Взял я эти маппинги с джарки (без обфы), только это джарка новой версии. Если у меня логика на руках, то каким инструментом ты мне предлагаешь превращать это в сурсы?
я спать. доброй ночи
 
ручками

я спать. доброй ночи
Ты мне предлагаешь рефакторить вручную? Я с ума сойду. Ну, если допустим это и так, то мне нужно просто перенести с джарки папку src в сурсы. Тогда почему у меня так много ошибок? Потому что у меня не соединённые классы или из-за того, что у меня не до конца снята защита? Доброй ночи.
 
Назад
Сверху Снизу