astro05
Ces deux sujets devraient t'aider a générer un credentials manuellement dans un premier temps avec des commandes Linux.
Après il existe une lib openssl en C++, et du coup ca ne devrait pas être compliqué de faire la même chose. ;)
Pour cette partie, j'utilise déjà openSSL dans mon code ^^
Mais merci du conseil, je vais me pencher là-dessus sérieusement quand j'aurai un peu plus de temps (et essayer de générer les credentials à la main me semble être judicieux) :)
Encore une fois merci pour l'aide apportée, ça me fait vraiment plaisir
EDIT:
Pour plus de précision, voici le fonctionnement exact de mon programme:
- Je reçois un message 3
000e015500206a677a316c74336b5f2e4d7965487a24427477464f6672306958505263256036b10222a2f93aa57fda50520f0b4d8453e19bd476cae853950279048178d2d1377f81e95ac7e17015295a9e27b491ae45d06f475e644a861a9a9fe01d836679afebb026f730f9e3bb84c70db6908b54ad024c57d36e28ce8d5d6ddd5f6994de4a274de6f4409d97ca632d93dfbcb6263798920aed2b8772b40f9f9643b2a6a151c523414a2635eff9d9eba16b0b02fda31528073e10a3a423400f8319edc89cf0cc26512cd77f98fa3d45f5b51a0de44ba034c7f506a54ced0b1730aadddbb08ecd8471c08cd28992d8424655ff1f0871610b76f5f6bffcdb2599abd8fceaa76c1fe6b6ea0c82ff8a6dfb7e529e1e37bc3b5f107624c24dd93195c12dbf756e2d334b1a28b7cc7c97981971ebacb3adbd3d5941301547bd06baf8309ad94e67ddcc2f1afd8d3e334a554e898a569a7ee53dc14d
- J'en extrais la key (en hex) et le salt (en string)
Key:
22a2f93aa57fda50520f0b4d8453e19bd476cae853950279048178d2d1377f81e95ac7e17015295a9e27b491ae45d06f475e644a861a9a9fe01d836679afebb026f730f9e3bb84c70db6908b54ad024c57d36e28ce8d5d6ddd5f6994de4a274de6f4409d97ca632d93dfbcb6263798920aed2b8772b40f9f9643b2a6a151c523414a2635eff9d9eba16b0b02fda31528073e10a3a423400f8319edc89cf0cc26512cd77f98fa3d45f5b51a0de44ba034c7f506a54ced0b1730aadddbb08ecd8471c08cd28992d8424655ff1f0871610b76f5f6bffcdb2599abd8fceaa76c1fe6b6ea0c82ff8a6dfb7e529e1e37bc3b5f107624c24dd93195c12dbf756e2d334b1a28b7cc7c97981971ebacb3adbd3d5941301547bd06baf8309ad94e67ddcc2f1afd8d3e334a554e898a569a7ee53dc14d
Salt:
jgz1lt3k_.MyeHz$BtwFOfr0iXPRc%`6
- Avec mon pseudo "accountName" et mon mot de passe "accountPassword" et une clef AES constituée de 0, je génère une chaîne à encrypter
6a677a316c74336b5f2e4d7965487a24427477464f667230695850526325603600000000000000000000000000000000000000000000000000000000000000000b6163636f756e744e616d656163636f756e7450617373776f7264
- A l'aide de la clef trouvée dans les fichiers du jeu, je transforme la clef du HelloConnect en une clef qui va me servir à encrypter mes credentials
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAls/I2meLiomgCWX69rEgqoqzWWhOeMaU
awW1quUVdN36RVzANb05iUHKlvxDSgLcI+KkMkYKJDFUzmRnI+i3tUo4t0ZbuAU32s8bOG0ov5g2
QmA1qFJG+4I6177bYx8Q1HxWzB6qj3LvrenccGj/4RkHeyUfcEEZ7HcF16TiOZXSI+tAEKQ+A/W+
PkTzPQdkQrgQOrMlSWUEaX90gz2k6wjoahJG+duegFNwn78EjocIAcb8997z/DrCr/QAP5wGMEck
oc4FVVPgeIRRGy3QL8dyNHy+8qy16Ew6wWw0FuF+Yvme8rQ7eKsWtuvRV/hFJof2sW/yZm7tzm4w
LNP2awIDAQAB
-----END PUBLIC KEY-----
- Enfin, j'encrypte mes credentials avec cette clef et à ce moment, j'obtiens un résultat qui semble aléatoire (et a une taille de 256) comme cela par exemple
624fc86d97da67577dafe16c9d7f14919b83423c61c9b68cc7a66f8c9295efcbfa58c676846c499ccab79a39adc3ce6cde38175e669fc08a19fa6a0a1d7b08ec7a7f47d986ce66e09364e5c3da5a0e320f099898dc81231988a3d9c5e2794873bca9f783ef3323b53cd00a1e2bbee4e0f0a2735927a3eb343066daa81d44967f4196540c3aef606f21b94afde27be4e86b0b96dea354da2a1aa7f27b4ff57bb905f0b02940bb23cb91038077fe63e1d029d79bdba20fd9b3044ee16e17ad237abb36bad9633fc8b23b19e05ab607b515dff54f205a0d48d67ee8899175eeaffd4944fbeac7d86c1f6a1cc9d4a06049a96775c407c48fa976f0a21387ef392535
- Malgré le fait que l'étape précédente me semble ratée, je l'envoie et je reçois un message de type 10 puis plus rien...
EDIT 2:
En fait il est normal que la clef générée ne soit pas toujours la même, malgré le fait que le chiffrement RSA soit constant, on lui ajoute de l'aléatoire pour plus de sécurité via le RSA_PKCS1_PADDING (ou un truc comme ça) donc bref rien d'anormal si ce n'est que je ne reçois rien d'autre qu'un message de type 10. Mais étant donné que le problème se situe en fait peut-être ailleurs que dans les credentials, voici le message 4 que j'envoie pour ces credentials-ci:
credentials:
1e4c0fa5bee5f2d9e2eb9806ca6503f1b683d1bbeb4f8e96696c91eb3729bba958cb8cd430ae38999dd68d4c463766996aca29deb615ec81dc80a27e009a0639ffefa1f3e597d4aa4612f26ba301f91f0c5d3b479c16fb155ce37bcb05c5123c19bc0d3648f55a3f191c2570fac5b23ea328b7e20948a458e9e32d1db16872a12cc221584c90a1a1b3193cafd54cea07ee5c3dc1ed1c948dd04241ac65f5cfc3bcb86224de13f92f10079da850c9ef9f49411bc04330f2f34f0cc12466638e91f0ba8875f2609c54b12edf1550b6c9fc09fb13a9bfe92b3163df8d2aff30d87a5f23d2ee4b69a0024851be0744947c220a375d1b300b05cda64b23b604d6237c
message envoyé:
001200000001011700022e0a03d27ba1000001010002667280021e4c0fa5bee5f2d9e2eb9806ca6503f1b683d1bbeb4f8e96696c91eb3729bba958cb8cd430ae38999dd68d4c463766996aca29deb615ec81dc80a27e009a0639ffefa1f3e597d4aa4612f26ba301f91f0c5d3b479c16fb155ce37bcb05c5123c19bc0d3648f55a3f191c2570fac5b23ea328b7e20948a458e9e32d1db16872a12cc221584c90a1a1b3193cafd54cea07ee5c3dc1ed1c948dd04241ac65f5cfc3bcb86224de13f92f10079da850c9ef9f49411bc04330f2f34f0cc12466638e91f0ba8875f2609c54b12edf1550b6c9fc09fb13a9bfe92b3163df8d2aff30d87a5f23d2ee4b69a0024851be0744947c220a375d1b300b05cda64b23b604d6237c0000000000
Un caramel abstrait à celui qui trouve mon erreur :)
EDIT 3:
Oh non, je viens de comprende, le message 10 que je reçois est en fait 2 messages que je n'ai pas séparé, voilà pourquoi je ne recevais plus rien, reste plus qu'à tester avec de vrais id pour voir si ça fonctionne (si ça fonctionne je suis officiellement un boulet)
EDIT 4:
Après une petite correction sur la version et avec un vrai compte, tout fonctionne, je reçois un message de type 22 puis de type 30. Un gros facepalm pour moi ce soir qui essayait de corriger des fonctions qui allaient très bien depuis facilement un mois :')