Что означает запутывание API? - PullRequest
0 голосов
/ 18 сентября 2018

Я сейчас читаю исследовательскую работу по запутыванию.Вот часть статьи, которая относится к моему вопросу.

"в то время как современные схемы запутывания поднимают некоторые островки статического анализа, такие как изменение компоновки исходного кода, изменение потока управления и изменение данных, они легкоподвергается анализу обратного инжиниринга из-за отсутствия сокрытия API. Следовательно, необходима схема количественной оценки, чтобы гарантировать, что запутывание применено к соответствующему API с достаточной степенью устойчивости к обратному инжинирингу. "

1 Ответ

0 голосов
/ 18 сентября 2018

«Обфускация API», вероятно, означает изменение имен идентификаторов, таких как имена классов, имена методов, имена полей и т. Д., На очень неописательные имена.чтобы читатели вашего кода не знали, что делает ваш код.

Proguard - это такой инструмент. Здесь - это сообщение, которое я нашел и которое использует Proguard для запутывания частных методов в простом классе.Вы можете увидеть, как privateStaticMethod превратился в a, и как имена параметров превратились в paramString1 и paramString2.

. Таким образом, читатели не будут знать, что a делает толькоглядя, потому что a буквально ничего им не говорит о том, что на самом деле делает метод.Методы, которые вызывает a, могут быть также запутаны как b или c, что еще больше затрудняет понимание того, что делает ваш код.

Обратное проектирование здесь относится к попыткам выяснить, какЗапутанный код выглядел оригинально.Очевидно, что изменение имен методов и параметров затрудняет реинжиниринг, чем просто изменение потока управления и компоновки кода.

...