在 cycript 中,可以获取对c 函数指针的引用,但我无法使用该语法来检索指向 c++ 函数的指针,无论是使用符号表中的正确函数名称还是错误函数名称。
有没有办法从这里到达那里?
更新:
Saurik 输入的更新:
我没有尝试过来自 c 样式符号的函数指针,但是您绝对正确,需要去除前导下划线。_DES_encrypt3 需要通过以下方式访问:
cy# dlsym(RTLD_DEFAULT, "DES_encrypt3")
0x14dc19
这给了我一个有效的指针地址。
当我查看 xmpp::CapsManager::~CapsManager() 的损坏符号,即 __ZN4xmpp11CapsManagerD2Ev_1bf718 时,我尝试
cy# dlsym(RTLD_DEFAULT, "__ZN4xmpp11CapsManagerD2Ev_1bf718")
null
cy# dlsym(RTLD_DEFAULT, "_ZN4xmpp11CapsManagerD2Ev_1bf718")
null
cy# dlsym(RTLD_DEFAULT, "ZN4xmpp11CapsManagerD2Ev_1bf718")
null
这些变化都不会产生指针。