修复符号引用问题

This commit is contained in:
liankong
2025-03-30 17:32:35 +08:00
parent 470aaa29dc
commit 1090f64117

View File

@@ -75,10 +75,12 @@ static unsigned long sukisu_find_proxy_symbol(const char* name) {
struct CompactProxySymbol* symbol = &proxy_symbol[i]; struct CompactProxySymbol* symbol = &proxy_symbol[i];
if(strcmp(name, symbol->symbol_name) == 0) { if(strcmp(name, symbol->symbol_name) == 0) {
if(symbol->cached_address == NULL) { 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) { if(symbol->cached_address != NULL) {
return (unsigned long) &symbol->cached_address; return (unsigned long) &symbol->cached_address;
} else {
return 0;
} }
} }
} }
@@ -98,8 +100,8 @@ unsigned long sukisu_compact_find_symbol(const char* name) {
} }
} }
/* 如果符号名以 "kf__" 开头,尝试解析去掉前缀的部分 */ /* 如果符号名以 "kf_" 开头,尝试解析去掉前缀的部分 */
if (strncmp(name, "kf__", 4) == 0) { if (strncmp(name, "kf_", 3) == 0) {
addr = sukisu_find_proxy_symbol(name); addr = sukisu_find_proxy_symbol(name);
isFoundedProxy = 1; isFoundedProxy = 1;
if(addr != 0) { if(addr != 0) {