易懂代码:

// 解密函数 System_Byte_array *__fastcall A2_Crypto_BasicCrypto__Decrypt_32629204(System_Byte_array *cryptoKey, System_Byte_array *data, const MethodInfo *method) { System_Security_Cryptography_RijndaelManaged_o *rijndael; // 存放RijndaelManaged实例的指针 System_Byte_array *result; // 存放解密结果的指针

rijndael = (System_Security_Cryptography_RijndaelManaged_o *)sub_154ACB8(System_Security_Cryptography_RijndaelManaged_TypeInfo); System_Security_Cryptography_RijndaelManaged___ctor(rijndael, 0LL); // 设置RijndaelManaged实例的属性 ((void (__fastcall *)(System_Security_Cryptography_RijndaelManaged_o *, _QWORD, const MethodInfo *))rijndael->klass->vtable._7_set_BlockSize.methodPtr)( rijndael, (unsigned int)(8 * LODWORD(cryptoKey->max_length)), rijndael->klass->vtable._7_set_BlockSize.method); ((void (__fastcall *)(System_Security_Cryptography_RijndaelManaged_o *, _QWORD, const MethodInfo *))rijndael->klass->vtable._15_set_KeySize.methodPtr)( rijndael, (unsigned int)(8 * LODWORD(cryptoKey->max_length)), rijndael->klass->vtable._15_set_KeySize.method); ((void (__fastcall *)(System_Security_Cryptography_RijndaelManaged_o *, __int64, const MethodInfo *))rijndael->klass->vtable._10_set_IV.methodPtr)( rijndael, v6, rijndael->klass->vtable._10_set_IV.method); ((void (__fastcall *)(System_Security_Cryptography_RijndaelManaged_o *, System_Byte_array *, const MethodInfo *))rijndael->klass->vtable._12_set_Key.methodPtr)( rijndael, cryptoKey, rijndael->klass->vtable._12_set_Key.method); ((void (__fastcall *)(System_Security_Cryptography_RijndaelManaged_o *, __int64, const MethodInfo *))rijndael->klass->vtable._17_set_Mode.methodPtr)( rijndael, 1LL, rijndael->klass->vtable._17_set_Mode.method); ((void (__fastcall *)(System_Security_Cryptography_RijndaelManaged_o *, __int64, const MethodInfo *))rijndael->klass->vtable._19_set_Padding.methodPtr)( rijndael, 2LL, rijndael->klass->vtable._19_set_Padding.method); // 创建解密器 _QWORD *decryptor = (__int64 (__fastcall *)(System_Security_Cryptography_RijndaelManaged_o *, const MethodInfo *))rijndael->klass->vtable._22_CreateDecryptor.methodPtr)(rijndael, rijndael->klass->vtable._22_CreateDecryptor.method); // 解密数据 result = (System_Byte_array )((__int64 (__fastcall **)(_QWORD *, __int64, _QWORD, _QWORD, _QWORD))decryptor)( decryptor, data, 0LL, data->max_length, *(_QWORD *)(decryptor + 2)); return result; }

// 解密函数的包装函数,对密钥进行编码 System_Byte_array *__fastcall A2_Crypto_BasicCrypto__Decrypt_32630132(System_String_o *cryptoKey, System_Byte_array *data, const MethodInfo *method) { System_Text_Encoding_o *utf8 = System_Text_Encoding__get_UTF8(0LL); System_Byte_array *keyBytes = (System_Byte_array *)((__int64 (__fastcall *)(System_Text_Encoding_o *, System_String_o *, const MethodInfo *))utf8->klass->vtable._18_GetBytes.methodPtr)( utf8, cryptoKey, utf8->klass->vtable._18_GetBytes.method); return A2_Crypto_BasicCrypto__Decrypt_32629204(keyBytes, data, method); }

// 主函数 void _fastcall A2


原文地址: https://www.cveoy.top/t/topic/fefT 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录