首页
社区
课程
招聘
[原创]java外壳保护原理
发表于: 2016-9-14 22:15 4162

[原创]java外壳保护原理

2016-9-14 22:15
4162

好长时间没有碰过java加解密了,今天拿出来翻翻

        先随便写一个可以运行的Java文件 编译成xxx.class文件,然后在文件尾部添加一段标志数据。现在的xxx.class文件再用Java xxx已经报错了,就理解成xxx.class文件已经被我们加密了吧

        如果想正确运行这个文件该怎么办呢?现在就提到了正题,使用JVMTI技术。
        这个JVMTI是java虚拟机调试接口,具体的大家网上搜索就行了。
        下面举个栗子:
        加密代码:

#include <stdio.h>  
#include <windows.h>  
  
BYTE EncryptFlag[10] = { 0x73, 0x75, 0x70, 0x65, 0x72, 0x5F, 0x6D, 0x69, 0x6D, 0x69 };  //随意加的加密标记
  
  
int main()  
{  
    HANDLE hFile = CreateFile("Jvmti.class", GENERIC_WRITE, FILE_SHARE_WRITE, NULL, OPEN_EXISTING,NULL,NULL);  
    if (hFile == NULL)  
    {  
        CloseHandle(hFile);  
        return 0;  
    }  
    SetFilePointer(hFile, 0, 0, FILE_END);  
    DWORD dwnum = 0;  
    BOOL is_Write = WriteFile(hFile, EncryptFlag, 10, &dwnum, NULL);  
    if (!is_Write)  
    {  
        printf("写入失败!\n");  
        CloseHandle(hFile);  
        return 0;  
    }  
    printf("写入成功!\n");  
    getchar();  
    return 0;  
}  


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 3
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//