针对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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • RS232接口定义

    RS232接口定义RS232接口定义RS232接口定义  RS-232C接口定义(9芯)针脚定义符号1载波检测DCD2接收数据RXD3发送数据TXD4数据终端准备好DTR5信号地SG6数据准备好DSR7请求发送RTS8清除发送CTS9振铃提示RIPin1Receiv

    2022年7月15日
    15
  • layui实现iframe框架_layui table重新渲染

    layui实现iframe框架_layui table重新渲染layuiAdmin.std(iframe版)是完全基于layui架构而成的通用型后台管理模板系统,采用传统的iframe多页面开发模式,可更快速直接地开发网页后台应用程序,无需过多地学习成本,简单高效,撸起袖子直接干。题外该文档适用于layuiAdmin.std常规版(iframe),阅读之前请务必确认是否与你使用的版本对应。熟练掌握layuiAdmin的前提是熟练…

    2022年10月28日
    0
  • Android开发入门书籍推荐

    Android开发入门书籍推荐http://liangruijun.blog.51cto.com/3061169/623548/Android开发入门书籍推荐Android编程入门教程andbookandbook是我看到的最简单但最好的Android程序开发入门书籍,内容仅有60多页,图文并茂,如果你从来没有接触过Android开发,也完全可以通过阅读此书了解程序开发过程,甚至对APK程

    2022年6月22日
    28
  • echarts的grid属性详解

    echarts的grid属性详解grid配置项:图标离容器的距离show:是否显示直角坐标系网格———–值:true?falseleft:图表离容器左侧的距离—————–值:number?百分比top:图表离容器顶部的距离—————–值:number?百分比right:图表离容器右侧的距离—————值:number?百分比bottom:图表离容器底部的距离————值:number?百分比backgroundColor:网格背景色—

    2022年7月15日
    40
  • Windows 网络通信套接字技术

    Windows 网络通信套接字技术一、TCP/IP介绍1、TCP/IP体系结构TCP/IP协议实际上就是在物理网上的一组完整的网络协议。其中TCP是提供传输 层服务,而IP则是提供网络层服务。TCP/IP协议包括如下协议,其结构如图所示。IP: 网间协议(Internet Protocol) 负责主机间数据的路由和网络上数据的存储。 同时为ICMP,TCP,UDP提供分组发送服务。用户进程通常不需要涉及这一层。ARP: …

    2022年8月18日
    3
  • 小程序列表跳转至详情_小程序跳转链接怎么获取

    小程序列表跳转至详情_小程序跳转链接怎么获取效果展示:列表页js部分:onLoad:function(options){varthat=this;wx.request({url:’你的接口’,data:{ 接口参数},header:{‘content-type’:’ap…

    2022年8月19日
    3

发表回复

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

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