「java代码防护」java保护源代码

博主:adminadmin 2022-12-16 15:42:09 82

本篇文章给大家谈谈java代码防护,以及java保护源代码对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

有哪些防止反编译 Java 类库 jar 文件的办法

java本就是开源的,你加密感觉怪怪的。

想防止反编译,最简单的方法就是你可以向Jar注入无效代码。比如建一个类,建一个没有意义的方法private class Invalid{ },然后输出为jar。用解压缩软件打开这个jar,以文本方式找到那个类的class,然后将那个方法名的一个字母删掉,然后更新入压缩文件中。用jd-gui反编译提示错误。这种方式不能用于android中。

还有种方法就是混淆代码,加密class和高级加密class,方式比较复杂,可以自行百度。

代码的危害

解析恶意代码的危害机制与防范

摘要:在当今互联网时代,很多人还在受着网页恶意代码的困扰,在网站代码编辑过程中,更会因为恶意代码的转载使用导致整个网页的瘫痪。本文就“恶意代码”的危害和防范来进行深入解析,以激发我们的安全防范意识,积极应对来自网络的安全威胁。

关键词:恶意代码Java Applet JavaScript ActiveX

一、恶意代码综述

恶意代码主要包括计算机病毒(Virus)、蠕虫(Worm)、木马程序(Trojan Horse)、后门程序(Backdoor)、逻辑炸弹(Logic Bomb)等等。它使用SCRIPT语言编写的一些恶意代码利用IE的漏洞来实现病毒植入。当用户登录某些含有网页病毒的网站时,网页病毒便被悄悄激活,这些病毒一旦激活,可以利用系统的一些资源进行破坏。

随着互联网信息技术的不断发展,代码的“恶意”性质及其给用户造成的危害已经引起普遍的关注,因此我们有必要对恶意代码进行一番了解,让其危害降低至最低程度。

二、恶意代码的表现形式

(一)网页病毒类恶意代码

网页病毒类恶意代码,顾名思义就是利用软件或系统操作平台的安全漏洞,通过嵌入在网页上HTML标记语言内的Java Applet 应用程序、JavaScript 脚本程序、ActiveX 网络交互支持自动执行,强行修改用户注册表及系统配置,或非法控制用户系统资源、盗取用户文件、恶意删除文件,甚至格式化硬盘的非法恶意程序。

根据目前较流行的常见网页病毒的作用对象及表现特征,网页病毒可以归纳为以下两大种类:

(1)通过Java Script、Applet、ActiveX 编辑的脚本程序修改IE 浏览器,表现为:

A 默认主页(首页)被修改;B 主页设置被屏蔽锁定,且设置选项无效不可修改;C 默认的IE 搜索引擎被修改;D 鼠标右键菜单被添加非法网站广告链接等。

(2)通过Java Script、Applet、ActiveX 编辑的脚本程序修改用户操作系统,表现为:

A 开机出现对话框(通常都是用户不知所云的内容);B 系统正常启动后,但IE 被锁定网址自动调用打开;C 格式化硬盘;D 非法读取或盗取用户文件;E 锁定禁用注册表,编辑reg,转自[星论文网] 注册表文件格式时出现打开方式错误。

(二)脚本类恶意代码

脚本实际上就是程序,一般都是由应用程序提供的编辑语言。应用程序包括Java Script、VBScript、应用程序的宏和操作系统的批处理语言等。脚本在每一种应用程序中所起的作用都是不相同的,比如在网页中可实现各种动态效果,在OFFICE 中通常是以“宏”来执行一系列命令和指令,可以实现任务执行的自动化,以提供效率,或者制造宏病毒。

(三)漏洞攻击类代码

是利用软件或者操作系统的漏洞而编写的程序,对用户系统或者网络服务器进行攻击。比如黑客利用微软IE 浏览器漏洞,编写漏洞攻击代码对用户进行攻击。

三、恶意代码的实现机制

恶意代码的行为表现各异,破坏程序千差万别,但基本作用机制大体相同,其整个作用过程分为6个部分:

①侵入系统。侵入系统是恶意代码实现其恶意目的的必要条件。恶意代码入侵的途径很多,如:从互联网下载的程序本身就可能含有恶意代码;接受已经感染恶意代码的电子邮件;从光盘或U盘往系统上安装未经审查的软件;黑客或者攻击者故意将恶意代码植入系统等。

②维持或提升现有特权。恶意代码的传播与破坏必须盗用用户或者进程的合法权限才能完成。

③隐蔽策略。为了不让系统发现恶意代码已经侵入系统,恶意代码可能会改名、删除源文件或者修改系统的安全策略来隐藏自己。

④潜伏。恶意代码侵入系统后,等待一定的条件,病毒具有足够的权限时,就发作进行破坏活动。

⑤破坏。恶意代码的本质具有破坏性,其目的是造成信息丢失、泄密,破坏系统完整性等。

⑥重复1至5对新的目标实施攻击过程。

四、恶意代码的防范方法

目前,恶意代码防范方法主要分为两方面:基于主机的恶意代码防范方法和基于网络的恶意代码防范方法。

