关于Java加壳和代码混淆

 在C中,进行代码加密,首要经过加壳的方法。所谓加壳,即是先将程序代码加密,然后用特定的程序加载器,将代码解密后加载进内存,这样能够在避免代码的反编译,当然,有加壳东西,也有解壳东西,尽管不能100%避免crack,但仍然给代码增加一层有力的维护。
  然而在Java中,维护代码是件很困难的工作,由于class文件十分标准,很容易反编译,且反编译后的代码明晰可读。常见的维护办法是运用代码混淆器,打乱class和function以及变量的姓名,能够搅扰反编译后的代码的可读性。尽管简略提高了代码的安全性,但还仅仅适当于未加壳的C程序。
  java能够加壳吗?曾经我以为这是不能够的,由于动态加载代码这样的内存等级的操作,java无法做到,除非运用JNI(JavaNativeInterface),调用自个编写的C代码,在C代码中完成动态加载java代码。可是,C如何加载java代码呢?这需要对JVM适当的知道。所以其时的我以为这是不能够的。
  然而,最近接触的一些常识告诉我——java也能够加壳!!
  1.URLClassLoader。用URLClassLoader能够在java程序的运转时间,再将文件夹或许jar加入到classpath中,这个特性事实上即是动态加载。既然能够动态加载class的文件夹或许jar,为何不能够加载加密后的classes呢,将classes用自个的方法加密,在URLClassLoader调用时,运用自个的方法解密。不即是达到了加壳的目的了吗?不过解密的代码放在何处是个疑问,即是说解壳器的代码暴露在外,仍是很风险的。
  2.javassist。这实在是一个十分奇特的新技能,我是在学习Tapestry5时首次遇到这个包的,他能够动态创立java字节码,乃至能够修正你现已写好的函数,比如你的getter和setter,仅仅简略的读取和赋值,你能够在Runtime用他修正你的getter和setter,让你的getter和setter每次调用时都能够触发某些代码。凭借这项奇特的技能,必定能够完成更强壮的动态加载,加壳也就有了能够。

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-09-10 18:06:52

关于Java加壳和代码混淆的相关文章

专家和您一起谈谈java加壳的问题

问题 在C世界,对代码进行加密,主要通过加壳的方式.所谓加壳,就是先将程序代码加密,然后用特定的程序加载器,将代码解密后加载进内存,这样可以在防止代码的反编译,当然,有加壳工具,也有解壳工具,虽然不能100%防止crack,但仍然给代码增加一层有力的保护. 然而在Java世界,保护代码是件很困难的事情,因为class文件非常规范,极易反编译,且反编译后的代码清晰可读.常见的保护办法是使用混淆器,打乱class和function以及变量的名字,可以干扰反编译后的代码的可读性.虽然简单提高了代码的安

加密加壳-Foxpro的混淆器,有哪一位大侠可以阐述明确一点????

问题描述 Foxpro的混淆器,有哪一位大侠可以阐述明确一点???? 针对FOXPRO的加密加壳的问题,本人很想采用混淆器来解决一些问题,现在关键的问题,程序中含有联网络服务器数据库的句柄,这一点很让人头痛,如果用一个加密文件或加密字段来存这个句柄的关键内容,是可以不会直接写出来,但,如果破解高手用里面的程序照样读出这个内容,然后再赋到一个变量里,不是照样可以显示出来,根本是无法保密的,请教高手大虾们,给个清晰的思路!不胜感谢了!!! 解决方案 devmiao 苏小喵 Ds Rxr 不要客户端直

服务器-OXPRO的无法真正的加壳,或加密,有网络大虾建设,用混淆器.....

问题描述 OXPRO的无法真正的加壳,或加密,有网络大虾建设,用混淆器..... 对FOXPRO的无法真正的加壳,或加密,有网络大虾建设,用混淆器,而我的程序里又有联接网络服务器的句柄,如果被解开,是不是还是一点效果都没用呢!这种混淆器又怎么实现呢! 解决方案 是不是将文字加到一个加密字段或加密的文件里,再读来,那混淆后的语名,真的要分析出就这么一段,会有那么难吗,能否举个例子 解决方案二: 混淆器只是让代码难阅读,难懂,并不是保护不被破解.联结网络服务器的句柄,运行时动态生成,这样解开也是不能

C# 给WinForm程序加壳(写代码加)

问题描述 现在我开发好了一个WINFORM程序,需要对程序加壳,不是使用软件加,而是在程序中写代码加,没有接触过,请各位帮忙指导一下,最好能给个例子代码?谢谢,在线等立马给分! 解决方案 解决方案二:SharpAssembly作者就是SharpDevelop/SharpZipLib的作者MikeKrueger.SharpAssembly作用是不需要System.Reflection实现:1.程序集动态加载:2.直接访问方法的IL内容:3.共享访问(不用锁定程序集):4.可以用它实现你自己的反编译

java代码混淆工具求推荐

问题描述 java代码混淆工具求推荐 java代码混淆比较好用的工具,求推荐,比较常用的管用的,最好有教程,不知道哪里有比较详细的比较帖子.谢谢! 解决方案 BCompare 不用教程

大家有没有用过好点的java代码混淆工具?免费的那种!

问题描述 大家有没有用过好点的java代码混淆工具?免费的那种! 公司分下来的任务,周五就要交,求助啊!!求助啊!!求助啊!!求助啊!!求助啊!!求助啊!!求助啊!!求助啊!!求助啊!!求助啊!!求助啊!!求助啊!! 解决方案 什么叫代码混淆工具?

java给图片加水印效果代码

以前用到的java给图片加水印效果代码都有些小问题,今天我们修正了里面的问题 增加了补白的功能 重构了代码 import java.awt.alphacomposite; import java.awt.color; import java.awt.font; import java.awt.graphics2d; import java.awt.image; import java.awt.geom.affinetransform; import java.awt.image.affinetr

Java后端代码混淆应用实践

前言 前端代码因为需要直接传输到客户端执行,因此代码混淆技术较早的开始发展,当前比较成熟.后端代码长期以来混淆的需求并不突出,然而随着Java代码需要被客户接触到,并不放在公司完全受控的环境,如以apk形式在用户手机上或以应用形式在专有云中,因此后端代码混淆提到了日程中. 选型 成熟的Java混淆工具很多,如下表: 名称 授权 主页 yGuard LGPL http://www.yworks.com/products/yguard ProGuard GPLv2 https://www.guard

.net混淆加壳工具confuserex v0.6.0汉化版

问题描述 ConfuserEx支持.NET框架2.0-4.5和Mono(还有其他.NET框架):Symbol重命名WPF/BAML重命名ControlflowobfuscationMethodreferencehidingAntidebuggers/profilersAntimemorydumpingAntitampering(方法加密)嵌入式依赖Constant加密Resource加密Compressing输出扩展插件API适合.net程序加壳,分享给大家http://download.csd