.NET 调用AES算法加解密shellcode

0x01 基本介绍

.NET使用AES(Advanced Encryption Standard)加密shellcode用于免杀,是一种提供了高级加密标准的算法,是一种对称密钥加密算法,加密和解密所使用的密钥是相同的,参数密钥Key:用于加密和解密数据的秘密密钥。初始化向量IV:用于初始化加密过程中的状态,例如下demo.

byte[] aesKey = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10 };byte[] aesIV = { 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20 };

解密方法使用解密器对象decryptor.TransformFinalBlock方法解密

public static byte[] DecryptAES(byte[] key, byte[] iv, byte[] data)        {            using (Aes aes = Aes.Create())            {                aes.Key = key;                aes.IV = iv;
                using (var decryptor = aes.CreateDecryptor())                {                    return decryptor.TransformFinalBlock(data, 0, data.Length);                }            }        }

.NET 调用AES算法加解密shellcode