Рус Eng Cn 翻译此页面:
请选择您的语言来翻译文章


您可以关闭窗口不翻译
图书馆
你的个人资料

返回内容

控制论与编程
正确的文章链接:

使用invokedynamic指令隐藏调用的混淆

Korobeinikov Anatolii Grigor'evich

博士 技术科学

俄罗斯科学院N.V.Pushkov地面磁,电离层和无线电波传播研究所,联邦国家预算科学研究所圣彼得堡分院教授。

199034, Russia, g. Saint Petersburg, ul. Mendeleevskaya, 1

Korobeynikov_A_G@mail.ru
Kutuzov Il'ya Mikhailovich

圣彼得堡国立信息技术、力学与光学研究型大学计算机系统设计与安全系研究生

197101, Russia, St. Petersburg, Kronverkskiy prospect, d. 49

formalizator@gmail.com

DOI:

10.7256/2306-4196.2016.5.18686

评审日期

07-04-2016


出版日期

19-10-2016


注解: 本文研究的对象是隐藏方法调用的技术。 隐藏调用需要隐藏:实体依赖关系;数据处理逻辑;算法。 用于隐藏调用的方法受到语言技术及其性能的严重限制。 该方法可以直接调用,也可以:通过引导方法;从本机代码(JNI);通过反射;使用JRE1.7,InvokeDynamic。 给出了带有源代码的示例。 得出结论,在所考虑的方法中最有前途的是invokedynamic技术。 本文分析了隐藏方法调用的技术,如引导方法、通过本机代码调用方法、使用反射和InvokeDynamic对调用进行混淆。 本文讨论了隐藏方法调用的各种方法。 考虑了其中最受欢迎的混淆的特征。 Invokedynamic技术在所考虑的方法中看起来是最有希望的。 它允许您从源代码中完全删除方法的签名,只留下引导方法的服务信息。 通过正确实现bootstrap方法,可以创建无法反编译为有效Java,Groovy或Scala代码的字节码。


出版日期:

, , , , , , , , ,