Système de Déchiffrage MapData Dofus 1.29 Python

Inscrit
21 Février 2021
Messages
9
Reactions
0
#1
Bonjour,

M'étant lancé dans la création d'un bot socket pour Dofus rétro je bloque sur le système de déchiffrage des données de la map. J'ai bien la mapData et la mapKey mais je n'arrive pas à implémenter les scripts que je retrouve sur C#.

Si quelqu'un pouvait m'aider ce serait sympa.

Merci
 
Inscrit
21 Février 2021
Messages
9
Reactions
0
#3
Théoriquement @Dysta est sur ça, donc si tu as un peu de patience, ça arrivera !
Faut suivre ce dépôt : https://github.com/Dysta/Dofutils
Merci pour la réponse, mais j'aimerais également y arriver par moi-même et jusqu'à présent en parcourant des scripts C# et Java je n'arrive pas à les traduire sur Python, je trouve toujours des résultats incohérants malgrè l'effort de "traduction". Tout ce que je cherchais était un petit coup de pouce ^^
 
Inscrit
21 Février 2021
Messages
9
Reactions
0
#4
Voilà ce que j'ai à ce jour mais qui ne marche pas...

Code déchiffrage map:
from urllib.parse import unquote

def decypher_data(map_data, decryptkey):
    result = ''
    decryptedkey = Preparekey_2(decryptkey)
    # checkSum = CheckSum(decryptedkey) * 2
    len_2 = int(len(decryptkey) / 2)
    key_result = [0] * len_2
    for i in range(0, len(decryptkey), 2):
        hex_code = decryptkey[i:i + 2]
        print(hex_code)
        hex_int = int(hex_code, 16)
        print(hex_int)
        key_result[int(i / 2)] = hex_int
    somme = 0
    for i in key_result:
        somme += i%16
    print('somme', somme)
    checkSum = (somme % 16) * 2
    print('checksum', checkSum)
    k = 0
    for i in range(0, len(map_data), 2):
        hex_code = map_data[i:i+2]
        hex_int = int(hex_code, 16)
        power = decryptedkey[(k + checkSum)%len(decryptedkey)]
        op_result = hex_int^ ord(power)
        result += chr(op_result)
        k += 1
    result = unquote(result)
    return result

def Preparekey_2(decrypt_key):
    KeyResult = ''
    for i in range(0, len(decrypt_key), 2):
        hex_code = decrypt_key[i:i+2]
        hex_int = int(hex_code, 16)
        KeyResult += chr(hex_int)
    KeyResult = unquote(KeyResult)
    print(KeyResult)
    return KeyResult

def CheckSum(decryptedkey):
    somme = 0
    for i in range(len(decryptedkey)):
        print(decryptedkey[i])
        somme += (int(decryptedkey[i])%16)
    valeur_finale = somme % 16
    print('valeur finale', valeur_finale)
    return valeur_finale

