Python idc.AskFile() Examples

The following are 12 code examples for showing how to use idc.AskFile(). These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example.

You may check out the related API usage on the sidebar.

You may also want to check out all available functions/classes of the module idc , or try the search function .

Example 1
Project: DIE   Author: ynvb   File: DIE.py    License: MIT License 6 votes vote down vote up
def load_db(self):
        try:
            db_file = idc.AskFile(0, "*.ddb", "Load DIE Db File")
            if db_file is not None:
                self.die_db.load_db(db_file)

            if self.die_db is not None:
                self.show_db_details()

        except DbFileMismatch as mismatch:
            idaapi.msg("Error while loading DIE DB: %s\n" % mismatch)

        except Exception as ex:
            logging.exception("Error while loading DB: %s", ex)
            return False


    ###########################################################################
    # Function View 
Example 2
Project: IDASynergy   Author: CubicaLabs   File: IDASynergy.py    License: MIT License 5 votes vote down vote up
def on_export(self):
        Warning("This export option generates an .ivz file that you have to distribute manually.\nIDASynergy won't automatically synchronize unless a local repository is synched\nto a versioning server and the 'IDASynergy SVN Commit' menu option is used.")
        exp_file = idc.AskFile(1, "*.ivz", "Exported data filename")
        print time.time()
        self.remove_hooks()
        self.data_io.export_to_file(exp_file)
        self.insert_hooks()
        return 1 
Example 3
Project: IDASynergy   Author: CubicaLabs   File: IDASynergy.py    License: MIT License 5 votes vote down vote up
def on_import(self):
        imp_file = idc.AskFile(0, "*.ivz", "Select file to import")
        self.remove_hooks()
        self.data_io.import_from_file(imp_file, self.insert_hooks)
        return 1 
Example 4
Project: DIE   Author: ynvb   File: DIE.py    License: MIT License 5 votes vote down vote up
def save_db(self):
        db_file = idc.AskFile(1, "*.ddb", "Save DIE Db File")
        if db_file is None:
            return

        self.die_db.save_db(db_file) 
Example 5
Project: IDAPython_Note   Author: ExpLife0011   File: 16_输入与输出.py    License: MIT License 5 votes vote down vote up
def importb(self):
        #将文件中的内容导入到buffer中
        fileName = idc.AskFile(0, "*.*", 'Import File')
        try:
            self.buffer = open(fileName, 'rb').read()
        except:
            sys.stdout.write('ERROR:Cannot access file') 
Example 6
Project: IDAPython_Note   Author: ExpLife0011   File: 16_输入与输出.py    License: MIT License 5 votes vote down vote up
def export(self):
        #将所选择的buffer保存到文件
        exportFile = idc.AskFile(1, "*.*", "Export Buffer")
        f = open(exportFile, 'wb')
        f.write(self.buffer)
        f.close() 
Example 7
Project: ida_pdb_loader   Author: ax330d   File: main.py    License: MIT License 5 votes vote down vote up
def run(self):
        '''Public function.'''

        self.symbol_path = idc.AskFile(0, '*.pdb', 'Choose PDB file...')
        self.image_base = idaapi.get_imagebase()

        print "IPL: Loading PDB data, might take a while..."
        self.PDBLookup = pdbparse.symlookup.Lookup([(self.symbol_path, self.image_base)])

        if not self.PDBLookup:
            print "IPL: PDBLookup failed to initialize, exiting."
            return

        self._rename_functions()
        return 
Example 8
Project: IDAmetrics   Author: mxmssh   File: sorter.py    License: BSD 2-Clause "Simplified" License 5 votes vote down vote up
def main():
    message = "First of all you need to specify folder with test cases."
    idc.Warning(message)
    fname = idc.AskFile(0, "*.*", "Please specify first trace file in test cases folder \
                                   to start prioritization")
    if fname == None:
        print "You need to specify any file in test cases folder to start prioritization"
        return 0
    fname = os.path.dirname(fname)
    if fname == None:
        return 0
    print "Starting prioritization of " + fname
    start_prior(fname)
    print "Done" 
