From 4c113cdb2d79ffd17018d5f077eb5c8889911496 Mon Sep 17 00:00:00 2001 From: Yixi Date: Fri, 8 Sep 2023 00:29:47 +0800 Subject: [PATCH] Optimize capture verification method in China region --- bimmer_connected/api/authentication.py | 13 ++---- bimmer_connected/api/utils.py | 40 +++++++++++++++++++ bimmer_connected/tests/common.py | 7 +--- .../responses/auth/auth_slider_captcha.json | 2 +- bimmer_connected/tests/test_utils.py | 10 ++++- requirements.txt | 1 + 6 files changed, 56 insertions(+), 17 deletions(-) diff --git a/bimmer_connected/api/authentication.py b/bimmer_connected/api/authentication.py index 94aa3fdb..7652e523 100644 --- a/bimmer_connected/api/authentication.py +++ b/bimmer_connected/api/authentication.py @@ -19,6 +19,7 @@ create_s256_code_challenge, generate_cn_nonce, generate_token, + get_capture_position, get_correlation_id, handle_httpstatuserror, ) @@ -284,16 +285,8 @@ async def _login_china(self): ) verify_id = captcha_res.json()["data"]["verifyId"] - for i in range(1, 13): - try: - captcha_check_res = await client.post( - AUTH_CHINA_CAPTCHA_CHECK_URL, - json={"position": 0.74 + i / 100, "verifyId": verify_id}, - ) - if captcha_check_res.status_code == 201: - break - except MyBMWAPIError: - continue + position = get_capture_position(captcha_res.json()["data"]["backGroundImg"]) + await client.post(AUTH_CHINA_CAPTCHA_CHECK_URL, json={"position": position, "verifyId": verify_id}) # Get token response = await client.post( diff --git a/bimmer_connected/api/utils.py b/bimmer_connected/api/utils.py index 3fb9acbf..2a131d95 100644 --- a/bimmer_connected/api/utils.py +++ b/bimmer_connected/api/utils.py @@ -3,6 +3,7 @@ import base64 import datetime import hashlib +import io import json import logging import mimetypes @@ -17,6 +18,7 @@ from Crypto.Hash import SHA256 from Crypto.Random import get_random_bytes from Crypto.Util.Padding import pad +from PIL import Image from bimmer_connected.models import AnonymizedResponse, MyBMWAPIError, MyBMWAuthError, MyBMWQuotaError @@ -185,3 +187,41 @@ def generate_cn_nonce(username: str) -> str: aes_hex = cipher_aes.encrypt(pad(phone_text.encode(), AES.block_size)).hex() return k2 + i1 + sha256_a + aes_hex + k1 + i2 + sha256_b + + +def get_capture_position(base64_background_img: str) -> str: + """Get the position of the capture in the background image.""" + target_color = [220, 230, 221] + tolerance = 15 + block = {"width": 15, "height": 75} + + img_bytes = io.BytesIO(base64.b64decode(base64_background_img)) + img = Image.open(img_bytes) + pixels = list(img.getdata()) + + position = "" + found_block = False + + for y in range(0, img.height - block["height"]): + for x in range(0, img.width - block["width"]): + found_block = True + for i in range(block["height"]): + for j in range(block["width"]): + pixel_index = (y + i) * img.width + (x + j) + pr = pixels[pixel_index][:3] + dr = abs(pr[0] - target_color[0]) + dg = abs(pr[1] - target_color[1]) + db = abs(pr[2] - target_color[2]) + + if dr > tolerance or dg > tolerance or db > tolerance: + found_block = False + break + if not found_block: + break + if found_block: + position = str(round((x - 26) / img.width, 2)) + break + if found_block: + break + + return position diff --git a/bimmer_connected/tests/common.py b/bimmer_connected/tests/common.py index 6bafe6d1..9fbf4029 100644 --- a/bimmer_connected/tests/common.py +++ b/bimmer_connected/tests/common.py @@ -96,11 +96,8 @@ def add_login_routes(self) -> None: 200, json=load_response(RESPONSE_DIR / "auth" / "auth_slider_captcha.json") ) - self.post("/eadrax-coas/v1/cop/check-captcha").mock( - side_effect=[ - httpx.Response(422), - httpx.Response(201, json=load_response(RESPONSE_DIR / "auth" / "auth_slider_captcha_check.json")), - ] + self.post("/eadrax-coas/v1/cop/check-captcha").respond( + 200, json=load_response(RESPONSE_DIR / "auth" / "auth_slider_captcha_check.json") ) self.post("/eadrax-coas/v2/login/pwd").respond( diff --git a/bimmer_connected/tests/responses/auth/auth_slider_captcha.json b/bimmer_connected/tests/responses/auth/auth_slider_captcha.json index 9fd05d7a..28e090b4 100644 --- a/bimmer_connected/tests/responses/auth/auth_slider_captcha.json +++ b/bimmer_connected/tests/responses/auth/auth_slider_captcha.json @@ -4,7 +4,7 @@ "error": false, "data": { "verifyId": "f40f54f1cb40463ba7188bd73e906d33", - "backGroundImg": "/xxxx", + "backGroundImg": "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", "cutImg": "xxxx" } } diff --git a/bimmer_connected/tests/test_utils.py b/bimmer_connected/tests/test_utils.py index 143194e5..4aa2f325 100644 --- a/bimmer_connected/tests/test_utils.py +++ b/bimmer_connected/tests/test_utils.py @@ -11,10 +11,11 @@ import respx import time_machine +from bimmer_connected.api.utils import get_capture_position from bimmer_connected.models import ChargingSettings, ValueWithUnit from bimmer_connected.utils import MyBMWJSONEncoder, get_class_property_names, parse_datetime -from . import VIN_G26 +from . import RESPONSE_DIR, VIN_G26, load_response from .conftest import prepare_account_with_vehicles @@ -112,3 +113,10 @@ def test_charging_settings(): assert cs.chargingTarget == 90 assert cs.dcLoudness is None assert cs.isUnlockCableActive is None + + +def test_get_capture_position(): + """Test the auto get slider captcha position.""" + base64_background_img = load_response(RESPONSE_DIR / "auth" / "auth_slider_captcha.json")["data"]["backGroundImg"] + position = get_capture_position(base64_background_img) + assert position == "0.81" diff --git a/requirements.txt b/requirements.txt index f57be10c..c1d938ef 100755 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,4 @@ httpx pycryptodome>=3.4 pyjwt>=2.1.0 +Pillow>=6.2.0