map_data = "24095b4c04034d0a492227285c1c2411570119396945093a522b21591231703f51472c031316131c364f4a451856294852177c1c12414d1e065f0507132d0c26560e534a470d29315537095c074e5e182e28501c49282403235718121a3c323e585949031d563408580f3c0e2f407c5357091a48151f14481f470746411f213f2a2832194c382659480a5b1b165a42563e324b58184b141f4d21315d2d390f29362e2d14370b044350086619142352451f474b40324412542100032c101d2f0a1c562b3447060037222a500d045b4c00034d2340220e255c1c2011572810394048093a562b21701b31593251472803133f1a1c1f424a451c5629615b1755111241491e06760c073a200c26520e53634e0d003c55370d5c076757180725501c4d28242a2a57311f1a3c363e58704003345b34085c0f3c272640555e57091e4815361d48364a0746451f211623281b144c3822594823521b3f5742563a324b71114b3d124d21355d2d1006291f232d14330b046a59084f14142356451f6e42401b49125425000305191d06071c562f34472f09370b245a5b005b4c290a4d0a4d220e215c1c091857011d39404c093a7f222159163159365147010a1316171c1f464a45355f29485617551512416017065f01073a240c267b07534a430d003855372455074e5a180721501c642124032757311b1a3c1f3758594d03345f340875063c0e2b40555a57093741151f1048364e07466c16213f2e281b104c380b50480a5f1b3f534256133b4b581c4b3d164d211c540b390b291f272d141a02044354084f1014237f4c1f474f401b4d12540c09032c141d06031c56063d470604370b23500d29524c00074d0a49220e08551c2015570119394065003a562f21591231591f584728071316131c1f6f43451c51231e5217553c1b41491a065f05073a020526520a534a44074c115c370d5b0d175d125508591c4d2c240323573132131a363a5859490334763d2e5c0b3c0e2f4055735e091e4c151f144836670e46451b213f2a281b394538225d480a5b1b3f7a4b563a364b58184b3d3f442135592d390f291f0e2414330f044350084f391d2356411f474b401b641b542504032c101d062a15562f334d51033d220a590d005c4659034d0a602b0e21581c201157013030664c0d3a562b21593b387f365547280313163a1539464e451c5629487b1e55151641491e065f2c0e3a240826520e534a6e04003851370d5c074e77110721541c4d2824030a5e311b1e3c363e5859600a125f30085c0f3c0e0649555a53091e4b1f303241364e0346451c2b6703211b104b32755a422472123f53455c6d324b5831423d164921355d2d39262039272914330b04436101662b102356451f4762493d4d16542500032c21142f5218562f344706293e0b23540d005b4c002a440a49260e215c1c20385e01193d404c093a56022859123559365147282a1a3013181f464a451c7f206e52135515124149380f5f0500307d0c2652275a4a470a0a6f55370d7a0e4e5e1f0d765316430e2d032353311b19362417517f4907345f34085c2635282f44555a57091e611c39144c364e0746453628192a2c1b104c382270410a5b1f3f5342563a1b4258184f3d164d21357424390f2d1f272d1433220d43500c4f101423566c16614b441b4d125425310a05411906031c562f1d4e2000330b23500d007d4500034a001e220e21751506115301193a4d4a38335510255912325430784e0e031716131c1f467b4c35072d48521755153b486f1e025f05073a243d2f7b5f574a470d00387c3e0d5c034e5e18072179154d2820032357311b3335363e5c594903345f1d015c0f380e2f40555a7e003848111f1448364e2e4f631f253f2a281b10653104594c0a5b1b3f536b5f1c324f58184b3d166428135d29390f291f27041d150b004350084f103d2a70451b474b401b4d3b5d0300072c101d0603355f0934430600370b237904265b4800034d0a491307086718201157011910494c093e562b215912185036514328031316133516464a411c562948523e5c151245491e065f0536330d5d22520e534a4724091e55330d5c074e5e290e0801184d282403237e383d1a38363e585949323d76650c5c0f3c0e2f695c7c570d1e48151f14793f675642451f213f2a0112364c3c2259480a5b2a367a13523a324b58186234304d25355d2d390f0016272d10330b044350214610142756451f474b69124d12502500032c10340f031c522f344706001e02235009005b4c000364036f220a215c1c20117e083f39444c093a562b085034315d36514728033a1f351c1b464a451c560041741751151241491e2f5623073e240c26520e7a43610d043855370d5c2e4778180321501c4d280d0a0557351b1a3c363e71504903305f34085c0f15072f40515a57091e483c161448324e0746451f08362a281f104c38225961035b1b3b5342563a326251184b39164d21355d1c3026781b272d14330b2d4a76084b10142356452e4e62111f4d125425003225132602031c55251c760f03660f23500d005b6509254d0e49220e215c2d293806051939404c09135f0d215d123159365176212a4212131c1f464a6c1556294c521755151268401e065b05073a240c0f5b0e534e470d0038551e045c074a5e180721503a442824072357321116153f18585d4903345f342155293c0a2f40555a5720176e151b1448364e076f4c1f213b2a281b104c112b59480e5b1b3c59657033324b5c184b3e1c54083c7b2d3d0f291f272d3d3a2d044750084f10140a5f631f434b401b4d12722c000328101d050e1f7f2634470200370b235024095b4c04034d0a492227285c1c24115701193969452f3a522b21591231703f77472c031316131c364f6c45185629485217641c3b104d1e065f0507132d0c26560e534a470d293155370a565e4d542e2e28501c4a227303235718121a3c323e585949031d561208580f3c0e2f4064537e581a48151f14481f470746411f213f2a2832194c382659480a5b1b165a42563e324b58184b141f4d21315d2d390f29392e2d14370b04405a366619322352451f474b40324434542100032c101d2f0a3a562b3447060037222a500d045b4c00034d2340220e255c1c2011572810394048093a562b21701b31593251472803133f1a1c1f424a451c5629615b3155111241491e066e0c2e01200c26520e53634e0d003c55370d5c076757180725501c4d28242a2a57311f1a3c363e587f4003345b34085c0f3c282640555e57091d4226361d6e364a0746451f210e23014a144c3822594823521b3f5742563a324b71114b3d124d21355d2d1006291f232d14330b046a59084f14142356451f6e42401b4912542500031d193457071c562f34472f09110b27500d005b4c290a4d0a4d220e215c1c091857011d39404c093a7f222159163159365147010a3516171c1f45406c3a5f2948551d0c16186f6017205f01073a240c267b07754a430d003855372455074e5a180721501c642124032757311b1a3c1f3758594d03345f340875063c0e2b40555a57093741151f1048364e0746741622042e281b104c380b506e0a5f1b3f534256133b6d581c4b3d164d211c542d390b291f272d141a02044354084f1319247f4c1f474f401b4d12540c09252c141d06031c56063d610604370b23500d31526551074d0a49220e07551c201557011a335365003a562f21591231591f584728071316131c1f6f43451c5229485217553c1b41491a065f05073a0d0526520a534a470d00115c110d58074e5e18071059351c2c240323573132133c363a5859490334763d085c0836572f4055735e091e4c151f144836670e6045182b662a281b39451e225d480a5b1b3f7a4b703a364b58184b3d3f442135592d390f291f0e2414330f044350084f391d2356411f474b401b641b542504032c101d062a15562f30470600370b0a590d005f4c00034d0a602b2821581c201157013030664c0d3a562b21593b3859365547280313163a151f464e451c562948741e55151641491d0c4f2c0e3a240826520e534a6e04263851370d5c074e6f112e70541c4d2824030a5e311b1e3c363d520d600a345f30085c0f3c0e0649555a53091e48151f3d41364e0346451f213f03211b1048382259480a7d123f5346563a324b5831421b164921355d2d393e2036762914330b044379016910102356451f476d491b4d165425030e29361406031b5c76344706293e0b23540d005b4c002a442c49260e215c1c20385e27193d404c093a561a2870293559365147282a1a1613181f464a451c7f204852135515114b66370f5f05033a240c2652275a4a4709003855370d750e4e5e1c0721501c4d012d252353311b1a3c3617517f4907345f34085c2635282f44555a57091e611c39144c364e07464536283f2a2c1b104c38227f410a5b1f3f5342563a1b4258184f3d164d21356c24105e2d1f272d1433220d65500c4f101423566316474b47111a115e37290a2c101a0c5a1b5c1c1d4e0600330b2353072a72450003490a49220e217a1520115301193a4a592033702b255912315936604e01521716131c1f46634c3a562d48521755152348604f025f05073a24252f740e574a470d00387c3e0d5c034e5e18072179154d28200323543b4f3335363e5c594903345f1d017a0f380e2f40555a7e003848111f1448364e214f451f253f2a2b1107653122594f000c1b3f536b5f3a324f58184b3d166428355d29390f291f27041d150b004350084f103d2a70451b474b401b4d3b5d0300072c101d0603355f0934430600370b237904265b4800034d0a490b07075c18201157011910494c093e562b225335185036514328031316133516464a411c56294852265c3c4345491e065f052e33020c22520e534a4724091e5530070b074e5e310e2150184d2824032371381b1a38363e5859492a3d79340c5c0f3c0e2f715c73060d1e48151f146e3f4e0742451f213f2a1912391d3c2259480a5b32367542523a324b58187a343f1c25355d2d390f0016272d10330b04435021461014245c1c1f474b66124d12532f560021122c0f0027522f344706001e02055009005b4c000364036f220a215c1c20117e083f39444c093a562b085012315d36514728033a1f351c1b464a451c560041741751151241491e205605073d2e5b26520e7543470d043855370d5c2e4778180321501c4d280d0a0557351b1a3c363e71504903305f34085c0f15072f40515a57091e483c161448324e0746451f08362a281f104c38225961037d1b3b5342563a327a51311a39164d21355d043029291b272d14330b354a79594b1014235645364e6d401f4d125425003225394c02031c562f34610f00370c29070e0a686a09034d0e49220d2b5035291157051939404c090b5f02705d12315936516e21031312131c1f464a6c1556294c521755151268401e065b05073a240c0f5b0e534e470d0038551e047a074a5e1807215035440e24072357311b1a153f18585d4903345f342155293c0a2f40555a5720176e151b1448364e076f4c39213b2a281b104c1e2b59480d514c3c594d7033324b5c184b3e1c7b073c5d2d3d0f291c2d043d3a0b044750084f10140a5f451f434b401b4d127d2c000328101d06031c7f2634470200370b235024095b4c04034d0a492227287a1c2411570119397145206b522b21591231683f527c2c031316131c2e4f63141856294852177c1c34414d1e065f05070b2d2577560e534a470d293155370a56504d531e2e28501c4a227303235717121a3c31340f5a43291d5634085b05650e2f407c5357091a48151f14481f470746411f213f2a2832194c382659480a5b1b165a42563e324b58184b141f6b21315d2d390f29362e0b14370b044350086619142352451f474b40324412542100032c101d2f0a3a562b3447060037222a760d045b4c00034d2340220e255c1c2011572810394048093a562b21701b31593251472803133f1a1c1f424a451c5629615b1755111241491e06760c073a200c26520e53634e0d003c55370d5c076757180725501c4d28242a2a57311f1a3c363e5868402a655b34085c0f3c272640555e57091e4815361d48364a0746451f211623281b144c382259483b52326e5742563a324b71114b3d124d213657151006291f232d143001206a59084f171e7456451f6e42401b4a18032500030a191d06071c562c39452f09370b27500d005b4c290a4d0a4d220e215c1c091857011d39404c093a7f222159163159365147010a3516171c1f464a45355f29485617551512416017065f01073a240c267b07534a430d003855372455074e5a180721501c642124032757311b1a3c1f3758594e096d5f340875063c0e2b40555a57093741151f1048364e07466c16213f2e281b104c380b50480a5f1b3f5342561c3b4b581c4b3d1547301c542d390b291f272d141a02044354084f101423704c1f474f401b4e18440c09032c141d06031c56063d470604370b23500d29524c00074d0a49220e08551c2015570119394065003a562c2b0f1231591f584728071316131c1f6f43451c5229485217553c1b41491a065f05073a0d05265209591c470d00115c370d58074e5e180708591c4d2c240323573132133c363a5859490334763d085c0b3c0e2f4055735e091e4c151f17453a"
map_key = "2c73354461624d717c67627d374e55266761566a42316c613a2d61622c6b28436f403d7d417036607858212d685b374a403873503857302649627277727d7e27253242247d374829337634747320287f673e64665b456d47336f32253242266c615934566c3d662f3f796640317d2c4945624236507a7b5d575f39382862553e55693d6e5d6f4e21343b36687f29747e7529572f6627247e405e4b497a712d594338296b3a7a5e3223375b532a39792a5c772c40543c4c586e487e464c75526a652231692e71754237247e262a217a"
print('resultat', decypher_data(map_data, map_key))
 
