OGeek|极客世界-中国程序员成长平台

标题: ios - WiFiManager.bundle WiFiManager 在我尝试使用 dlopen、iOS 加载时返回 NULL [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 09:31
标题: ios - WiFiManager.bundle WiFiManager 在我尝试使用 dlopen、iOS 加载时返回 NULL

对于私有(private)用途,我尝试使用以下代码加载 WiFi 管理器 (iOS 6.1):

    airportHandle = 0;
    libHandle = 0;

    libHandle = dlopen(
                       "/System/Library/SystemConfiguration/WiFiManager.bundle/WiFiManager"
                       //"/System/Library/SystemConfiguration/IPConfiguration.bundle/IPConfifuration"
                       , RTLD_LAZY);

    if(libHandle != 0)
    {
        disassociate    = (int (*)())dlsym(libHandle,   "Apple80211Disassociate");
        open            = (int (*)(void*))dlsym(libHandle,  "Apple80211Open");
        bind            = (int (*)(void*, NSString*))dlsym(libHandle,   "Apple80211BindToInterface");
        close           = (int (*)(void*))dlsym(libHandle,  "Apple80211Close");
        scan            = (int (*)(void*, NSArray**, void*))dlsym(libHandle,    "Apple80211Scan");
        associate       = (int (*)(void*, void*, NSString*))dlsym(libHandle,    "Apple80211Associate");
        info            = (int (*)(void*, NSDictionary**))dlsym(libHandle,  "Apple80211GetInfoCopy");
        GetPower        = (int (*)(void*, char*))dlsym(libHandle,   "Apple80211GetPower");
        SetPower        = (int (*)(void*, char))dlsym(libHandle,    "Apple80211SetPower");
        listinfo        = (int (*)(void*, NSDictionary**))dlsym(libHandle,  "Apple80211GetIfListCopy");

        open(&airportHandle);
        bind(airportHandle, @"en0");
    }

但是 libHandleNULL

我是否需要使用越狱设备或者没有办法只使用Private API

谢谢,



Best Answer-推荐答案


这不是一个答案,而是一个方向。

我记得,Apple 多次移动 WiFi API(从一个框架到另一个框架)。 所以,这条路径(“/System/Library/SystemConfiguration/WiFiManager.bundle/WiFiManager”)很可能已经过时了。

即使在未越狱的 iOS 设备上,您也应该能够使用 dlopen 并获得句柄。所以,这不是问题。但是,我不确定您提到的这些 API 是否不受权利保护。

如果你有 iOS 6 模拟器,我建议你去那里尝试 grepr 并找到这些 API 所在的位置。

顺便说一句。看看这个问题。他声称他的代码适用于 iOS 6 - Iphone 802.11 Scan

关于ios - WiFiManager.bundle WiFiManager 在我尝试使用 dlopen、iOS 加载时返回 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23245276/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4