Вопрос

Хорошо, поэтому я пытаюсь написать общий строку Deobfuscator (аналогично тому, что есть .net с простым сборщиком сборки)

Что я хочу сделать, так это получить инструкции метода через BCEL и выполнить их с помощью аргументов, которые я предоставляю, и иметь доступ к выводу этого метода. Возможно ли это сделать с любыми существующими библиотеками? Если так, могу ли я получить помощь?

Спасибо

Это было полезно?

Решение

Комбинация BCEL и размышлений/вызова может выполнить работу. Используйте BCEL, чтобы получить имена классов и методов (ваш LDC, invokestatic хитрость или что -то похожее) и вызовать метод сразу после. Вы можете сделать это, если поместите свои «тестовые классы» на трассе. Для меня нет необходимости выполнять байтовый код.


Если у вас есть класс и имя метода, это так:

Class clazz = Class.forName(yourClassName);
// either (for public methods)
Method method = clazz.getMethod(yourMethodName);
// or for protected / private methods:
Method method = clazz.getDeclaredMethod(yourMethodName, yourArgumentTypes);
method.setAccessible(true); 

// assuming the method is static
Object result = method.invoke(null, yourMethodArgs);
// otherwise: pass a object reference instead of null
// to call the method "on" that object
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top