gpt4 book ai didi

c - 如何更改 dlsym() 返回指针值

转载 作者:行者123 更新时间:2023-11-30 15:05:41 26 4
gpt4 key购买 nike

我正在尝试使用 dlsym() 在 libcrypto.so 文件中查找 connect 符号,并希望用我的方法替换此 connect

void * lib_orig_tols  = dlopen(libcrypto.so, RTLD_GLOBAL);   

void * p_orig_connectOriginal;
p_orig_connectOriginal = (void*)dlsym(lib_orig_tols, "connect");

if (p_orig_connectOriginal != NULL)
{
LOGI(" is not NULL");

void *p_orig_connect = (void*)*((unsigned *)p_orig_connectOriginal);

*((unsigned *)p_orig_connectOriginal) = (unsigned)( my_crypto_connect);
}


int my_crypto_connect(int , const struct sockaddr , socklen_t){
**
***********
***************
**********
}

我的应用程序因错误而崩溃
不为 NULL

致命信号 11 (SIGSEGV),代码 2,tid 7909 中的故障地址 0xb6e4755d

我做错了什么吗?

最佳答案

嗯,你的代码不完整,充满了语法错误,还包含虚假的类型转换(使用 intptr_t)

另外,libcrypto.so 中没有“连接”。从以下选项中选择一个:

BIO_CONNECT_free
BIO_CONNECT_new
BIO_new_connect
BIO_s_connect

关于c - 如何更改 dlsym() 返回指针值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39716814/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com