Я работаю над проектом по созданию Call Graph приложений Android (в APK) с преобразованием SPARK для анализа указателей. Чтобы анализ указателей был точным, необходимо учитывать рефлексивные вызовы внутри apk. Таким образом, я наткнулся на инструмент DroidRA, который можно использовать для создания расширенной версии APK, в которой есть отражающие вызовы.
На большинстве APK метод init (...) в методе main () исходного кода DroidRA может успешно генерировать класс DummyMainClass вместе с методом dummy main (). Однако при запуске метода refleAnalysis () DummyMainClass таинственным образом исчезает из Scene.v (), показывая следующее сообщение об ошибке:
Используя тот же исходный код DroidRA, я мог успешно использовать инструментальные средства и создавать ускоренные версии очень небольшого количества APK в моем наборе данных. С этими APK я мог наблюдать, используя точки останова, что класс DummyMainClass не исчезает при запуске метода refleAnalysis (). Тем не менее, я считаю, что что-то - возможно, изменение настроек или некоторые аргументы - можно сделать, чтобы заставить его работать более последовательно.
Существуют ли какие-либо специальные параметры / аргументы в DroidRA, которые я мог бы изучить, или необходимо внести какие-либо необходимые изменения в исходный код для анализа последних APK, поскольку прошло несколько лет с момента последнего обновления исходного кода?