def testXorByteArray(self): test_arr = bytearray("Hello World!!") for key in [1, 5, 123, 255]: xor_arr = bytearray(test_arr) utils.XorByteArray(xor_arr, key) self.assertNotEqual(xor_arr, test_arr) utils.XorByteArray(xor_arr, key) self.assertEqual(xor_arr, test_arr)
def FindLiteral(self, pattern, data): """Search the data for a hit.""" utils.XorByteArray(pattern, self.xor_in_key) offset = 0 while 1: # We assume here that data.find does not make a copy of pattern. offset = data.find(pattern, offset) if offset < 0: break yield (offset, offset + len(pattern)) offset += 1 utils.XorByteArray(pattern, self.xor_in_key)