From 1090f64117720b5dbaac2bcb324d61a563a484e5 Mon Sep 17 00:00:00 2001 From: liankong Date: Sun, 30 Mar 2025 17:32:35 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=AC=A6=E5=8F=B7=E5=BC=95?= =?UTF-8?q?=E7=94=A8=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/kpm/compact.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/kernel/kpm/compact.c b/kernel/kpm/compact.c index 81f5e347..d57bc53e 100644 --- a/kernel/kpm/compact.c +++ b/kernel/kpm/compact.c @@ -75,10 +75,12 @@ static unsigned long sukisu_find_proxy_symbol(const char* name) { struct CompactProxySymbol* symbol = &proxy_symbol[i]; if(strcmp(name, symbol->symbol_name) == 0) { if(symbol->cached_address == NULL) { - symbol->cached_address = (void*) kallsyms_lookup_name(name); + symbol->cached_address = (void*) kallsyms_lookup_name(symbol->compact_symbol_name); } if(symbol->cached_address != NULL) { return (unsigned long) &symbol->cached_address; + } else { + return 0; } } } @@ -98,8 +100,8 @@ unsigned long sukisu_compact_find_symbol(const char* name) { } } - /* 如果符号名以 "kf__" 开头,尝试解析去掉前缀的部分 */ - if (strncmp(name, "kf__", 4) == 0) { + /* 如果符号名以 "kf_" 开头,尝试解析去掉前缀的部分 */ + if (strncmp(name, "kf_", 3) == 0) { addr = sukisu_find_proxy_symbol(name); isFoundedProxy = 1; if(addr != 0) {