Показать сообщение отдельно

  #10  
Старый 28.12.2015, 13:16
Kaimi
Познавший АНТИЧАТ
Регистрация: 23.08.2007
Сообщений: 1,237
С нами: 9851426

Репутация: 1676


По умолчанию

Скрипт для расшифровки

Код:
import sys, getopt
from wincrypto import CryptCreateHash, CryptHashData, CryptDeriveKey, CryptDecrypt
from wincrypto.definitions import CALG_SHA1, CALG_AES_256

def usage():
    print 'VKBot password decryptor'
    print 'Usage: ' + sys.argv[0] + ' -p password [option]'

def main(argv):                       
    try:
        opts, args = getopt.getopt(argv, 'hp:d', ['help', 'password='])
        if not opts:
            usage()
    except getopt.GetoptError:
        usage()
        sys.exit(2)
  
    password = None
    for opt, arg in opts:
        if opt in ('-h', '--help'):
            usage()
            sys.exit()
        elif opt == '-d':
            global _debug
            _debug = 1
        elif opt in ('-p', '--password'):
            password = arg

    if password:
        print 'Password: ' + decrypt(password)

def decrypt(password_hex):
    encryption_key = 'v[,+E{,gl.XJvV7fdY/jA=0),l|{8&=|'
  
    sha1_hasher = CryptCreateHash(CALG_SHA1)
    CryptHashData(sha1_hasher, encryption_key)
    aes_key = CryptDeriveKey(sha1_hasher, CALG_AES_256)
  
    password = ''.join(chr(int(password_hex[i:i+2], 16)) for i in range(0, len(password_hex), 2))
    return CryptDecrypt(aes_key, password)

if __name__ == "__main__":
    main(sys.argv[1:])
 
Ответить с цитированием