Example 9
Project: IDAmetrics   Author: mxmssh   File: IDAMetrics_dynamic.py    License: BSD 2-Clause "Simplified" License 5 votes vote down vote up
def prepare(metrics_used):
    fname = idc.AskFile(0, ".out", "Choose a trace file")
    if fname == None:
        print "You need to specify trace to get dynamic metrics"
        return 0
    print "Start trace analysis"

    metrics_dynamic = Metrics_dynamic()
    metrics_dynamic.get_dynamic_metrics(fname, metrics_used) 
Example 10
Project: flare-ida   Author: fireeye   File: shellcode_hash_search.py    License: Apache License 2.0 5 votes vote down vote up
def run(self):
        try:
            logger.debug("Starting up")
            dbFile = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', 'shellcode_hashes', 'sc_hashes.db'))
            logger.debug('Trying default db path: %s', dbFile)
            if not os.path.exists(dbFile):
                if using_ida7api:
                    dbFile = idaapi.ask_file(False, "*.db", "Select shellcode hash database")
                else:
                    dbFile = idc.AskFile(0, "*.db", "Select shellcode hash database")

                if (dbFile is None) or (not os.path.isfile(dbFile)):
                    logger.debug("No file select. Stopping now")
                    return
            self.dbstore = DbStore(dbFile)
            logger.debug("Loaded db file: %s", dbFile)
            if QT_AVAILABLE:
                self.launchGuiInput()
            else:
                self.launchManualPrompts() 
            searcher = ShellcodeHashSearcher(self.dbstore, self.params)
            logger.debug('Starting to run the searcher now')
            searcher.run()
            logger.debug("Done")
        except RejectionException:
            logger.info('User canceled action')
        except Exception as err:
            logger.exception("Exception caught: %s", str(err)) 
Example 11
Project: flare-ida   Author: fireeye   File: jayutils.py    License: Apache License 2.0 5 votes vote down vote up
def getInputFilepath():
    '''Returns None if the uesr cancels. Updates the filepath in the idb on success'''
    if using_ida7api:
        return getInputFilepath_ida7()
    filePath = idc.GetInputFilePath()
    if not os.path.exists(filePath):
        print ('IDB input file not found. Prompting for new one: %s' % filePath)
        filePath = idc.AskFile(False, '*.*', 'Enter path to idb input file')
        if filePath is not None:
            idc.SetInputFilePath(filePath)
    return filePath 
Example 12
Project: dsc_fix   Author: deepinstinct   File: dsc_fix.py    License: GNU General Public License v3.0 5 votes vote down vote up
def main():
    if _IN_IDA:
        # # get dyld_shared_cache path from IDA's openFile dialog
        print "[+] Please choose the original dyld_shared_cache_arm64"
        dsc_path = idc.AskFile(0, "*.*", "dyld shared cache file")
    else:
        dsc_path = sys.argv[1]

    if not dsc_path or not os.path.exists(dsc_path):
        raise RuntimeError("Couldn't find the dyld shared cache file..")

    print "[+] about to parse %s.." % (dsc_path)
    dsc_file = open(dsc_path, "rb")
    adrfind = AddrFinder(dsc_file, cache_symbols=False)
    map_shared_bridges(dsc_file, adrfind)
    if _IN_IDA:
        addresses = sorted(set(get_bad_addresses()))
    else:
        addresses = sorted(set(eval(open("addrs.txt", "rb").read())))

    segments, exports = get_segments_and_exports_for_addresses(addresses, adrfind)
    # segments = join_neighbors(segments, threshold=0x1000)
    if _IN_IDA:
        map_segments(segments, dsc_file)
        map_exports(exports)
        idaapi.analyze_area(idc.MinEA(), idc.MaxEA())