Beispiel #1
0
def crackSeed():
    seed = 0
    randWait = random.randrange(40, 1001)
    time.sleep(randWait)
    realSeed = int(time.time())
    print(realSeed)
    MT19937.seed_mt(realSeed)
    randWait = random.randrange(40, 1001)
    time.sleep(randWait)
    
    val = MT19937.extract_number()
    currTime = int(time.time())
    rangeOfVals = 0
    while seed == 0:
        for i in range(rangeOfVals, rangeOfVals+100000):
            testSeed = currTime - i
            MT19937.seed_mt(testSeed)
            firstVal = MT19937.extract_number()
            if firstVal == val:
                seed = testSeed
                break
        if seed !=0:
            return seed
        rangeOfVals += 100000
        print('NewVals')
    return None
def generatePasswordToken():
    tokenLen = 13
    token = []
    MT19937.seed_mt(int(time.time()))
    for i in range(tokenLen):
        randNo = MT19937.extract_number()
        randNo = randNo%256
        token.append(randNo)
    token = bytes(token)
    return token
def testIfTokenGenByMT19937(token):
    timestamp = int(time.time())
    for i in range(10000):
        testSeed = timestamp-i
        MT19937.seed_mt(testSeed)
        isSeed = True
        for j in range(len(token)):
            if token[j] != MT19937.extract_number()%256:
                isSeed = False
        if isSeed:
            return True
            
    return False
Beispiel #4
0
def MT19937cipher(ipBytes, seed):
    seedSizeInBits = 16
    seed = (bin(abs(seed))[2:]).zfill(seedSizeInBits)
    seed = int(seed[len(seed) - seedSizeInBits:], 2)
    MT19937.seed_mt(seed)

    output = []
    for i in range(len(ipBytes)):
        randNo = MT19937.extract_number()
        randNo = randNo % 256
        output.append(randNo ^ ipBytes[i])
    output = bytes(output)
    return output
Beispiel #5
0
def main():
    randomizeMT()
    crackMT()

    isSame = True
    for i in range(200 * n):
        extractedNo = MT19937.extract_number()
        predictedNo = extract_number_cracked()
        if predictedNo != extractedNo:
            print(i)
            isSame = False

    if isSame:
        print("Cracked!!")
Beispiel #6
0
def initialiseMT():
    global MT
    for i in range(n):
        output = MT19937.extract_number()
        number = unTemper(output)
        MT.append(number)
Beispiel #7
0
def randomizeMT():
    for i in range(random.randrange(0, n)):
        no = MT19937.extract_number()