Esempio n. 1
0
class DbStorage(Storage):


    def __init__(self, db=''):
        self.db = DBGateway(db + '.sqlite')

    def open(self):
        try:
            self.db.create_table(TABLE, cols=[ ' '.join([col, 'TEXT']) for col in COLUMNS], primary=PRIMARY)
        except Exception:
            return False
        else:
            return True

    def store(self, data_dict):
        data_tuple = self.align_kwargs(data_dict)
        if not self.db.insert(TABLE, cols=COLUMNS, vals=data_tuple):
            err_tuple = (data_dict.get('pdf_md5'), 'DB_ERROR: %s' % self.db.get_error())
            self.db.insert(TABLE, cols=['pdf_md5', 'errors'], vals=err_tuple)

    def close(self):
        self.db.disconnect()

    def contains(self, key, val):
        return self.db.count(TABLE, key, val)
Esempio n. 2
0
class DbStorage(Storage):
    def __init__(self, db=''):
        self.db = DBGateway(db + '.sqlite')

    def open(self):
        try:
            self.db.create_table(
                TABLE,
                cols=[' '.join([col, 'TEXT']) for col in COLUMNS],
                primary=PRIMARY)
        except Exception:
            return False
        else:
            return True

    def store(self, data_dict):
        data_tuple = self.align_kwargs(data_dict)
        if not self.db.insert(TABLE, cols=COLUMNS, vals=data_tuple):
            err_tuple = (data_dict.get('pdf_md5'),
                         'DB_ERROR: %s' % self.db.get_error())
            self.db.insert(TABLE, cols=['pdf_md5', 'errors'], vals=err_tuple)

    def close(self):
        self.db.disconnect()

    def contains(self, key, val):
        return self.db.count(TABLE, key, val)
Esempio n. 3
0
            print 'Mapping: %s' % func.name
            if func.setup:
                print '\tsetup:\t%s\n\t\t%s' % func.setup
                if not self.setup(func.setup):
                    continue
            while func.proceed:
                if not self.db.query(func.query_cmd()):
                    sys.stderr.write("query: %s\n" % self.db.get_error())
                else:
                    func.run(self.db.db_curr.fetchone())
                    if not self.db.query(func.update, func.subs):
                        sys.stderr.write("update: %s\n" % self.db.get_error())


if __name__ == '__main__':
    try:
        dbpath = sys.argv[1]
        if not os.path.exists(dbpath):
            raise IndexError
        MIN = sys.argv[2]
        MAX = sys.argv[3]
    except IndexError as e:
        print 'Invalid args: %s' % e
        sys.exit(0)
    else:
        db = DBGateway(os.path.basename(dbpath), os.path.dirname(dbpath))
        functions = [ JSHasher(MIN, MAX), ]
        mapper = Mapper(db, functions)
        mapper.start()
        db.disconnect()
Esempio n. 4
0
        store(log, 'clarified', col, val)

    elif JSFLASH == 'flash':
        msg = 'FL CNT: %6d\tRID: %6d\tFile: %s\n' % (cnt, rid, pdf)
        logmsg(log, msg)
        
        try:
            ascript = decompile_flash(code)
            as_sdhash = make_sdhash(ascript, log)
        except Exception as e:
            ascript = 'error: %s' % e
            logmsg(log, 'Decompilation error [%s]: %s\n' % (pdf, str(e)))

        col = ('pdf_md5', 'swf', 'actionscript', 'actionscript_sdhash')
        val = (pdf, code, ascript, as_sdhash)
        store(log, 'clarified', col, val)


try:
    log.close()
except Exception:
    pass

'''
Finish
'''
DB.commit()
DBout.commit()
DB.disconnect()
DBout.disconnect()
Esempio n. 5
0
        col = ('pdf_md5', 'js', 'de_js', 'de_js_sdhash')
        val = (pdf, code, de_js, de_js_sdhash)
        store(log, 'clarified', col, val)

    elif JSFLASH == 'flash':
        msg = 'FL CNT: %6d\tRID: %6d\tFile: %s\n' % (cnt, rid, pdf)
        logmsg(log, msg)

        try:
            ascript = decompile_flash(code)
            as_sdhash = make_sdhash(ascript, log)
        except Exception as e:
            ascript = 'error: %s' % e
            logmsg(log, 'Decompilation error [%s]: %s\n' % (pdf, str(e)))

        col = ('pdf_md5', 'swf', 'actionscript', 'actionscript_sdhash')
        val = (pdf, code, ascript, as_sdhash)
        store(log, 'clarified', col, val)

try:
    log.close()
except Exception:
    pass
'''
Finish
'''
DB.commit()
DBout.commit()
DB.disconnect()
DBout.disconnect()
Esempio n. 6
0
                print '\tsetup:\t%s\n\t\t%s' % func.setup
                if not self.setup(func.setup):
                    continue
            while func.proceed:
                if not self.db.query(func.query_cmd()):
                    sys.stderr.write("query: %s\n" % self.db.get_error())
                else:
                    func.run(self.db.db_curr.fetchone())
                    if not self.db.query(func.update, func.subs):
                        sys.stderr.write("update: %s\n" % self.db.get_error())


if __name__ == '__main__':
    try:
        dbpath = sys.argv[1]
        if not os.path.exists(dbpath):
            raise IndexError
        MIN = sys.argv[2]
        MAX = sys.argv[3]
    except IndexError as e:
        print 'Invalid args: %s' % e
        sys.exit(0)
    else:
        db = DBGateway(os.path.basename(dbpath), os.path.dirname(dbpath))
        functions = [
            JSHasher(MIN, MAX),
        ]
        mapper = Mapper(db, functions)
        mapper.start()
        db.disconnect()