public void CribDragTest(string word) { var a = CConverter.ToBytes("Hello World"); var b = CConverter.ToBytes("the program"); var xor = CConverter.XOR(a, b); cracker.CribDrag(xor, word); }
public void HelloWorldXORTest() { var a = CConverter.ToBytes("Hello World"); var b = CConverter.ToBytes("the program"); var xor = CConverter.XOR(a, b); var str = CConverter.ToHexString(xor); Console.WriteLine(str); str = CConverter.ToHexString("the"); Console.WriteLine(str); str = CConverter.ToASCIIString(CConverter.XOR(xor, CConverter.ToBytes(str))); Console.WriteLine(str); }
public static Dictionary <(byte[], byte[]), byte[]> BuildDictionary(List <byte[]> ctByteList) { var arr = ctByteList; var dict = new Dictionary <(byte[], byte[]), byte[]>(); for (var i = 0; i < ctByteList.Count - 1; i++) { for (var j = i + 1; j < ctByteList.Count; j++) { var xor = CConverter.XOR(arr[i], arr[j]); dict.Add((arr[i], arr[j]), xor); } } return(dict); }
public void CribDrag(byte[] xored, string word) { var byteWord = CConverter.ToBytes(word); byte[] cribXOR; string line, cribWord; Match match; for (var i = 0; i <= xored.Length - byteWord.Length; i++) { cribXOR = CConverter.XOR(xored, byteWord, i); line = CConverter.ToASCIIString(cribXOR); cribWord = line.Substring(i, word.Length); match = Regex.Match(cribWord); if (match.Success) { Console.WriteLine("result[{0}]: {1}", i, cribWord); } //else Console.Error.WriteLine("result[{0}]: {1}", i, cribWord); } }