-1

iOS アプリを逆コンパイルすると、文字列の暗号化に使用される秘密鍵とメソッドが表示されました。charles を使用してこのデータをキャッチし、次のような文字列を作成しました: Charles package data

/random1/name/BQPnTF9MX8A3FbV1V5jtFozQnSkNtBK5AFJyTnzBJZgFkXIZyWlvxd3LzH6eIQznMLW7U8V3M5FDU9j9zGrkajIc5VjqIS1q8Sy+L9tLPE51aIy0xlKVlRgqjWGe0HGUBBAtlTk+rOZEeR/+TODnEN79mYtgWTNpscRr9dy6DoWw7wvE7MiLIibdCjQ4PbcFQ/EpvIjgWOzCorbobYbEUoI/aw== HTTP/1.1

次に、iOS コードを調べたところ、メソッドの逆アセンブラーが表示されました。

そこで、この暗号化された文字列をデコードするための php サーバーを作成しました。

require __DIR__ . '/../autoload.php';

$password = "e12d33re";

$base64Encrypted = "BQN7evDaWMlRXiOOeCEIkL6+3K2dLRKv/e9tYTxrSVMTojf6gMPL7hW7gfuYHt622CIlfon5vsGpv9ykM6WbbMPdH7Q56lcbRPA2KO9aquYR5fM8e0fGGb7AQzPs3G0CJAAYG0E9i8cG1VH3uVP6VWjK5LkpRuUOk8QuoG1j3eP0fUZVY8RSjKyFZpbLlDIrANg4T5DmkigVTEN82QYCbLv2Iw==";

$cryptor = new \RNCryptor\Decryptor();
$plaintext = $cryptor->decrypt($base64Encrypted, $password);

echo "Base64 Encrypted:\n$base64Encrypted\n\n";
echo "Plaintext:\n$plaintext\n\n";

しかし、私はそれを解読することはできません。

コードでバージョンを確認したところ、バージョン5であることがわかりました

$base64Encrypted = "BQN7evDaWMlRXiOOeCEIkL6+3K2dLRKv/e9tYTxrSVMTojf6gMPL7hW7gfuYHt622CIlfon5vsGpv9ykM6WbbMPdH7Q56lcbRPA2KO9aquYR5fM8e0fGGb7AQzPs3G0CJAAYG0E9i8cG1VH3uVP6VWjK5LkpRuUOk8QuoG1j3eP0fUZVY8RSjKyFZpbLlDIrANg4T5DmkigVTEN82QYCbLv2Iw==";
$actualVersion = ord(substr(base64_decode($base64Encrypted), 0, 1));

iOS バイナリ ファイルに rncryptor lib が表示されます。

最初の写真、秘密鍵で復号化に成功しました(RNcryptorでv4文字列を暗号化しました) http://i.stack.imgur.com/Kq5m1.png

2番目の写真、彼らは暗号化に未知の方法を使用しましたが、確かに100% rncryptor(彼らはv4文字列を暗号化していません) http: //i.stack.imgur.com/NfScg.png

4

1 に答える 1

-1

iOS バイナリ ファイルに rncryptor lib が表示されます。

最初の写真、秘密鍵で復号化に成功しました(RNcryptorでv4文字列を暗号化しました) バージョン1

2 番目の写真、彼らは暗号化に未知の方法を使用しましたが、100% rncryptor (v4 文字列は暗号化していません) バージョン 2であることは確かです

于 2016-05-17T17:58:51.887 に答える