Inscrit
6 Juin 2020
Messages
27
Reactions
52
#5
Ton calcul du checksum n'est pas bon, tu décode deux fois l'hexa de la clé
 
Inscrit
8 Aout 2021
Messages
5
Reactions
3
#7
Au cas ou voici le code corrige

Fonction decrypter map dofus:
from urllib.parse import unquote


def decrypt_map(map_data: str, key_to_decrypt: str) -> str:
    """
    Args:
        map_data: The raw map data
        key_to_decrypt: The key to decrypt the map
    Returns:
        The map decrypted.
    """
    decrypted_map = ''
    decrypted_key = prepare_key(key_to_decrypt)
    checksum = calculate_checksum(decrypted_key)

    k = 0
    for i in range(0, len(map_data), 2):
        hex_code = map_data[i:i + 2]
        hex_int = int(hex_code, 16)
        power = decrypted_key[(k + checksum) % len(decrypted_key)]
        op_result = hex_int ^ ord(power)
        decrypted_map += chr(op_result)
        k += 1
    result = unquote(decrypted_map)
    return result


def calculate_checksum(keymap: str) -> int:
    """
    Return the checksum of the decrypted keymap
    Args:
        keymap: str
    Returns:
    """
    checksum = 0
    for element in keymap:
        checksum += ord(element) % 16
    checksum = (checksum % 16) * 2
    return checksum


