Java-JNI调用动态库获取硬件信息并实现软件加密

需积分: 43 13 下载量 3 浏览量 更新于2024-09-11 收藏 56KB DOCX 举报
本文档详细介绍了如何使用Java的JNI(Java Native Interface)技术来调用动态链接库(DLL)获取硬件信息,并将其应用到软件加密过程中。以下是整个过程的步骤详解: 1. **环境设置**:首先在MyEclipse中创建一个名为"test"的Web工程,以便将JNI代码整合到Web应用中。在这个工程下创建一个名为"JNI"的包,其中包含一个名为"getCPUID"的类。 2. **定义JNI方法**:在getCPUID类中,创建一个名为`getcpuID`的native静态方法,这个方法的实现将在后续的动态链接库中提供。使用`System.loadLibrary("getCPUID")`加载对应的DLL。 3. **发布Web程序**:发布Web应用,确保将JNI类编译成.class文件,并将其部署到服务器的特定路径(如D:\yys\resin-pro-3.1.7a\deploy\test2\WEB-INF\classes\JNI)。 4. **生成头文件**:在Web应用的JNI文件夹路径下,使用`javah`命令生成JNI接口头文件JNI_getCPUID.h。 5. **创建C++项目**:用Visual Studio 2008创建一个空的Win32动态链接库项目,其名称应与Java中加载的DLL名称匹配(getCPUID)。 6. **准备头文件**:将Java的jni.h、win32jin_md.h以及自动生成的JNI_getCPUID.h头文件复制到C++项目的源代码目录。 7. **添加头文件和源代码**:在C++项目中,将头文件添加到项目的头文件夹,并编写getCPUID.cpp文件,包含JNI函数的C++实现,同时包括必要的`#include`指令。 8. **C++实现**:在getCPUID.cpp中,使用JNI头文件提供的接口来实现`getcpuID`函数,可能涉及内存管理和数据类型转换,以与Java交互并返回所需的硬件信息。 9. **编译和链接**:编译C++源代码,生成DLL文件,确保所有依赖正确处理。 10. **集成与加密**:完成DLL的编译后,将这个包含硬件信息获取功能的DLL与Java应用集成。在此过程中,可以考虑使用JNI进行软件加密,例如通过将敏感信息存储在JNI层,以提高安全性。 通过以上步骤,开发者能够利用Java的JNI技术调用C++或C编写的动态库,获取硬件信息,并将其应用到软件的加密功能中,以实现跨平台的高效安全操作。需要注意的是,实际操作中可能涉及到权限管理、异常处理以及性能优化等问题,开发者需根据具体需求进行调整。
2012-11-15 上传
本工具是对java class文件进行加密保护防止反编译的工具!本工具全面支持linux/unix/windows操作系统。 继推出v1.0版本后,获得了用户大量的支持与的反馈,我们再次推出本v2.0版,对加密算法进行了更大的改进,安全性大大提升 ! 众所周知,java编译后的class文件是一种中间字节码文件, 很容易被反编译工具反编译,而传统的java源代码保护方法基本都是采用混淆的方式, 但这样会带来很多麻烦,而且也不能真正保护class文件, 本工具是对class文件进行加密,采用jni的方式解密运行, 加密算法达到256位,加密后的class文件不可能被破解,反编译工具也对加密后的class文件无能为力。 运行方式: 运行时,要能正确的加载加密后的class文件, 必须使用我们提供的动态链接库classloader.dll(windows操作系统)或者libclassloader.so(Linux、Unix操作系统)。 执行java时带上参数-agentlib:<动态文件所在路径>\classloader 注意此处不要后缀名.dll(或者.so)。 如: 我把classloader.dll放在C:\目录下; 运行加密后的class文件命令如下: windows下执行java: java -agentlib:C:\classloader Sample Linux、Unix等系列操作系统下执行java: java -agentlib:/home/classloader Sample 或者把libclassloader.so拷贝到如“/home/yzj/jdk1.6.0_23/jre/lib/i386/”这jdk的运行目录下, 然后执行java如:java -agentlib:classloader Sample 当然如果class文件没加密,这样运行也不会出错! 应用场合: 独立的应用程序,运行java时,带上参数-agentlib:<动态库文件所在路径>\classloader Tomcat、Jboss等Java application server修改启动脚本, 把执行java的命令行后面加上参数-agentlib:<动态链接库文件所在路径>\classloader 适应环境: 操作系统:所有操作系统,Windows系统、Linux/Unix,只是运行时, 使用的动态链接库文件不一样而已,其它配置完全一样。 jdk必须1.5以上。 下载地址: http://enc.sooshow.com/javaenc/jenc2.0.rar http://www.cr8ge.com/admin/upload/2011020917102317195.rar 软件截图地址: http://enc.sooshow.com/javaenc/v2.gif logo地址: http://enc.sooshow.com/javaenc/logo.jpg 官方网站: http://enc.sooshow.com 备注:如果下载站下载下来的程序有运行bug,请从上面两个下载地址更新软件。并给我们留言!谢谢... 升级提示:v2.2完全开放,不需要注册了!希望大家推广java加密技术。