Пример #1
0
def read():
    # 打开数据库
    db = SDB()
    data_str = db.read_all()
    # print(data_str[0][1])
    dict = json2dict(data_str[0][1])
    for i in dict:
        print(i['img'])
        f = str2pic(i['data'])
Пример #2
0
def _main(sdb_path):
    from sdb import SDB
    with open(sdb_path, "rb") as f:
        buf = f.read()

    s = SDB()
    s.vsParse(bytearray(buf))

    for l in dump(s):
        sys.stdout.write(l.encode("utf-8"))
        sys.stdout.write("\n")
Пример #3
0
    def __init__(self, parent=None):
        super(SauceNAO_N_Ui, self).__init__(parent)
        self.setupUi(self)

        self.pic_listWidget.doubleClicked.connect(self.read_data)
        self.result_listWidget.clicked.connect(self.show_data)

        self.db = SDB()

        self.res_list = []
        self.index_list = self.db.read_index()

        for i in self.index_list:
            self.pic_listWidget.addItem(QListWidgetItem(i[0]))
Пример #4
0
def _main(sdb_path):
    from sdb import SDB
    with open(sdb_path, "rb") as f:
        buf = f.read()

    g_logger.debug("loading database")
    s = SDB()
    s.vsParse(bytearray(buf))
    g_logger.debug("done loading database")

    d = SdbInfoDumper(s)
    for l in d.dump_info():
        sys.stdout.write(l.encode("utf-8"))
        sys.stdout.write("\n")
Пример #5
0
    def _parse_rom_element(self, element_buffer, debug = False):
        sdb = SDB()
        sdb.parse_rom_element(element_buffer, debug)
        if sdb.is_interconnect():
            if debug: print "Interconnect: %s" % sdb.d["SDB_NAME"]
            if debug: print "\tNumber of Elements: %d" % sdb.get_number_of_records_as_int()

        elif sdb.is_device():
            if debug: print "Device: %s" % sdb.d["SDB_NAME"]

        elif sdb.is_bridge():
            if debug: print "Bridge: %s" % sdb.d["SDB_NAME"]

        if debug: print "\t0x%016X - 0x%016X: Size: 0x%016X" % (sdb.get_start_address_as_int(), \
                                                                sdb.get_end_address_as_int(), \
                                                                sdb.get_size_as_int())
Пример #6
0
def _main(sdb_path):
    from sdb import SDB
    with open(sdb_path, "rb") as f:
        buf = f.read()

    s = SDB()
    try:
        s.vsParse(bytearray(buf))
    except sdb.InvalidSDBFileError:
        g_logger.error("not an SDB file: %s" % (sdb_path))
        return -1

    d = SdbShimDumper(s)
    for l in d.dump_database():
        sys.stdout.write(l.encode("utf-8"))
        sys.stdout.write("\n")
Пример #7
0
def run():
    # 读取目录图片
    # pic_list = read_pics('.')
    pic_list = [os.path.basename(PIC)]
    # 打开数据库
    db = SDB()
    # 初始化浏览器
    chrome = init_chrome()
    # 搜索图片
    result_dic = search_pic(chrome, pic_list[0])
    # 下载搜图结果图片,并转成字符串保存
    download_img(result_dic)
    # 将部分数据转字符串
    result_dic['results'] = dict2json(result_dic['results'])
    # 写入数据库
    db.add(result_dic)
    # 查看数据
    print(db.read_all())
Пример #8
0
def _main(sdb_path, patch_name):
    from sdb import SDB
    with open(sdb_path, "rb") as f:
        buf = f.read()

    g_logger.debug("loading database")
    s = SDB()
    s.vsParse(bytearray(buf))
    g_logger.debug("done loading database")

    index = SdbIndex()
    g_logger.debug("indexing strings")
    index.index_sdb(s)
    g_logger.debug("done indexing strings")

    try:
        library = item_get_child(s.database_root, SDB_TAGS.TAG_LIBRARY)
    except KeyError:
        pass
    else:
        for shim_ref in item_get_children(library, SDB_TAGS.TAG_SHIM_REF):
            patch = item_get_child(shim_ref, SDB_TAGS.TAG_PATCH)
            name_ref = item_get_child(patch, SDB_TAGS.TAG_NAME)
            name = index.get_string(name_ref.value.reference)
            if name != patch_name:
                continue

            bits = item_get_child(patch, SDB_TAGS.TAG_PATCH_BITS)
            dump_patch(bits, arch=ARCH_32)

    try:
        patch = item_get_child(s.database_root, SDB_TAGS.TAG_PATCH)
    except KeyError:
        pass
    else:
        name_ref = item_get_child(patch, SDB_TAGS.TAG_NAME)
        name = index.get_string(name_ref.value.reference)

        if name == patch_name:
            bits = item_get_child(patch, SDB_TAGS.TAG_PATCH_BITS)
            dump_patch(bits, arch=ARCH_32)