针对Java易遭受逆向工程攻击的原因

针对Java易遭受逆向工程攻击的原因

针对Java易遭受逆向工程攻击的原因,将向大家介绍目前市场上关于防止Java免受逆向工程攻击的集中措施,同时指出这几种措施在防范逆向工程攻击的时候存在的不足之处。

首先是板载措施,它并不足以防止逆向工程。大多数虚拟机都包含一些使逆向工程复杂化的功能。Java允许用户在JAR存档中提供的每个类上设置一个数字证书,以确保原始文件没有被更改。虽然这样做并无害处,但该功能相当容易清除,并且仅针对静态补丁方法提供保护,而静态补丁只是攻击场景中的一小部分。而且,这种方法并不能针对运行时应用于内存的补丁提供保护。

Java还通过虚拟机执行字节码验证器,该验证器在执行通过的字节码之前对其进行自动分析。这可以防止执行“奇怪”的代码,也使字节码注入变得更加困难。

然而,尽管这些措施给攻击者造成了困难,但对于充分保护知识产权还远远不够。

其次是Java封装技术。开发人员通常用以防止.class文件静态分析和字节码反汇编的一种方法是封装,这种方法通过应用加密/解密完整文件来防止对类文件的分析。通过封装,开发人员将受保护文件的原始加载器更换为处理加密/解密的自定义加载器。加密使用将.class文件从标准Java .class格式更改为仅“密钥”所有者可读格式的算法来防止对这些文件的分析。然而,.class文件的字节码在一个内存位置中仍保持可读,在系统加载器尝试加载该类之前的时刻,通常可从该位置访问字节码。如果黑客能够找到那个内存位置,HASP,就可以访问原始状态的该类,Safenet。

最后,防止黑客攻击该内存位置需要第二种技术,称为混淆。混淆可产生一个更加复杂、难于理解并且与原始代码具有相同行为方式的代码版本。有几种不同类型的混淆方法可用于指令集:程序员可以通过替换二进制代码中的所有字符串来混淆代码,这样就更加难以找到一个好的切入点来开始逆向工程攻击。他们可以通过插入指向垃圾代码的跳转并返回来迷惑攻击者,或混淆源代码或字节码。

开发人员也可以选择使用名为Const2Code转换的技术来混淆常量。例如,密钥有时在应用程序中存储为一组字节。如果黑客确定了这些字节的位置,他们就可以访问这些字节。为混淆一个常量(如密钥),Const2Code算法将常量转换为可产生同一常量的多个不同的命令。

例如,为了在源代码段中隐藏常量cst=0x12345678,可以将该常量简单地分为几个算术运算,如加、减等等。A = 0x9ABCDF00;B=0x2;C=0x135799E00。现在让我们使用这三个变量重新计算出常量0x12345678。我们的原始常量为:cst = C / B + A – 0x88888888 – A + 1000= 0x12345678。如果应用程序仅使用该例程来计算常量,攻击者就必须理解其中的含义,IKEY 1032,而不是简单地获取该常量。

java加密

.net加密

转载于:https://my.oschina.net/u/915813/blog/143034

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/110083.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 爬虫工具_应用程序market

    爬虫工具_应用程序market一个简单的异步爬虫.私信太多,统一回答一下:关于异步函数的:1.真正派发任务的是consumer这个coroutine,所以也在内部做了并发控制.2.process_content用于获取html及保存到mysql.关于异步相关(asyncio)的:1.await相当于yieldfrom.2.await后面是一个coroutine,…

    2025年7月26日
    0
  • pycharm如何打开终端_mac怎么打开终端窗口

    pycharm如何打开终端_mac怎么打开终端窗口Pycharm内打开终端

    2022年8月25日
    8
  • 汉语拼音发音教学视频_钢琴手把手教学视频

    汉语拼音发音教学视频_钢琴手把手教学视频pycharm汉化pycharm怎么改成汉语,手把手教学,超详细(汉语插件安装教程)首先,打开pycharm。然后点击左上角File(文件)会弹出如下页面继续点击蓝色位置Settings…(设置)会弹出一个页面如下:继续点击蓝色位置Plugins(插件)在搜索栏中输入chinese,如图然后安装第二个(可以滑动找一下),点击Install(安装),会加载一下下载进度条,然后变成这样:安装之后点击绿色按钮RestartIDE,会弹出点击蓝色按钮Restart,然后pycharm会重启,重启后

    2022年8月26日
    2
  • Django之ORM模型建议收藏

    ORM介绍对象关系映射(ObjectRelationalMapping,简称ORM)模式的作用是在关系型数据库与业务实体对象之间进行映射,这使得我们不需要再去和复杂的SQL语句打交道,只需要简单

    2021年12月19日
    39
  • 英特尔nuc能代替主机吗_终于圆满了!最新款的Intel NUC迷你主机上线

    近日,Intel美国官网上偷偷上线了一款全新的IntelNUC迷你主机,型号为KitNUC5PGYH,其最大的特点就是它具有完整的PC主机结构,是一台真正的PC主机,它包含有一颗PentiumN3700处理器,一条2GBDDR3L内存,32GB的eMMC闪存(嵌在主板上),一块主板。参数规格配置上,这款IntelNUC使用PentiumN3700处理器,4核心,主频2.4GHz,三级缓…

    2022年4月7日
    76
  • CLion 激活码 2021 8月(JetBrains全家桶)「建议收藏」

    (CLion 激活码 2021 8月)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~1STL5S9V8F-eyJsaWNlbnNlSWQiOi…

    2022年3月27日
    97

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号