public void TestBase255XorEncoding() { BaseNEncoder encoder = new BaseNEncoder(); byte[] nullShellcode = new byte[] { 0, 0, 0 }; string xorKey = "\x00\x00\x00"; byte[] xoredNullShellcode = XorPayloadAgainstString(nullShellcode, xorKey); Assert.AreEqual(xorKey, Encoding.Default.GetString(xoredNullShellcode)); byte[] shellcode = TestHelpers.GetPopCalc64Shellcode(); shellcode = XorPayloadAgainstString(shellcode, xorKey); // var strings = ConvertPayloadToStrings(shellcode, encoder); var strings = FormulaHelper.BuildBase64PayloadMacros(shellcode); foreach (var s in strings) { Console.WriteLine(string.Format("=\"{0}\"", s)); } }
public void TestBase255EncodingForBasicPayload() { byte[] shellcode = TestHelpers.GetPopCalcShellcode(); BaseNEncoder encoder = new BaseNEncoder(); var strings = FormulaHelper.BuildBase64PayloadMacros(shellcode); foreach (var s in strings) { Console.WriteLine(string.Format("=\"{0}\"", s)); } string encodedShellcode = encoder.Encode(shellcode); int encodedLen = encodedShellcode.Length; byte[] decodedShellcode = encoder.Decode(encodedShellcode); Assert.AreEqual(shellcode, decodedShellcode); }