Пример #1
0
        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);
        }
Пример #2
0
        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);
            }
        }