Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

feifa168/NativeEncrypt

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

简介

NativeEncrypt用于加密java字节码文件,供java程序加密使用,详情参见ModifyJar.Encrypt

用法

  • 实现java接口文件com_ft_encrypt_Encrypt_encrypt.h,windows下生产动态库libNativeEncrypt。

加密算法可以任意修改,这里只给出一种简单的实现以供测试。

JNIEXPORT jbyteArray JNICALL Java_com_ft_encrypt_Encrypt_encrypt
  (JNIEnv *, jobject, jbyteArray) {
    jsize len =_env->GetArrayLength(_buf);
    unsigned char* dst = (unsigned char*)_env->GetByteArrayElements(_buf, 0);

    for (int i = 0; i < len; ++i) {
        dst[i] = dst[i] ^ 0x07;
    }

    _env->SetByteArrayRegion(_buf, 0, len, (jbyte *)dst);
    return _buf;
}
  • java中com.ft.encrypt.Encrypt类加载libNativeEncrypt
    static {
        System.loadLibrary("libNativeEncrypt");
    }
  • 调用接口函数encrypt得到加密后的buffer。本动态库只提供加密,具体加密哪些文件通过调用程序控制。
    • 遍历jar包中所有的类,只加密指定的类,这里只加密com.ft.encrypt包下的文件(这个可以通过配置文件或参数传入修改,也可以加密所有类)
    • 执行加密算法
    • 返回加密后的buffer

About

用于加密java字节码文件

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  
Morty Proxy This is a proxified and sanitized view of the page, visit original site.