(一)基于主机的恶意代码防范方法

①基于特征的扫描技术:基于主机的恶意代码防范方法是目前检测恶意代码最常用的技术。扫描程序工作之前,必须先建立恶意代码的特征文件,根据特征文件中的特征串,在扫描文件中进行匹配查找。用户通过更新特征文件更新扫描软件,查找最新的恶意代码版本。这种技术广泛地应用于目前的反病毒引擎中。

②校验和:校验和是一种保护信息资源完整性的控制技术,例如Hash 值和循环冗余码等。只要文件内部有一个比特发生了变化,校验和值就会改变。未被恶意代码感染的系统首先会生成检测数据,然后周期性地使用校验和法检测文件的改变情况。

③安全操作系统对恶意代码的防范:恶意代码成功入侵的重要一环是,获得系统的控制权,使操作系统为它分配系统资源。无论哪种恶意代码,无论要达到何种恶意目的,都必须具有相应的权限。否则它将不能实现其预定的恶意目标,或者仅能够实现其部分恶意目标。

(二)基于网络的恶意代码防范方法

由于恶意代码具有相当的复杂性和行为不确定性,恶意代码的防范需要多种技术综合应用,包括恶意代码监测与预警、恶意代码传播抑制、恶意代码漏洞自动修复、恶意代码阻断等。基于网络的恶意代码防范方法包括:恶意代码检测防御和恶意代码预警。

这些主要是网页恶意代码,也就是网页病毒造成的危害。而用脚本编写的蠕虫病毒的危害就更大了,它不再是针对一台计算机,而是迅速传播,对网络上所有计算机造成危害,直至网络被拖垮最后崩溃。

五、结语

在互联网信息化高速发展的今天,任何软件在编写时或多或少都有自己的漏洞,为此我们应该做到:

1)安全设置。我们上网浏览时不能抱有侥幸心理,不关心安全设置,认为恶意代码与我无缘,对最基本的浏览器安全设置问题也不关心,从而降低了系统抵御恶意代码的免疫能力,致使系统在遭遇恶意代码时不能幸免于难。

2)不浏览来历不明的网站。不要轻易去浏览一些来历不明的网站和下载相关内容。

3)软件升级,安装系统补丁。软件要及时更新版本,尤其是操作系统,一定要常“打”补丁常升级。

4)安装杀毒软件(防火墙)。安装并及时将杀毒软件(防火墙)升级至最新版本,同时开启实时监控功能并不定期杀毒,最大限度地把恶意代码拒之门外。 本文出自: http://,转自[星论文网]

怎么防止Java开发出来的程序被别人反编译

防止Java开发出来的程序被别人反编译有很多种方法,下面给你介绍几种:

1、隔离Java程序

最简单的方法就是让用户不能够访问到Java Class程序,这种方法是最根本的方法,具体实现有多种方式。例如,开发人员可以将关键的Java Class放在服务器端,客户端通过访问服务器的相关接口来获得服务,而不是直接访问Class文件。这样黑客就没有办法反编译Class文件。目前,通过接口提供服务的标准和协议也越来越多,例如 HTTP、Web Service、RPC等。但是有很多应用都不适合这种保护方式,例如对于单机运行的程序就无法隔离Java程序。

2、对Class文件进行加密

为了防止Class文件被直接反编译,许多开发人员将一些关键的Class文件进行加密,例如对注册码、序列号管理相关的类等。在使用这些被加密的类之前,程序首先需要对这些类进行解密,而后再将这些类装载到JVM当中。这些类的解密可以由硬件完成,也可以使用软件完成。

3、转换成本地代码

将程序转换成本地代码也是一种防止反编译的有效方法。因为本地代码往往难以被反编译。开发人员可以选择将整个应用程序转换成本地代码,也可以选择关键模块转换。如果仅仅转换关键部分模块,Java程序在使用这些模块时,需要使用JNI技术进行调用。

4、代码混淆

代码混淆是对Class文件进行重新组织和处理,使得处理后的代码与处理前代码完成相同的功能(语义)。但是混淆后的代码很难被反编译,即反编译后得出的代码是非常难懂、晦涩的,因此反编译人员很难得出程序的真正语义。从理论上来说,黑客如果有足够的时间,被混淆的代码仍然可能被破解,甚至目前有些人正在研制反混淆的工具。但是从实际情况来看,由于混淆技术的多元化发展,混淆理论的成熟,经过混淆的Java代码还是能够很好地防止反编译。

不同保护技术比较希望能给大家带来参考:

【转】如何保护Java代码

