Size: a a a

2021 March 24

Я

Ярослав in Android Guards
Mafioznik
Всем привет, хочу ревертнуть одно приложение, чтобы посмотреть как одна из его частей работает и скопировать себе в приложение. Пытаюсь использовать jadx, но один из кусков той области которая мне нужна не хочет декомпилироваться и остается закомментированной. Может кто знает что мне может помочь?
источник

Я

Ярослав in Android Guards
Поставь здесь галочку
источник

M

Mafioznik in Android Guards
Было бы хорошо, чтобы такой код не коментился, и он весь продолжал быть рабочим просто с обфусцированной частью
источник

M

Mafioznik in Android Guards
хм, вроде кстати даже деобфусцировало ту часть, которая нужна была, сейчас детальнее просмотрю
источник

M

Mafioznik in Android Guards
У меня например остался блок

static {
               ...code...
                       else return;
}

Редактор ругается мол почему ретерн не в методе. Как понять этот блок то?
источник

M

Mafioznik in Android Guards
Полный участок

static {
       int i = 0;
       for (int i2 = 0; i2 < 255; i2++) {
           pem_convert_array[i2] = -1;
       }
       while (true) {
           char[] cArr = pem_array;
           if (i < cArr.length) {
               pem_convert_array[cArr[i]] = (byte) i;
               i++;
           } else {
               return;  <= вот тут ругается
           }
       }
   }


Как мне его понять? Просто поменять return на break например?
источник

Я

Ярослав in Android Guards
Mafioznik
У меня например остался блок

static {
               ...code...
                       else return;
}

Редактор ругается мол почему ретерн не в методе. Как понять этот блок то?
Заюзать еще какие-то декомпиляторы, и тогда смотреть и да как, бывает есть разница:)
источник

M

Mafioznik in Android Guards
Я думаю этот участок был на котлине и поэтому он такой странный
источник

Я

Ярослав in Android Guards
Mafioznik
Полный участок

static {
       int i = 0;
       for (int i2 = 0; i2 < 255; i2++) {
           pem_convert_array[i2] = -1;
       }
       while (true) {
           char[] cArr = pem_array;
           if (i < cArr.length) {
               pem_convert_array[cArr[i]] = (byte) i;
               i++;
           } else {
               return;  <= вот тут ругается
           }
       }
   }


Как мне его понять? Просто поменять return на break например?
Здесь типо должен быть выход из цикла
источник

ИТ

Иван Тимашков... in Android Guards
Mafioznik
Полный участок

static {
       int i = 0;
       for (int i2 = 0; i2 < 255; i2++) {
           pem_convert_array[i2] = -1;
       }
       while (true) {
           char[] cArr = pem_array;
           if (i < cArr.length) {
               pem_convert_array[cArr[i]] = (byte) i;
               i++;
           } else {
               return;  <= вот тут ругается
           }
       }
   }


Как мне его понять? Просто поменять return на break например?
проще удалить else
источник

w

waldo in Android Guards
Иван Тимашков
проще удалить else
источник

ИТ

Иван Тимашков... in Android Guards
Стереть:
else{return;}
источник

w

waldo in Android Guards
источник

Я

Ярослав in Android Guards
https://github.com/skylot/jadx/pull/1137
вот это годно будет
источник

R

Rtem in Android Guards
Неплохо =) А то я уже свое хотел писать =))
источник

D

Denys in Android Guards
Интересно, почему на базе IDEA не строят плагин, а свою полу-IDE делают? :)
источник

M

Mafioznik in Android Guards
Интересно, нужно будет попробовать 🤔
источник

M

Mafioznik in Android Guards
А оно сможет обойти не дебагабл приложения?)
источник

R

Rtem in Android Guards
Denys
Интересно, почему на базе IDEA не строят плагин, а свою полу-IDE делают? :)
Есть smalidea, но там своеобразно. Я тебе хотел сделать плагин для отладки на базе IDEA
источник

D

Denys in Android Guards
Rtem
Есть smalidea, но там своеобразно. Я тебе хотел сделать плагин для отладки на базе IDEA
Ну и в целом весь код интереснее в хорошей IDEA анализировать. Поиск, замена, структура, рефакторинг, data flow :)
источник