def prepare_key(decrypt_key: str) -> str:
    """
    Decrypt the key map
    Args:
        decrypt_key:
    Returns:
    """
    key_result = ''
    for i in range(0, len(decrypt_key), 2):
        hex_code = decrypt_key[i:i + 2]
        hex_int = int(hex_code, 16)
        key_result += chr(hex_int)
    key_result = unquote(key_result)
    return key_result


map_data = "24095b4c04034d0a492227285c1c2411570119396945093a522b21591231703f51472c031316131c364f4a451856294852177c1c12414d1e065f0507132d0c26560e534a470d29315537095c074e5e182e28501c49282403235718121a3c323e585949031d563408580f3c0e2f407c5357091a48151f14481f470746411f213f2a2832194c382659480a5b1b165a42563e324b58184b141f4d21315d2d390f29362e2d14370b044350086619142352451f474b40324412542100032c101d2f0a1c562b3447060037222a500d045b4c00034d2340220e255c1c2011572810394048093a562b21701b31593251472803133f1a1c1f424a451c5629615b1755111241491e06760c073a200c26520e53634e0d003c55370d5c076757180725501c4d28242a2a57311f1a3c363e58704003345b34085c0f3c272640555e57091e4815361d48364a0746451f211623281b144c3822594823521b3f5742563a324b71114b3d124d21355d2d1006291f232d14330b046a59084f14142356451f6e42401b49125425000305191d06071c562f34472f09370b245a5b005b4c290a4d0a4d220e215c1c091857011d39404c093a7f222159163159365147010a1316171c1f464a45355f29485617551512416017065f01073a240c267b07534a430d003855372455074e5a180721501c642124032757311b1a3c1f3758594d03345f340875063c0e2b40555a57093741151f1048364e07466c16213f2e281b104c380b50480a5f1b3f534256133b4b581c4b3d164d211c540b390b291f272d141a02044354084f1014237f4c1f474f401b4d12540c09032c141d06031c56063d470604370b23500d29524c00074d0a49220e08551c2015570119394065003a562f21591231591f584728071316131c1f6f43451c51231e5217553c1b41491a065f05073a020526520a534a44074c115c370d5b0d175d125508591c4d2c240323573132131a363a5859490334763d2e5c0b3c0e2f4055735e091e4c151f144836670e46451b213f2a281b394538225d480a5b1b3f7a4b563a364b58184b3d3f442135592d390f291f0e2414330f044350084f391d2356411f474b401b641b542504032c101d062a15562f334d51033d220a590d005c4659034d0a602b0e21581c201157013030664c0d3a562b21593b387f365547280313163a1539464e451c5629487b1e55151641491e065f2c0e3a240826520e534a6e04003851370d5c074e77110721541c4d2824030a5e311b1e3c363e5859600a125f30085c0f3c0e0649555a53091e4b1f303241364e0346451c2b6703211b104b32755a422472123f53455c6d324b5831423d164921355d2d39262039272914330b04436101662b102356451f4762493d4d16542500032c21142f5218562f344706293e0b23540d005b4c002a440a49260e215c1c20385e01193d404c093a56022859123559365147282a1a3013181f464a451c7f206e52135515124149380f5f0500307d0c2652275a4a470a0a6f55370d7a0e4e5e1f0d765316430e2d032353311b19362417517f4907345f34085c2635282f44555a57091e611c39144c364e0746453628192a2c1b104c382270410a5b1f3f5342563a1b4258184f3d164d21357424390f2d1f272d1433220d43500c4f101423566c16614b441b4d125425310a05411906031c562f1d4e2000330b23500d007d4500034a001e220e21751506115301193a4d4a38335510255912325430784e0e031716131c1f467b4c35072d48521755153b486f1e025f05073a243d2f7b5f574a470d00387c3e0d5c034e5e18072179154d2820032357311b3335363e5c594903345f1d015c0f380e2f40555a7e003848111f1448364e2e4f631f253f2a281b10653104594c0a5b1b3f536b5f1c324f58184b3d166428135d29390f291f27041d150b004350084f103d2a70451b474b401b4d3b5d0300072c101d0603355f0934430600370b237904265b4800034d0a491307086718201157011910494c093e562b215912185036514328031316133516464a411c562948523e5c151245491e065f0536330d5d22520e534a4724091e55330d5c074e5e290e0801184d282403237e383d1a38363e585949323d76650c5c0f3c0e2f695c7c570d1e48151f14793f675642451f213f2a0112364c3c2259480a5b2a367a13523a324b58186234304d25355d2d390f0016272d10330b044350214610142756451f474b69124d12502500032c10340f031c522f344706001e02235009005b4c000364036f220a215c1c20117e083f39444c093a562b085034315d36514728033a1f351c1b464a451c560041741751151241491e2f5623073e240c26520e7a43610d043855370d5c2e4778180321501c4d280d0a0557351b1a3c363e71504903305f34085c0f15072f40515a57091e483c161448324e0746451f08362a281f104c38225961035b1b3b5342563a326251184b39164d21355d1c3026781b272d14330b2d4a76084b10142356452e4e62111f4d125425003225132602031c55251c760f03660f23500d005b6509254d0e49220e215c2d293806051939404c09135f0d215d123159365176212a4212131c1f464a6c1556294c521755151268401e065b05073a240c0f5b0e534e470d0038551e045c074a5e180721503a442824072357321116153f18585d4903345f342155293c0a2f40555a5720176e151b1448364e076f4c1f213b2a281b104c112b59480e5b1b3c59657033324b5c184b3e1c54083c7b2d3d0f291f272d3d3a2d044750084f10140a5f631f434b401b4d12722c000328101d050e1f7f2634470200370b235024095b4c04034d0a492227285c1c24115701193969452f3a522b21591231703f77472c031316131c364f6c45185629485217641c3b104d1e065f0507132d0c26560e534a470d293155370a565e4d542e2e28501c4a227303235718121a3c323e585949031d561208580f3c0e2f4064537e581a48151f14481f470746411f213f2a2832194c382659480a5b1b165a42563e324b58184b141f4d21315d2d390f29392e2d14370b04405a366619322352451f474b40324434542100032c101d2f0a3a562b3447060037222a500d045b4c00034d2340220e255c1c2011572810394048093a562b21701b31593251472803133f1a1c1f424a451c5629615b3155111241491e066e0c2e01200c26520e53634e0d003c55370d5c076757180725501c4d28242a2a57311f1a3c363e587f4003345b34085c0f3c282640555e57091d4226361d6e364a0746451f210e23014a144c3822594823521b3f5742563a324b71114b3d124d21355d2d1006291f232d14330b046a59084f14142356451f6e42401b4912542500031d193457071c562f34472f09110b27500d005b4c290a4d0a4d220e215c1c091857011d39404c093a7f222159163159365147010a3516171c1f45406c3a5f2948551d0c16186f6017205f01073a240c267b07754a430d003855372455074e5a180721501c642124032757311b1a3c1f3758594d03345f340875063c0e2b40555a57093741151f1048364e0746741622042e281b104c380b506e0a5f1b3f534256133b6d581c4b3d164d211c542d390b291f272d141a02044354084f1319247f4c1f474f401b4d12540c09252c141d06031c56063d610604370b23500d31526551074d0a49220e07551c201557011a335365003a562f21591231591f584728071316131c1f6f43451c5229485217553c1b41491a065f05073a0d0526520a534a470d00115c110d58074e5e18071059351c2c240323573132133c363a5859490334763d085c0836572f4055735e091e4c151f144836670e6045182b662a281b39451e225d480a5b1b3f7a4b703a364b58184b3d3f442135592d390f291f0e2414330f044350084f391d2356411f474b401b641b542504032c101d062a15562f30470600370b0a590d005f4c00034d0a602b2821581c201157013030664c0d3a562b21593b3859365547280313163a151f464e451c562948741e55151641491d0c4f2c0e3a240826520e534a6e04263851370d5c074e6f112e70541c4d2824030a5e311b1e3c363d520d600a345f30085c0f3c0e0649555a53091e48151f3d41364e0346451f213f03211b1048382259480a7d123f5346563a324b5831421b164921355d2d393e2036762914330b044379016910102356451f476d491b4d165425030e29361406031b5c76344706293e0b23540d005b4c002a442c49260e215c1c20385e27193d404c093a561a2870293559365147282a1a1613181f464a451c7f204852135515114b66370f5f05033a240c2652275a4a4709003855370d750e4e5e1c0721501c4d012d252353311b1a3c3617517f4907345f34085c2635282f44555a57091e611c39144c364e07464536283f2a2c1b104c38227f410a5b1f3f5342563a1b4258184f3d164d21356c24105e2d1f272d1433220d65500c4f101423566316474b47111a115e37290a2c101a0c5a1b5c1c1d4e0600330b2353072a72450003490a49220e217a1520115301193a4a592033702b255912315936604e01521716131c1f46634c3a562d48521755152348604f025f05073a24252f740e574a470d00387c3e0d5c034e5e18072179154d28200323543b4f3335363e5c594903345f1d017a0f380e2f40555a7e003848111f1448364e214f451f253f2a2b1107653122594f000c1b3f536b5f3a324f58184b3d166428355d29390f291f27041d150b004350084f103d2a70451b474b401b4d3b5d0300072c101d0603355f0934430600370b237904265b4800034d0a490b07075c18201157011910494c093e562b225335185036514328031316133516464a411c56294852265c3c4345491e065f052e33020c22520e534a4724091e5530070b074e5e310e2150184d2824032371381b1a38363e5859492a3d79340c5c0f3c0e2f715c73060d1e48151f146e3f4e0742451f213f2a1912391d3c2259480a5b32367542523a324b58187a343f1c25355d2d390f0016272d10330b04435021461014245c1c1f474b66124d12532f560021122c0f0027522f344706001e02055009005b4c000364036f220a215c1c20117e083f39444c093a562b085012315d36514728033a1f351c1b464a451c560041741751151241491e205605073d2e5b26520e7543470d043855370d5c2e4778180321501c4d280d0a0557351b1a3c363e71504903305f34085c0f15072f40515a57091e483c161448324e0746451f08362a281f104c38225961037d1b3b5342563a327a51311a39164d21355d043029291b272d14330b354a79594b1014235645364e6d401f4d125425003225394c02031c562f34610f00370c29070e0a686a09034d0e49220d2b5035291157051939404c090b5f02705d12315936516e21031312131c1f464a6c1556294c521755151268401e065b05073a240c0f5b0e534e470d0038551e047a074a5e1807215035440e24072357311b1a153f18585d4903345f342155293c0a2f40555a5720176e151b1448364e076f4c39213b2a281b104c1e2b59480d514c3c594d7033324b5c184b3e1c7b073c5d2d3d0f291c2d043d3a0b044750084f10140a5f451f434b401b4d127d2c000328101d06031c7f2634470200370b235024095b4c04034d0a492227287a1c2411570119397145206b522b21591231683f527c2c031316131c2e4f63141856294852177c1c34414d1e065f05070b2d2577560e534a470d293155370a56504d531e2e28501c4a227303235717121a3c31340f5a43291d5634085b05650e2f407c5357091a48151f14481f470746411f213f2a2832194c382659480a5b1b165a42563e324b58184b141f6b21315d2d390f29362e0b14370b044350086619142352451f474b40324412542100032c101d2f0a3a562b3447060037222a760d045b4c00034d2340220e255c1c2011572810394048093a562b21701b31593251472803133f1a1c1f424a451c5629615b1755111241491e06760c073a200c26520e53634e0d003c55370d5c076757180725501c4d28242a2a57311f1a3c363e5868402a655b34085c0f3c272640555e57091e4815361d48364a0746451f211623281b144c382259483b52326e5742563a324b71114b3d124d213657151006291f232d143001206a59084f171e7456451f6e42401b4a18032500030a191d06071c562c39452f09370b27500d005b4c290a4d0a4d220e215c1c091857011d39404c093a7f222159163159365147010a3516171c1f464a45355f29485617551512416017065f01073a240c267b07534a430d003855372455074e5a180721501c642124032757311b1a3c1f3758594e096d5f340875063c0e2b40555a57093741151f1048364e07466c16213f2e281b104c380b50480a5f1b3f5342561c3b4b581c4b3d1547301c542d390b291f272d141a02044354084f101423704c1f474f401b4e18440c09032c141d06031c56063d470604370b23500d29524c00074d0a49220e08551c2015570119394065003a562c2b0f1231591f584728071316131c1f6f43451c5229485217553c1b41491a065f05073a0d05265209591c470d00115c370d58074e5e180708591c4d2c240323573132133c363a5859490334763d085c0b3c0e2f4055735e091e4c151f17453a"
map_key = "2c73354461624d717c67627d374e55266761566a42316c613a2d61622c6b28436f403d7d417036607858212d685b374a403873503857302649627277727d7e27253242247d374829337634747320287f673e64665b456d47336f32253242266c615934566c3d662f3f796640317d2c4945624236507a7b5d575f39382862553e55693d6e5d6f4e21343b36687f29747e7529572f6627247e405e4b497a712d594338296b3a7a5e3223375b532a39792a5c772c40543c4c586e487e464c75526a652231692e71754237247e262a217a"
print(decrypt_map(map_data, map_key))
 
Haut Bas