以下从技术角度就常见的保护措施 和常用工具来看看如何有效保护java代码:1. 将java包装成exe 特点:将jar包装成可执行文件,便于使用,但对java程序没有任何保护。不要以为生成了exe就和普通可执行文件效果一样了。这些包装成exe的程序运行时都会将jar文件释放到临时目录,很容易获取。常用的工具有exe4j、jsmooth、NativeJ等等。jsmooth生成的exe运行时临时目录在exe所在目录中或是用户临时目录 中;exe4j生成的exe运行时临时目录在用户临时目录中;NativeJ生成的exe直接用winrar打开,然后用zip格式修复成一个jar文件,就得到了原文件。如果只是为了使用和发布方便,不需要保护java代码,使用这些工具是很好的选择。2. java混淆器特点:使用一种或多种处理方式将class文件、java源代码进行混淆处理后生成新的class,使混淆后的代码不易被反编译,而反编译后的代码难以阅 读和理解。这类混淆器工具很多,而且也很有成效。缺点:虽然混淆的代码反编译后不易读懂,但对于有经验的人或是多花些时间,还是能找到或计算出你代码中隐藏的敏感内容,而且在很多应用中不是全部代码都能混淆的,往往一些关键的库、类名、方法名、变量名等因使用要求的限制反而还不能混淆。3. 隔离java程序到服务端特点:把java程序放到服务端,让用户不能访问到class文件和相关配套文件,客户端只通过接口访问。这种方式在客户/服务模式的应用中能较好地保护java代码。缺点是:必须是客户/服务模式,这种特点限制了此种方式的使用范围;客户端因为逻辑的暴露始终是较为薄弱的环节,所以访问接口时一般都需要安全性认证。4. java加密保护特点:自定义ClassLoader,将class文件和相关文件加密,运行时由此ClassLoader解密相关文件并装载类,要起到保护作用必须自定 义本地代码执行器将自定义ClassLoader和加密解密的相关类和配套文件也保护起来。此种方式能很有效地保护java代码。缺点:可以通过替换JRE包中与类装载相关的java类或虚拟机动态库截获java字节码。 jar2exe属于这类工具。5. 提前编译技术(AOT) 特点:将java代码静态编译成本地机器码,脱离通用JRE。此种方式能够非常有效地保护java代码,且程序启动比通用JVM快一点。具有代表性的是GNU的gcj,可以做到对java代码完全提前编译,但gcj存在诸多局限性,如:对JRE 5不能完整支持、不支持JRE 6及以后的版本。由于java平台的复杂性,做到能及时支持最新java版本和JRE的完全提前编译是非常困难的,所以这类工具往往采取灵活方式,该用即时编译的地方还是 要用,成为提前编译和即时编译的混合体。缺点:由于与通用JRE的差异和java运用中的复杂性,并非java程序中的所有jar都能得到完全的保护;只能使用此种工具提供的一个运行环境,如果工具更新滞后或你需要特定版本的JRE,有可能得不到此种工具的支持。 Excelsior JET属于这类工具。6. 使用jni方式保护特点:将敏感的方法和数据通过jni方式处理。此种方式和“隔离java程序到服务端”有些类似,可以看作把需要保护的代码和数据“隔离”到动态库中,不同的是可以在单机程序中运用。缺点和上述“隔离java程序到服务端”类似。7. 不脱离JRE的综合方式保护特点:非提前编译,不脱离JRE,采用多种软保护方式,从多方面防止java程序被窃取。此种方式由于采取了多种保护措施,比如自定义执行器和装载器、加密、JNI、安全性检测、生成可执行文件等等,使保护力度大大增强,同样能够非常有效地保护java代码。缺点:由于jar文件存在方式的改变和java运用中的复杂性,并非java程序中的所有jar都能得到完全的保护;很有可能并不支持所有的JRE版本。 JXMaker属于此类工具。8. 用加密锁硬件保护特点:使用与硬件相关的专用程序将java虚拟机启动程序加壳,将虚拟机配套文件和java程序加密,启动的是加壳程序,由加壳程序建立一个与硬件相关的 受保护的运行环境,为了加强安全性可以和加密锁内植入的程序互动。此种方式与以上“不脱离JRE的综合方式保护”相似,只是使用了专用硬件设备,也能很好地保护java代码。缺点:有人认为加密锁用户使用上不太方便,且每个安装需要附带一个。从以上描述中我们可以看出:1. 各种保护方式都有其优缺点,应根据实际选用2. 要更好地保护java代码应该使用综合的保护措施3. 单机环境中要真正有效保护java代码,必须要有本地代码程序配合当然,安全都是相对的,一方面看你的保护措施和使用的工具能达到的程度,一方面看黑客的意愿和能力,不能只从技术上保护知识产权。总之,在java 代码保护方面可以采取各种可能的方式,不可拘泥于那些条条框框。

如何防止java文件被反编译

无法防止。.class文件的标准是公开的,无法防止别人反编译你的代码。

你顶多可以用代码扰乱工具扰乱你的代码,这样反编译的代码就难以阅读。比如可以试试用proguard来扰乱(“加密”)和反扰乱(“解密”)你的代码。

但是java有那么多很不错的代码阅读分析工具,即使你用了扰乱器,也不能保证代码的安全。

如何防止网站被SQL注入攻击之java网站安全防护

1. 不要拼接字符串,特殊字符的过滤,以及一些特殊参数的特殊处理

2 .设置账号权限

3.尽量避免直接拼接的sql 用带参数的sql就可以了

希望可以帮到您,谢谢!

关于java代码防护和java保护源代码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-16,除非注明,否则均为首码项目网原创文章,转载请注明出处。