+ Reply to Thread
Results 1 to 1 of 1

Thread: 4. Уроки реального взлома MiniTool Photo Recovery 3.0

  1. #1

    Default 4. Уроки реального взлома MiniTool Photo Recovery 3.0

    На прошлом уроке мы видели сообщение об успешной регистрации, но после этого все стало как было, программа не зарегистрирована.

    Продолжаем исследование, у нас остались не исследованные поля
    keyHash, codeHash, date

    поищем строку keyHash shift+F12, Ctrl+F "keyHash"



    имеет две перекрестные ссылки, одну функцию мы уже разобрали, а вот вторую еще нет



    ставим бряк и начинаем отладку



    пролистав функцию видим что она работает с ранее сохраненным ключевым файлом



    проверяет корректность licensecode и activation_code



    ну и читает keyHash из json activation code



    тут же читается codeHash



    от keyHash считается md4



    от codeHash sha1 и hex



    далее когда ключ прочитан выход из функции



    еще один выход и мы покинули pas2.dll и видим получение интерфейса и вызов метода из pas2.dl



    шагаем внутрь метода и в нем видим снова функцию чтения ключа



    загружается кофигурация MiniToolPhotoRecovery.exe.ini в которой хранится licenseCode и activation_code



    Далее подходим к функции



    в ней видим что расшифровывается публичный ключ





    далее удаляются переносы и считается md5 от ключа



    далее от полученного значения считается еще и sha256



    далее от полученного значения считается md4



    и сравнивается хеши md4 рассчитанного значения и нашего полученного



    напишем код для рассчета keyHash

    Code:
    def get_key_hash(data):
        rsa=CryptoRSA.importKey(data)
        pub=rsa.publickey()
        p=pub.exportKey()
        txt=p.replace('\n','')
        h=hashlib.new('MD5')
        h.update(txt)
        h2=h.digest().encode('hex').lower()
    
        h=hashlib.new('SHA256')
        h.update(h2)
        h2=h.digest()
        h2=h2.encode('hex')
        return h2
    
    if __name__=="__main__":
        codes=['8e957302','c8e84503','5abfebbb','49d5b5dd']
        code='49d5b5dd'
        
        machineCode='insert machine code'
    
        serial=get_serial(code,'12345678')
        print serial
        ac=get_activation_code(serial, machineCode)
        v=get_activation_code_extra(machineCode, '20160101')
        print ac
        
        keyHash=get_key_hash(pub)
        print keyHash
        
        activation_code={'activation_code':ac+'-'+v,
                         'date':'',
                         'keyHash':keyHash,
                         'codeHash':'codeHash1',
                         'error':0}
        
        activation_code=encodeRSA(priv,activation_code)
        print activation_code
    сгенерируем регистрационные данные и введем в программу

    видим сравнение прошло успешно



    и программа сообщает об успешной лицензии Deluxe



    пробуем восстановить файлы, и видим сообщение о плохой лицензии



    Не расстраиваемся, в следующем уроке посмотрим что же помешало регистрации...
    Attached Files

  2. 4 пользователя(ей) сказали cпасибо:
    Darwin (26-11-2017) MERRON (27-11-2017) ximera (29-11-2017) yashechka (26-11-2017)
+ Reply to Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
All times are GMT. The time now is 08:08
vBulletin® Copyright ©2000 - 2017
www.reverse4you.org