Commits

Daniel Plohmann  committed a177029

initial

  • Participants

Comments (0)

Files changed (181)

+#!/usr/bin/python
+########################################################################
+# Copyright (c) 2012
+# Daniel Plohmann <daniel.plohmann<at>gmail<dot>com>
+# Alexander Hanel <alexander.hanel<at>gmail<dot>com>
+# All rights reserved.
+########################################################################
+#
+#  This file is part of IDAscope
+#
+#  IDAscope is free software: you can redistribute it and/or modify it
+#  under the terms of the GNU General Public License as published by
+#  the Free Software Foundation, either version 3 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with this program.  If not, see
+#  <http://www.gnu.org/licenses/>.
+#
+########################################################################
+
+import os
+import time
+
+import idaapi
+from idaapi import PluginForm, plugin_t
+from PySide import QtGui
+from PySide.QtGui import QIcon
+
+from idascope.core.structures.IDAscopeConfiguration import IDAscopeConfiguration
+from idascope.core.SemanticIdentifier import SemanticIdentifier
+from idascope.core.DocumentationHelper import DocumentationHelper
+from idascope.core.WinApiProvider import WinApiProvider
+from idascope.core.CryptoIdentifier import CryptoIdentifier
+from idascope.core.IdaProxy import IdaProxy
+from idascope.widgets.FunctionInspectionWidget import FunctionInspectionWidget
+from idascope.widgets.WinApiWidget import WinApiWidget
+from idascope.widgets.CryptoIdentificationWidget import CryptoIdentificationWidget
+
+################################################################################
+# Core of the IDAscope GUI.
+################################################################################
+
+HOTKEYS = None
+IDASCOPE = None
+NAME = "simpliFiRE.IDAscope v1.0"
+
+
+class IDAscopeForm(PluginForm):
+    """
+    This class contains the main window of IDAscope
+    Setup of core modules and widgets is performed in here.
+    """
+
+    def __init__(self):
+        super(IDAscopeForm, self).__init__()
+        banner =   "#############################################\n" \
+                 + "  ___ ____    _                             \n" \
+                 + " |_ _|  _ \  / \   ___  ___ ___  _ __   ___ \n" \
+                 + "  | || | | |/ _ \ / __|/ __/ _ \\| '_ \\ / _ \\\n" \
+                 + "  | || |_| / ___ \\\\__ \\ (_| (_) | |_) |  __/\n" \
+                 + " |___|____/_/   \\_\\___/\\___\\___/| .__/ \\___|\n" \
+                 + "                                |_|         \n" \
+                 + "#############################################\n" \
+                 + " by Daniel Plohmann and Alexander Hanel      \n" \
+                 + "#############################################\n"
+        print banner
+        print ("[+] Loading simpliFiRE.IDAscope")
+        global HOTKEYS
+        HOTKEYS = []
+        self.idascope_widgets = []
+        self.root_file_path = \
+                os.path.realpath(__file__)[:os.path.realpath(__file__).rfind(os.sep) + 1]
+        self.config = IDAscopeConfiguration(self.root_file_path + os.sep + "config.json")
+        self.icon = QIcon(self.config.icon_file_path + "idascope.png")
+
+    def setup_shared_modules(self):
+        """
+        Setup shared IDAscope modules.
+        """
+        time_before = time.time()
+        print ("[/] setting up shared modules...")
+        self.semantic_identifier = SemanticIdentifier(self.config)
+        self.semantic_identifier.scan()
+        self.documentation_helper = DocumentationHelper(self.config)
+        self.winapi_provider = WinApiProvider(self.config)
+        self.ida_proxy = IdaProxy()
+        self.crypto_identifier = CryptoIdentifier()
+        print ("[\\] this took %3.2f seconds.\n" % (time.time() - time_before))
+
+    def setup_widgets(self):
+        """
+        Setup IDAscope widgets.
+        """
+        time_before = time.time()
+        print ("[/] setting up widgets...")
+        self.idascope_widgets.append(FunctionInspectionWidget(self))
+        self.idascope_widgets.append(WinApiWidget(self))
+        self.idascope_widgets.append(CryptoIdentificationWidget(self))
+        self.setup_IDAscope_form()
+        print ("[\\] this took %3.2f seconds.\n" % (time.time() - time_before))
+
+    def setup_IDAscope_form(self):
+        """
+        Orchestrate the already initialized widgets in tabs on the main window.
+        """
+        self.tabs = QtGui.QTabWidget()
+        self.tabs.setTabsClosable(False)
+        for widget in self.idascope_widgets:
+            self.tabs.addTab(widget, widget.icon, widget.name)
+        layout = QtGui.QVBoxLayout()
+        layout.addWidget(self.tabs)
+        self.parent.setLayout(layout)
+
+    def OnCreate(self, form):
+        """
+        When creating the form, setup the shared modules and widgets
+        """
+        self.parent = self.FormToPySideWidget(form)
+        self.parent.setWindowIcon(self.icon)
+        self.setup_shared_modules()
+        self.setup_widgets()
+
+    def OnClose(self, form):
+        """
+        Perform cleanup.
+        """
+        global IDASCOPE
+        del IDASCOPE
+
+    def Show(self):
+        return PluginForm.Show(self,
+            NAME,
+            options=(PluginForm.FORM_CLOSE_LATER | PluginForm.FORM_RESTORE | PluginForm.FORM_SAVE))
+
+################################################################################
+# functionality offered to IDAscope's widgets
+################################################################################
+
+    def setTabFocus(self, widget_name):
+        """
+        Can be used by IDAscope widgets to set focus to a widget, identified by name.
+        @param widget_name: A widget name
+        @type widget_name: str
+        """
+        for widget in self.idascope_widgets:
+            if widget.name == widget_name:
+                tab_index = self.tabs.indexOf(widget)
+                self.tabs.setCurrentIndex(tab_index)
+        return
+
+    def register_hotkey(self, shortcut, py_function_pointer):
+        """
+        Can be used by IDAscope widgets to register hotkeys.
+        Uses a global list HOTKEYS of function pointers that link to the desired functionality.
+        Right now, linked functions cannot take parameters and should scrape all information they need by themselves.
+        @param shortcut: A string describing a shortcut, e.g. "ctrl+F3"
+        @type shortcut: str
+        @param py_function_pointer: a python function that shall be called when the shortcut is triggered.
+        @type py_function_pointer: a pointer to a python function
+        """
+        global HOTKEYS
+        hotkey_index = len(HOTKEYS)
+        hotkey_name = "idascope_HOTKEY_%d" % hotkey_index
+        HOTKEYS.append(py_function_pointer)
+        self.ida_proxy.CompileLine('static %s() { RunPythonStatement("HOTKEYS[%d]()"); }' % (hotkey_name, hotkey_index))
+        self.ida_proxy.AddHotkey(shortcut, hotkey_name)
+
+################################################################################
+# Usage as plugin
+################################################################################
+
+
+class IDAscopePlugin(plugin_t):
+    """
+    Plugin version of IDAscope. Use this to deploy IDAscope via IDA plugins folder.
+    """
+    flags = idaapi.PLUGIN_UNL
+    comment = NAME
+    help = "A plugin to help to identify the relevant parts"
+    wanted_name = "IDAscope"
+    wanted_hotkey = "Ctrl-F4"
+
+    def init(self):
+        # Some initialization
+        self.icon_id = 0
+        return idaapi.PLUGIN_OK
+
+    def run(self, arg=0):
+        # Create form
+        f = IDAscopeForm()
+
+        # Show the form
+        exit_code = f.Show()
+        if exit_code == 0:
+            f.Free()
+            return
+
+        f.Free()
+        return
+
+    def term(self):
+        pass
+
+
+def PLUGIN_ENTRY():
+    return IDAscopePlugin()
+
+################################################################################
+# Usage as script
+################################################################################
+
+
+def main():
+    global IDASCOPE
+
+    try:
+        IDASCOPE
+        IDASCOPE.OnClose(IDASCOPE)
+        print ("reloading IDAscope")
+        IDASCOPE = IDAscopeForm()
+        return
+    except Exception:
+        IDASCOPE = IDAscopeForm()
+
+    IDASCOPE.Show()
+
+
+if __name__ == "__main__":
+    main()
+simpliFiRE.IDAscope - An IDA Pro extension for easier (malware) reverse engineering
+===================================================================================
+
+Description
+-----------
+
+IDAscope is an IDA Pro extension with the goal to ease the task of (malware) reverse engineering with a current focus on x86 Windows. It consists of multiple tabs, containing functionality to achieve different goals such as fast identification of semantically interesting locations in the analysis target, seamless access to MSDN documentation of Windows API, and finding of potential crypto/compression algorithms.
+
+Instructions
+------------
+
+Go to https://bitbucket.org/daniel_plohmann/simplifire.idascope/ and download a release package or check out the repository for the latest version of IDAscope. 
+
+Basic installation is easy: unzipping the package in a location where it can be reached from IDA Pro is enough. To use the extension, simply run IDAscope.py from the root directory via IDA Pro's "File / Script File". 
+
+To make the MSDN database to the WinAPI browser available, follow the steps described in IDAscope/documentation/manual.html.
+
+Final Words
+-----------
+
+IDAscope has functionality (annotation, ccoloring, code conversion, ...) that can alter your IDB. While it should normally not happen, we cannot guarantee that it will not break the IDB of your analysis target. Therefore, we recommend making backups before using it. By using this tool, we assume that you know what you are doing and you accept that you are using it on your own risk. As stated in the license, we will not take liability for any damage caused by this tool.

File __init__.py

Empty file added.
+{
+    "config_path_sep": "\\",
+    "paths": {
+        "idascope_root_dir": "",
+        "semantics_file": "idascope\\data\\semantics.json",
+        "winapi_keywords_file": "idascope\\data\\winapi_keywords.json",
+        "winapi_rootdir": "C:\\WinAPI\\"
+        },
+    "winapi": {
+        "search_hotkey": "ctrl+y",
+        "load_keyword_database": true
+        }
+}

File documentation/epydoc/IDAscope-module.html

+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>IDAscope</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        Package&nbsp;IDAscope
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="IDAscope-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== PACKAGE DESCRIPTION ==================== -->
+<h1 class="epydoc">Package IDAscope</h1><p class="nomargin-top"><span class="codelink"><a href="IDAscope-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== SUBMODULES ==================== -->
+<a name="section-Submodules"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Submodules</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Submodules"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr><td class="summary">
+  <ul class="nomargin">
+    <li> <strong class="uidlink"><a href="IDAscope.IDAscope-module.html">IDAscope.IDAscope</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="IDAscope.idascope-module.html">IDAscope.idascope</a></strong>
+    <ul>
+    <li> <strong class="uidlink"><a href="IDAscope.idascope.core-module.html">IDAscope.idascope.core</a></strong>
+    <ul>
+    <li> <strong class="uidlink"><a href="IDAscope.idascope.core.AnnotationsProvider-module.html">IDAscope.idascope.core.AnnotationsProvider</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="IDAscope.idascope.core.CryptoIdentifier-module.html">IDAscope.idascope.core.CryptoIdentifier</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="IDAscope.idascope.core.DocumentationHelper-module.html">IDAscope.idascope.core.DocumentationHelper</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="IDAscope.idascope.core.IdaProxy-module.html">IDAscope.idascope.core.IdaProxy</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="IDAscope.idascope.core.JsonHelper-module.html">IDAscope.idascope.core.JsonHelper</a></strong>: <em class="summary">This module allows using the Python json module for parsing JSON 
+        data and decoding strings in UTF-8 instead of Unicode, resulting in
+        ability to use str functions (e.g.</em>    </li>
+    <li> <strong class="uidlink"><a href="IDAscope.idascope.core.PatternManager-module.html">IDAscope.idascope.core.PatternManager</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="IDAscope.idascope.core.SemanticIdentifier-module.html">IDAscope.idascope.core.SemanticIdentifier</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="IDAscope.idascope.core.WinApiProvider-module.html">IDAscope.idascope.core.WinApiProvider</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="IDAscope.idascope.core.structures-module.html">IDAscope.idascope.core.structures</a></strong>
+    <ul>
+    <li> <strong class="uidlink"><a href="IDAscope.idascope.core.structures.AritlogBasicBlock-module.html">IDAscope.idascope.core.structures.AritlogBasicBlock</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="IDAscope.idascope.core.structures.CallContext-module.html">IDAscope.idascope.core.structures.CallContext</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="IDAscope.idascope.core.structures.CryptoSignatureHit-module.html">IDAscope.idascope.core.structures.CryptoSignatureHit</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="IDAscope.idascope.core.structures.FunctionContext-module.html">IDAscope.idascope.core.structures.FunctionContext</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="IDAscope.idascope.core.structures.IDAscopeConfiguration-module.html">IDAscope.idascope.core.structures.IDAscopeConfiguration</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="IDAscope.idascope.core.structures.ParameterContext-module.html">IDAscope.idascope.core.structures.ParameterContext</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="IDAscope.idascope.core.structures.Segment-module.html">IDAscope.idascope.core.structures.Segment</a></strong>    </li>
+    </ul>
+    </li>
+    </ul>
+    </li>
+    <li> <strong class="uidlink"><a href="IDAscope.idascope.data-module.html">IDAscope.idascope.data</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="IDAscope.idascope.widgets-module.html">IDAscope.idascope.widgets</a></strong>
+    <ul>
+    <li> <strong class="uidlink"><a href="IDAscope.idascope.widgets.BoundsEditor-module.html">IDAscope.idascope.widgets.BoundsEditor</a></strong>: <em class="summary">This software is OSI Certified Open Source Software.</em>    </li>
+    <li> <strong class="uidlink"><a href="IDAscope.idascope.widgets.CryptoIdentificationWidget-module.html">IDAscope.idascope.widgets.CryptoIdentificationWidget</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="IDAscope.idascope.widgets.FunctionInspectionWidget-module.html">IDAscope.idascope.widgets.FunctionInspectionWidget</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="IDAscope.idascope.widgets.NumberQTableWidgetItem-module.html">IDAscope.idascope.widgets.NumberQTableWidgetItem</a></strong>    </li>
+    <li> <strong class="uidlink"><a href="IDAscope.idascope.widgets.RangeSlider-module.html">IDAscope.idascope.widgets.RangeSlider</a></strong>: <em class="summary">This software is OSI Certified Open Source Software.</em>    </li>
+    <li> <strong class="uidlink"><a href="IDAscope.idascope.widgets.WinApiWidget-module.html">IDAscope.idascope.widgets.WinApiWidget</a></strong>    </li>
+    </ul>
+    </li>
+    </ul>
+    </li>
+    <li> <strong class="uidlink"><a href="IDAscope.recursive_pylint-module.html">IDAscope.recursive_pylint</a></strong>: <em class="summary">this module runs pylint on all python scripts found in a directory 
+        tree</em>    </li>
+  </ul></td></tr>
+</table>
+
+<br />
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="None">None</code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Mon Sep 17 13:18:33 2012
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>

File documentation/epydoc/IDAscope-pysrc.html

+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>IDAscope</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        Package&nbsp;IDAscope
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="IDAscope-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="IDAscope-module.html">Package IDAscope</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">1</tt>  <tt class="py-line"> </tt>
+<a name="L2"></a><tt class="py-lineno">2</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th bgcolor="#70b0f0" class="navbar-select"
+          >&nbsp;&nbsp;&nbsp;Home&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Mon Sep 17 13:18:34 2012
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>

File documentation/epydoc/IDAscope.IDAscope-module.html

+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>IDAscope.IDAscope</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="IDAscope-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="IDAscope-module.html">Package&nbsp;IDAscope</a> ::
+        Module&nbsp;IDAscope
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="IDAscope.IDAscope-module.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module IDAscope</h1><p class="nomargin-top"><span class="codelink"><a href="IDAscope.IDAscope-pysrc.html">source&nbsp;code</a></span></p>
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Classes</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Classes"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="IDAscope.IDAscope.IDAscopeForm-class.html" class="summary-name">IDAscopeForm</a><br />
+      This class contains the main window of IDAscope Setup of core modules
+      and widgets is performed in here.
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a href="IDAscope.IDAscope.IDAscopePlugin-class.html" class="summary-name">IDAscopePlugin</a><br />
+      Plugin version of IDAscope.
+    </td>
+  </tr>
+</table>
+<!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Functions</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Functions"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="PLUGIN_ENTRY"></a><span class="summary-sig-name">PLUGIN_ENTRY</span>()</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="IDAscope.IDAscope-pysrc.html#PLUGIN_ENTRY">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="main"></a><span class="summary-sig-name">main</span>()</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="IDAscope.IDAscope-pysrc.html#main">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Variables</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Variables"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="HOTKEYS"></a><span class="summary-name">HOTKEYS</span> = <code title="None">None</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="IDASCOPE"></a><span class="summary-name">IDASCOPE</span> = <code title="None">None</code>
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="NAME"></a><span class="summary-name">NAME</span> = <code title="&quot;simpliFiRE.IDAscope v1.0&quot;">&quot;simpliFiRE.IDAscope v1.0&quot;</code>
+    </td>
+  </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="IDAscope-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Mon Sep 17 13:18:33 2012
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>

File documentation/epydoc/IDAscope.IDAscope-pysrc.html

+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>IDAscope.IDAscope</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="IDAscope-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="IDAscope-module.html">Package&nbsp;IDAscope</a> ::
+        Module&nbsp;IDAscope
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="IDAscope.IDAscope-pysrc.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="IDAscope.IDAscope-module.html">Module IDAscope.IDAscope</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">  1</tt>  <tt class="py-line"><tt class="py-comment">#!/usr/bin/python</tt> </tt>
+<a name="L2"></a><tt class="py-lineno">  2</tt>  <tt class="py-line"><tt class="py-comment">########################################################################</tt> </tt>
+<a name="L3"></a><tt class="py-lineno">  3</tt>  <tt class="py-line"><tt class="py-comment"># Copyright (c) 2012</tt> </tt>
+<a name="L4"></a><tt class="py-lineno">  4</tt>  <tt class="py-line"><tt class="py-comment"># Daniel Plohmann &lt;daniel.plohmann&lt;at&gt;gmail&lt;dot&gt;com&gt;</tt> </tt>
+<a name="L5"></a><tt class="py-lineno">  5</tt>  <tt class="py-line"><tt class="py-comment"># Alexander Hanel &lt;alexander.hanel&lt;at&gt;gmail&lt;dot&gt;com&gt;</tt> </tt>
+<a name="L6"></a><tt class="py-lineno">  6</tt>  <tt class="py-line"><tt class="py-comment"># All rights reserved.</tt> </tt>
+<a name="L7"></a><tt class="py-lineno">  7</tt>  <tt class="py-line"><tt class="py-comment">########################################################################</tt> </tt>
+<a name="L8"></a><tt class="py-lineno">  8</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L9"></a><tt class="py-lineno">  9</tt>  <tt class="py-line"><tt class="py-comment">#  This file is part of IDAscope</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-comment">#  IDAscope is free software: you can redistribute it and/or modify it</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-comment">#  under the terms of the GNU General Public License as published by</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line"><tt class="py-comment">#  the Free Software Foundation, either version 3 of the License, or</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt class="py-comment">#  (at your option) any later version.</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-comment">#  This program is distributed in the hope that it will be useful, but</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"><tt class="py-comment">#  WITHOUT ANY WARRANTY; without even the implied warranty of</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt class="py-comment">#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line"><tt class="py-comment">#  General Public License for more details.</tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt class="py-comment">#  You should have received a copy of the GNU General Public License</tt> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"><tt class="py-comment">#  along with this program.  If not, see</tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line"><tt class="py-comment">#  &lt;http://www.gnu.org/licenses/&gt;.</tt> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"><tt class="py-comment">#</tt> </tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line"><tt class="py-comment">########################################################################</tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">time</tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line"> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">idaapi</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">idaapi</tt> <tt class="py-keyword">import</tt> <tt class="py-name">PluginForm</tt><tt class="py-op">,</tt> <tt class="py-name">plugin_t</tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">PySide</tt> <tt class="py-keyword">import</tt> <tt class="py-name">QtGui</tt> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">PySide</tt><tt class="py-op">.</tt><tt class="py-name">QtGui</tt> <tt class="py-keyword">import</tt> <tt class="py-name">QIcon</tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line"> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-0" class="py-name" targets="Package IDAscope.idascope=IDAscope.idascope-module.html"><a title="IDAscope.idascope" class="py-name" href="#" onclick="return doclink('link-0', 'idascope', 'link-0');">idascope</a></tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Package IDAscope.idascope.core=IDAscope.idascope.core-module.html"><a title="IDAscope.idascope.core" class="py-name" href="#" onclick="return doclink('link-1', 'core', 'link-1');">core</a></tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Package IDAscope.idascope.core.structures=IDAscope.idascope.core.structures-module.html"><a title="IDAscope.idascope.core.structures" class="py-name" href="#" onclick="return doclink('link-2', 'structures', 'link-2');">structures</a></tt><tt class="py-op">.</tt><tt id="link-3" class="py-name" targets="Module IDAscope.idascope.core.structures.IDAscopeConfiguration=IDAscope.idascope.core.structures.IDAscopeConfiguration-module.html,Class IDAscope.idascope.core.structures.IDAscopeConfiguration.IDAscopeConfiguration=IDAscope.idascope.core.structures.IDAscopeConfiguration.IDAscopeConfiguration-class.html"><a title="IDAscope.idascope.core.structures.IDAscopeConfiguration
+IDAscope.idascope.core.structures.IDAscopeConfiguration.IDAscopeConfiguration" class="py-name" href="#" onclick="return doclink('link-3', 'IDAscopeConfiguration', 'link-3');">IDAscopeConfiguration</a></tt> <tt class="py-keyword">import</tt> <tt id="link-4" class="py-name"><a title="IDAscope.idascope.core.structures.IDAscopeConfiguration
+IDAscope.idascope.core.structures.IDAscopeConfiguration.IDAscopeConfiguration" class="py-name" href="#" onclick="return doclink('link-4', 'IDAscopeConfiguration', 'link-3');">IDAscopeConfiguration</a></tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-5" class="py-name"><a title="IDAscope.idascope" class="py-name" href="#" onclick="return doclink('link-5', 'idascope', 'link-0');">idascope</a></tt><tt class="py-op">.</tt><tt id="link-6" class="py-name"><a title="IDAscope.idascope.core" class="py-name" href="#" onclick="return doclink('link-6', 'core', 'link-1');">core</a></tt><tt class="py-op">.</tt><tt id="link-7" class="py-name" targets="Module IDAscope.idascope.core.SemanticIdentifier=IDAscope.idascope.core.SemanticIdentifier-module.html,Class IDAscope.idascope.core.SemanticIdentifier.SemanticIdentifier=IDAscope.idascope.core.SemanticIdentifier.SemanticIdentifier-class.html"><a title="IDAscope.idascope.core.SemanticIdentifier
+IDAscope.idascope.core.SemanticIdentifier.SemanticIdentifier" class="py-name" href="#" onclick="return doclink('link-7', 'SemanticIdentifier', 'link-7');">SemanticIdentifier</a></tt> <tt class="py-keyword">import</tt> <tt id="link-8" class="py-name"><a title="IDAscope.idascope.core.SemanticIdentifier
+IDAscope.idascope.core.SemanticIdentifier.SemanticIdentifier" class="py-name" href="#" onclick="return doclink('link-8', 'SemanticIdentifier', 'link-7');">SemanticIdentifier</a></tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-9" class="py-name"><a title="IDAscope.idascope" class="py-name" href="#" onclick="return doclink('link-9', 'idascope', 'link-0');">idascope</a></tt><tt class="py-op">.</tt><tt id="link-10" class="py-name"><a title="IDAscope.idascope.core" class="py-name" href="#" onclick="return doclink('link-10', 'core', 'link-1');">core</a></tt><tt class="py-op">.</tt><tt id="link-11" class="py-name" targets="Module IDAscope.idascope.core.DocumentationHelper=IDAscope.idascope.core.DocumentationHelper-module.html,Class IDAscope.idascope.core.DocumentationHelper.DocumentationHelper=IDAscope.idascope.core.DocumentationHelper.DocumentationHelper-class.html"><a title="IDAscope.idascope.core.DocumentationHelper
+IDAscope.idascope.core.DocumentationHelper.DocumentationHelper" class="py-name" href="#" onclick="return doclink('link-11', 'DocumentationHelper', 'link-11');">DocumentationHelper</a></tt> <tt class="py-keyword">import</tt> <tt id="link-12" class="py-name"><a title="IDAscope.idascope.core.DocumentationHelper
+IDAscope.idascope.core.DocumentationHelper.DocumentationHelper" class="py-name" href="#" onclick="return doclink('link-12', 'DocumentationHelper', 'link-11');">DocumentationHelper</a></tt> </tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-13" class="py-name"><a title="IDAscope.idascope" class="py-name" href="#" onclick="return doclink('link-13', 'idascope', 'link-0');">idascope</a></tt><tt class="py-op">.</tt><tt id="link-14" class="py-name"><a title="IDAscope.idascope.core" class="py-name" href="#" onclick="return doclink('link-14', 'core', 'link-1');">core</a></tt><tt class="py-op">.</tt><tt id="link-15" class="py-name" targets="Module IDAscope.idascope.core.WinApiProvider=IDAscope.idascope.core.WinApiProvider-module.html,Class IDAscope.idascope.core.WinApiProvider.WinApiProvider=IDAscope.idascope.core.WinApiProvider.WinApiProvider-class.html"><a title="IDAscope.idascope.core.WinApiProvider
+IDAscope.idascope.core.WinApiProvider.WinApiProvider" class="py-name" href="#" onclick="return doclink('link-15', 'WinApiProvider', 'link-15');">WinApiProvider</a></tt> <tt class="py-keyword">import</tt> <tt id="link-16" class="py-name"><a title="IDAscope.idascope.core.WinApiProvider
+IDAscope.idascope.core.WinApiProvider.WinApiProvider" class="py-name" href="#" onclick="return doclink('link-16', 'WinApiProvider', 'link-15');">WinApiProvider</a></tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-17" class="py-name"><a title="IDAscope.idascope" class="py-name" href="#" onclick="return doclink('link-17', 'idascope', 'link-0');">idascope</a></tt><tt class="py-op">.</tt><tt id="link-18" class="py-name"><a title="IDAscope.idascope.core" class="py-name" href="#" onclick="return doclink('link-18', 'core', 'link-1');">core</a></tt><tt class="py-op">.</tt><tt id="link-19" class="py-name" targets="Module IDAscope.idascope.core.CryptoIdentifier=IDAscope.idascope.core.CryptoIdentifier-module.html,Class IDAscope.idascope.core.CryptoIdentifier.CryptoIdentifier=IDAscope.idascope.core.CryptoIdentifier.CryptoIdentifier-class.html"><a title="IDAscope.idascope.core.CryptoIdentifier
+IDAscope.idascope.core.CryptoIdentifier.CryptoIdentifier" class="py-name" href="#" onclick="return doclink('link-19', 'CryptoIdentifier', 'link-19');">CryptoIdentifier</a></tt> <tt class="py-keyword">import</tt> <tt id="link-20" class="py-name"><a title="IDAscope.idascope.core.CryptoIdentifier
+IDAscope.idascope.core.CryptoIdentifier.CryptoIdentifier" class="py-name" href="#" onclick="return doclink('link-20', 'CryptoIdentifier', 'link-19');">CryptoIdentifier</a></tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-21" class="py-name"><a title="IDAscope.idascope" class="py-name" href="#" onclick="return doclink('link-21', 'idascope', 'link-0');">idascope</a></tt><tt class="py-op">.</tt><tt id="link-22" class="py-name"><a title="IDAscope.idascope.core" class="py-name" href="#" onclick="return doclink('link-22', 'core', 'link-1');">core</a></tt><tt class="py-op">.</tt><tt id="link-23" class="py-name" targets="Module IDAscope.idascope.core.IdaProxy=IDAscope.idascope.core.IdaProxy-module.html,Class IDAscope.idascope.core.IdaProxy.IdaProxy=IDAscope.idascope.core.IdaProxy.IdaProxy-class.html"><a title="IDAscope.idascope.core.IdaProxy
+IDAscope.idascope.core.IdaProxy.IdaProxy" class="py-name" href="#" onclick="return doclink('link-23', 'IdaProxy', 'link-23');">IdaProxy</a></tt> <tt class="py-keyword">import</tt> <tt id="link-24" class="py-name"><a title="IDAscope.idascope.core.IdaProxy
+IDAscope.idascope.core.IdaProxy.IdaProxy" class="py-name" href="#" onclick="return doclink('link-24', 'IdaProxy', 'link-23');">IdaProxy</a></tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-25" class="py-name"><a title="IDAscope.idascope" class="py-name" href="#" onclick="return doclink('link-25', 'idascope', 'link-0');">idascope</a></tt><tt class="py-op">.</tt><tt id="link-26" class="py-name" targets="Package IDAscope.idascope.widgets=IDAscope.idascope.widgets-module.html"><a title="IDAscope.idascope.widgets" class="py-name" href="#" onclick="return doclink('link-26', 'widgets', 'link-26');">widgets</a></tt><tt class="py-op">.</tt><tt id="link-27" class="py-name" targets="Module IDAscope.idascope.widgets.FunctionInspectionWidget=IDAscope.idascope.widgets.FunctionInspectionWidget-module.html,Class IDAscope.idascope.widgets.FunctionInspectionWidget.FunctionInspectionWidget=IDAscope.idascope.widgets.FunctionInspectionWidget.FunctionInspectionWidget-class.html"><a title="IDAscope.idascope.widgets.FunctionInspectionWidget
+IDAscope.idascope.widgets.FunctionInspectionWidget.FunctionInspectionWidget" class="py-name" href="#" onclick="return doclink('link-27', 'FunctionInspectionWidget', 'link-27');">FunctionInspectionWidget</a></tt> <tt class="py-keyword">import</tt> <tt id="link-28" class="py-name"><a title="IDAscope.idascope.widgets.FunctionInspectionWidget
+IDAscope.idascope.widgets.FunctionInspectionWidget.FunctionInspectionWidget" class="py-name" href="#" onclick="return doclink('link-28', 'FunctionInspectionWidget', 'link-27');">FunctionInspectionWidget</a></tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-29" class="py-name"><a title="IDAscope.idascope" class="py-name" href="#" onclick="return doclink('link-29', 'idascope', 'link-0');">idascope</a></tt><tt class="py-op">.</tt><tt id="link-30" class="py-name"><a title="IDAscope.idascope.widgets" class="py-name" href="#" onclick="return doclink('link-30', 'widgets', 'link-26');">widgets</a></tt><tt class="py-op">.</tt><tt id="link-31" class="py-name" targets="Module IDAscope.idascope.widgets.WinApiWidget=IDAscope.idascope.widgets.WinApiWidget-module.html,Class IDAscope.idascope.widgets.WinApiWidget.WinApiWidget=IDAscope.idascope.widgets.WinApiWidget.WinApiWidget-class.html"><a title="IDAscope.idascope.widgets.WinApiWidget
+IDAscope.idascope.widgets.WinApiWidget.WinApiWidget" class="py-name" href="#" onclick="return doclink('link-31', 'WinApiWidget', 'link-31');">WinApiWidget</a></tt> <tt class="py-keyword">import</tt> <tt id="link-32" class="py-name"><a title="IDAscope.idascope.widgets.WinApiWidget
+IDAscope.idascope.widgets.WinApiWidget.WinApiWidget" class="py-name" href="#" onclick="return doclink('link-32', 'WinApiWidget', 'link-31');">WinApiWidget</a></tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-33" class="py-name"><a title="IDAscope.idascope" class="py-name" href="#" onclick="return doclink('link-33', 'idascope', 'link-0');">idascope</a></tt><tt class="py-op">.</tt><tt id="link-34" class="py-name"><a title="IDAscope.idascope.widgets" class="py-name" href="#" onclick="return doclink('link-34', 'widgets', 'link-26');">widgets</a></tt><tt class="py-op">.</tt><tt id="link-35" class="py-name" targets="Module IDAscope.idascope.widgets.CryptoIdentificationWidget=IDAscope.idascope.widgets.CryptoIdentificationWidget-module.html,Class IDAscope.idascope.widgets.CryptoIdentificationWidget.CryptoIdentificationWidget=IDAscope.idascope.widgets.CryptoIdentificationWidget.CryptoIdentificationWidget-class.html"><a title="IDAscope.idascope.widgets.CryptoIdentificationWidget
+IDAscope.idascope.widgets.CryptoIdentificationWidget.CryptoIdentificationWidget" class="py-name" href="#" onclick="return doclink('link-35', 'CryptoIdentificationWidget', 'link-35');">CryptoIdentificationWidget</a></tt> <tt class="py-keyword">import</tt> <tt id="link-36" class="py-name"><a title="IDAscope.idascope.widgets.CryptoIdentificationWidget
+IDAscope.idascope.widgets.CryptoIdentificationWidget.CryptoIdentificationWidget" class="py-name" href="#" onclick="return doclink('link-36', 'CryptoIdentificationWidget', 'link-35');">CryptoIdentificationWidget</a></tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line"> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line"><tt class="py-comment">################################################################################</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line"><tt class="py-comment"># Core of the IDAscope GUI.</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line"><tt class="py-comment">################################################################################</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line"> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line"><tt id="link-37" class="py-name" targets="Variable IDAscope.IDAscope.HOTKEYS=IDAscope.IDAscope-module.html#HOTKEYS"><a title="IDAscope.IDAscope.HOTKEYS" class="py-name" href="#" onclick="return doclink('link-37', 'HOTKEYS', 'link-37');">HOTKEYS</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line"><tt id="link-38" class="py-name" targets="Variable IDAscope.IDAscope.IDASCOPE=IDAscope.IDAscope-module.html#IDASCOPE"><a title="IDAscope.IDAscope.IDASCOPE" class="py-name" href="#" onclick="return doclink('link-38', 'IDASCOPE', 'link-38');">IDASCOPE</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line"><tt id="link-39" class="py-name" targets="Variable IDAscope.IDAscope.NAME=IDAscope.IDAscope-module.html#NAME"><a title="IDAscope.IDAscope.NAME" class="py-name" href="#" onclick="return doclink('link-39', 'NAME', 'link-39');">NAME</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"simpliFiRE.IDAscope v1.0"</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line"> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line"> </tt>
+<a name="IDAscopeForm"></a><div id="IDAscopeForm-def"><a name="L54"></a><tt class="py-lineno"> 54</tt> <a class="py-toggle" href="#" id="IDAscopeForm-toggle" onclick="return toggle('IDAscopeForm');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="IDAscope.IDAscope.IDAscopeForm-class.html">IDAscopeForm</a><tt class="py-op">(</tt><tt class="py-base-class">PluginForm</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IDAscopeForm-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="IDAscopeForm-expanded"><a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line"><tt class="py-docstring">    This class contains the main window of IDAscope</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line"><tt class="py-docstring">    Setup of core modules and widgets is performed in here.</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line"> </tt>
+<a name="IDAscopeForm.__init__"></a><div id="IDAscopeForm.__init__-def"><a name="L60"></a><tt class="py-lineno"> 60</tt> <a class="py-toggle" href="#" id="IDAscopeForm.__init__-toggle" onclick="return toggle('IDAscopeForm.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="IDAscope.IDAscope.IDAscopeForm-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IDAscopeForm.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IDAscopeForm.__init__-expanded"><a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line">        <tt class="py-name">super</tt><tt class="py-op">(</tt><tt id="link-40" class="py-name" targets="Class IDAscope.IDAscope.IDAscopeForm=IDAscope.IDAscope.IDAscopeForm-class.html"><a title="IDAscope.IDAscope.IDAscopeForm" class="py-name" href="#" onclick="return doclink('link-40', 'IDAscopeForm', 'link-40');">IDAscopeForm</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-41" class="py-name" targets="Method IDAscope.IDAscope.IDAscopeForm.__init__()=IDAscope.IDAscope.IDAscopeForm-class.html#__init__,Method IDAscope.idascope.core.AnnotationsProvider.AnnotationsProvider.__init__()=IDAscope.idascope.core.AnnotationsProvider.AnnotationsProvider-class.html#__init__,Method IDAscope.idascope.core.CryptoIdentifier.CryptoIdentifier.__init__()=IDAscope.idascope.core.CryptoIdentifier.CryptoIdentifier-class.html#__init__,Method IDAscope.idascope.core.DocumentationHelper.DocumentationHelper.__init__()=IDAscope.idascope.core.DocumentationHelper.DocumentationHelper-class.html#__init__,Method IDAscope.idascope.core.IdaProxy.IdaProxy.__init__()=IDAscope.idascope.core.IdaProxy.IdaProxy-class.html#__init__,Method IDAscope.idascope.core.PatternManager.PatternManager.__init__()=IDAscope.idascope.core.PatternManager.PatternManager-class.html#__init__,Method IDAscope.idascope.core.SemanticIdentifier.SemanticIdentifier.__init__()=IDAscope.idascope.core.SemanticIdentifier.SemanticIdentifier-class.html#__init__,Method IDAscope.idascope.core.WinApiProvider.WinApiProvider.__init__()=IDAscope.idascope.core.WinApiProvider.WinApiProvider-class.html#__init__,Method IDAscope.idascope.core.structures.AritlogBasicBlock.AritlogBasicBlock.__init__()=IDAscope.idascope.core.structures.AritlogBasicBlock.AritlogBasicBlock-class.html#__init__,Method IDAscope.idascope.core.structures.CallContext.CallContext.__init__()=IDAscope.idascope.core.structures.CallContext.CallContext-class.html#__init__,Method IDAscope.idascope.core.structures.CryptoSignatureHit.CryptoSignatureHit.__init__()=IDAscope.idascope.core.structures.CryptoSignatureHit.CryptoSignatureHit-class.html#__init__,Method IDAscope.idascope.core.structures.FunctionContext.FunctionContext.__init__()=IDAscope.idascope.core.structures.FunctionContext.FunctionContext-class.html#__init__,Method IDAscope.idascope.core.structures.IDAscopeConfiguration.IDAscopeConfiguration.__init__()=IDAscope.idascope.core.structures.IDAscopeConfiguration.IDAscopeConfiguration-class.html#__init__,Method IDAscope.idascope.core.structures.ParameterContext.ParameterContext.__init__()=IDAscope.idascope.core.structures.ParameterContext.ParameterContext-class.html#__init__,Method IDAscope.idascope.core.structures.Segment.Segment.__init__()=IDAscope.idascope.core.structures.Segment.Segment-class.html#__init__,Method IDAscope.idascope.widgets.BoundsEditor.BoundsEditor.__init__()=IDAscope.idascope.widgets.BoundsEditor.BoundsEditor-class.html#__init__,Method IDAscope.idascope.widgets.CryptoIdentificationWidget.CryptoIdentificationWidget.__init__()=IDAscope.idascope.widgets.CryptoIdentificationWidget.CryptoIdentificationWidget-class.html#__init__,Method IDAscope.idascope.widgets.FunctionInspectionWidget.FunctionInspectionWidget.__init__()=IDAscope.idascope.widgets.FunctionInspectionWidget.FunctionInspectionWidget-class.html#__init__,Method IDAscope.idascope.widgets.RangeSlider.RangeSlider.__init__()=IDAscope.idascope.widgets.RangeSlider.RangeSlider-class.html#__init__,Method IDAscope.idascope.widgets.WinApiWidget.WinApiWidget.__init__()=IDAscope.idascope.widgets.WinApiWidget.WinApiWidget-class.html#__init__"><a title="IDAscope.IDAscope.IDAscopeForm.__init__
+IDAscope.idascope.core.AnnotationsProvider.AnnotationsProvider.__init__
+IDAscope.idascope.core.CryptoIdentifier.CryptoIdentifier.__init__
+IDAscope.idascope.core.DocumentationHelper.DocumentationHelper.__init__
+IDAscope.idascope.core.IdaProxy.IdaProxy.__init__
+IDAscope.idascope.core.PatternManager.PatternManager.__init__
+IDAscope.idascope.core.SemanticIdentifier.SemanticIdentifier.__init__
+IDAscope.idascope.core.WinApiProvider.WinApiProvider.__init__
+IDAscope.idascope.core.structures.AritlogBasicBlock.AritlogBasicBlock.__init__
+IDAscope.idascope.core.structures.CallContext.CallContext.__init__
+IDAscope.idascope.core.structures.CryptoSignatureHit.CryptoSignatureHit.__init__
+IDAscope.idascope.core.structures.FunctionContext.FunctionContext.__init__
+IDAscope.idascope.core.structures.IDAscopeConfiguration.IDAscopeConfiguration.__init__
+IDAscope.idascope.core.structures.ParameterContext.ParameterContext.__init__
+IDAscope.idascope.core.structures.Segment.Segment.__init__
+IDAscope.idascope.widgets.BoundsEditor.BoundsEditor.__init__
+IDAscope.idascope.widgets.CryptoIdentificationWidget.CryptoIdentificationWidget.__init__
+IDAscope.idascope.widgets.FunctionInspectionWidget.FunctionInspectionWidget.__init__
+IDAscope.idascope.widgets.RangeSlider.RangeSlider.__init__
+IDAscope.idascope.widgets.WinApiWidget.WinApiWidget.__init__" class="py-name" href="#" onclick="return doclink('link-41', '__init__', 'link-41');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line">        <tt class="py-keyword">global</tt> <tt id="link-42" class="py-name"><a title="IDAscope.IDAscope.HOTKEYS" class="py-name" href="#" onclick="return doclink('link-42', 'HOTKEYS', 'link-37');">HOTKEYS</a></tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line">        <tt id="link-43" class="py-name"><a title="IDAscope.IDAscope.HOTKEYS" class="py-name" href="#" onclick="return doclink('link-43', 'HOTKEYS', 'link-37');">HOTKEYS</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">idascope_widgets</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">root_file_path</tt> <tt class="py-op">=</tt> \ </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line">                <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">realpath</tt><tt class="py-op">(</tt><tt class="py-name">__file__</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">realpath</tt><tt class="py-op">(</tt><tt class="py-name">__file__</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">rfind</tt><tt class="py-op">(</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">sep</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">config</tt> <tt class="py-op">=</tt> <tt id="link-44" class="py-name"><a title="IDAscope.idascope.core.structures.IDAscopeConfiguration
+IDAscope.idascope.core.structures.IDAscopeConfiguration.IDAscopeConfiguration" class="py-name" href="#" onclick="return doclink('link-44', 'IDAscopeConfiguration', 'link-3');">IDAscopeConfiguration</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">root_file_path</tt> <tt class="py-op">+</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">sep</tt> <tt class="py-op">+</tt> <tt class="py-string">"config.json"</tt><tt class="py-op">)</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">icon</tt> <tt class="py-op">=</tt> <tt class="py-name">QIcon</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">config</tt><tt class="py-op">.</tt><tt class="py-name">icon_file_path</tt> <tt class="py-op">+</tt> <tt class="py-string">"idascope.png"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line"> </tt>
+<a name="IDAscopeForm.setup_shared_modules"></a><div id="IDAscopeForm.setup_shared_modules-def"><a name="L70"></a><tt class="py-lineno"> 70</tt> <a class="py-toggle" href="#" id="IDAscopeForm.setup_shared_modules-toggle" onclick="return toggle('IDAscopeForm.setup_shared_modules');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="IDAscope.IDAscope.IDAscopeForm-class.html#setup_shared_modules">setup_shared_modules</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IDAscopeForm.setup_shared_modules-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IDAscopeForm.setup_shared_modules-expanded"><a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line"><tt class="py-docstring">        Setup shared IDAscope modules.</tt> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line">        <tt class="py-name">time_before</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">        <tt class="py-keyword">print</tt> <tt class="py-op">(</tt><tt class="py-string">"setting up shared modules..."</tt><tt class="py-op">)</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">semantic_identifier</tt> <tt class="py-op">=</tt> <tt id="link-45" class="py-name"><a title="IDAscope.idascope.core.SemanticIdentifier
+IDAscope.idascope.core.SemanticIdentifier.SemanticIdentifier" class="py-name" href="#" onclick="return doclink('link-45', 'SemanticIdentifier', 'link-7');">SemanticIdentifier</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">config</tt><tt class="py-op">.</tt><tt class="py-name">semantics_file</tt><tt class="py-op">)</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">semantic_identifier</tt><tt class="py-op">.</tt><tt id="link-46" class="py-name" targets="Method IDAscope.idascope.core.CryptoIdentifier.CryptoIdentifier.scan()=IDAscope.idascope.core.CryptoIdentifier.CryptoIdentifier-class.html#scan,Method IDAscope.idascope.core.SemanticIdentifier.SemanticIdentifier.scan()=IDAscope.idascope.core.SemanticIdentifier.SemanticIdentifier-class.html#scan"><a title="IDAscope.idascope.core.CryptoIdentifier.CryptoIdentifier.scan
+IDAscope.idascope.core.SemanticIdentifier.SemanticIdentifier.scan" class="py-name" href="#" onclick="return doclink('link-46', 'scan', 'link-46');">scan</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">documentation_helper</tt> <tt class="py-op">=</tt> <tt id="link-47" class="py-name"><a title="IDAscope.idascope.core.DocumentationHelper
+IDAscope.idascope.core.DocumentationHelper.DocumentationHelper" class="py-name" href="#" onclick="return doclink('link-47', 'DocumentationHelper', 'link-11');">DocumentationHelper</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">config</tt><tt class="py-op">.</tt><tt class="py-name">semantics_file</tt><tt class="py-op">)</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">winapi_provider</tt> <tt class="py-op">=</tt> <tt id="link-48" class="py-name"><a title="IDAscope.idascope.core.WinApiProvider
+IDAscope.idascope.core.WinApiProvider.WinApiProvider" class="py-name" href="#" onclick="return doclink('link-48', 'WinApiProvider', 'link-15');">WinApiProvider</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">config</tt><tt class="py-op">)</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ida_proxy</tt> <tt class="py-op">=</tt> <tt id="link-49" class="py-name"><a title="IDAscope.idascope.core.IdaProxy
+IDAscope.idascope.core.IdaProxy.IdaProxy" class="py-name" href="#" onclick="return doclink('link-49', 'IdaProxy', 'link-23');">IdaProxy</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">crypto_identifier</tt> <tt class="py-op">=</tt> <tt id="link-50" class="py-name"><a title="IDAscope.idascope.core.CryptoIdentifier
+IDAscope.idascope.core.CryptoIdentifier.CryptoIdentifier" class="py-name" href="#" onclick="return doclink('link-50', 'CryptoIdentifier', 'link-19');">CryptoIdentifier</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">        <tt class="py-keyword">print</tt> <tt class="py-op">(</tt><tt class="py-string">"this took %3.2f seconds."</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">-</tt> <tt class="py-name">time_before</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line"> </tt>
+<a name="IDAscopeForm.setup_widgets"></a><div id="IDAscopeForm.setup_widgets-def"><a name="L84"></a><tt class="py-lineno"> 84</tt> <a class="py-toggle" href="#" id="IDAscopeForm.setup_widgets-toggle" onclick="return toggle('IDAscopeForm.setup_widgets');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="IDAscope.IDAscope.IDAscopeForm-class.html#setup_widgets">setup_widgets</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IDAscopeForm.setup_widgets-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IDAscopeForm.setup_widgets-expanded"><a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line"><tt class="py-docstring">        Setup IDAscope widgets.</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">        <tt class="py-name">time_before</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line">        <tt class="py-keyword">print</tt> <tt class="py-op">(</tt><tt class="py-string">"setting up widgets..."</tt><tt class="py-op">)</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">idascope_widgets</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-51" class="py-name"><a title="IDAscope.idascope.widgets.FunctionInspectionWidget
+IDAscope.idascope.widgets.FunctionInspectionWidget.FunctionInspectionWidget" class="py-name" href="#" onclick="return doclink('link-51', 'FunctionInspectionWidget', 'link-27');">FunctionInspectionWidget</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">idascope_widgets</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-52" class="py-name"><a title="IDAscope.idascope.widgets.WinApiWidget
+IDAscope.idascope.widgets.WinApiWidget.WinApiWidget" class="py-name" href="#" onclick="return doclink('link-52', 'WinApiWidget', 'link-31');">WinApiWidget</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">idascope_widgets</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-53" class="py-name"><a title="IDAscope.idascope.widgets.CryptoIdentificationWidget
+IDAscope.idascope.widgets.CryptoIdentificationWidget.CryptoIdentificationWidget" class="py-name" href="#" onclick="return doclink('link-53', 'CryptoIdentificationWidget', 'link-35');">CryptoIdentificationWidget</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name" targets="Method IDAscope.IDAscope.IDAscopeForm.setup_IDAscope_form()=IDAscope.IDAscope.IDAscopeForm-class.html#setup_IDAscope_form"><a title="IDAscope.IDAscope.IDAscopeForm.setup_IDAscope_form" class="py-name" href="#" onclick="return doclink('link-54', 'setup_IDAscope_form', 'link-54');">setup_IDAscope_form</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">        <tt class="py-keyword">print</tt> <tt class="py-op">(</tt><tt class="py-string">"this took %3.2f seconds."</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">-</tt> <tt class="py-name">time_before</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line"> </tt>
+<a name="IDAscopeForm.setup_IDAscope_form"></a><div id="IDAscopeForm.setup_IDAscope_form-def"><a name="L96"></a><tt class="py-lineno"> 96</tt> <a class="py-toggle" href="#" id="IDAscopeForm.setup_IDAscope_form-toggle" onclick="return toggle('IDAscopeForm.setup_IDAscope_form');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="IDAscope.IDAscope.IDAscopeForm-class.html#setup_IDAscope_form">setup_IDAscope_form</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IDAscopeForm.setup_IDAscope_form-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IDAscopeForm.setup_IDAscope_form-expanded"><a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line"><tt class="py-docstring">        Orchestrate the already initialized widgets in tabs on the main window.</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tabs</tt> <tt class="py-op">=</tt> <tt class="py-name">QtGui</tt><tt class="py-op">.</tt><tt class="py-name">QTabWidget</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tabs</tt><tt class="py-op">.</tt><tt class="py-name">setTabsClosable</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">widget</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">idascope_widgets</tt><tt class="py-op">:</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tabs</tt><tt class="py-op">.</tt><tt class="py-name">addTab</tt><tt class="py-op">(</tt><tt class="py-name">widget</tt><tt class="py-op">,</tt> <tt class="py-name">widget</tt><tt class="py-op">.</tt><tt class="py-name">icon</tt><tt class="py-op">,</tt> <tt class="py-name">widget</tt><tt class="py-op">.</tt><tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">        <tt class="py-name">layout</tt> <tt class="py-op">=</tt> <tt class="py-name">QtGui</tt><tt class="py-op">.</tt><tt class="py-name">QVBoxLayout</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">        <tt class="py-name">layout</tt><tt class="py-op">.</tt><tt class="py-name">addWidget</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tabs</tt><tt class="py-op">)</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt><tt class="py-op">.</tt><tt class="py-name">setLayout</tt><tt class="py-op">(</tt><tt class="py-name">layout</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line"> </tt>
+<a name="IDAscopeForm.OnCreate"></a><div id="IDAscopeForm.OnCreate-def"><a name="L108"></a><tt class="py-lineno">108</tt> <a class="py-toggle" href="#" id="IDAscopeForm.OnCreate-toggle" onclick="return toggle('IDAscopeForm.OnCreate');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="IDAscope.IDAscope.IDAscopeForm-class.html#OnCreate">OnCreate</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">form</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IDAscopeForm.OnCreate-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IDAscopeForm.OnCreate-expanded"><a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line"><tt class="py-docstring">        When creating the form, setup the shared modules and widgets</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">FormToPySideWidget</tt><tt class="py-op">(</tt><tt class="py-name">form</tt><tt class="py-op">)</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">parent</tt><tt class="py-op">.</tt><tt class="py-name">setWindowIcon</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">icon</tt><tt class="py-op">)</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-55" class="py-name" targets="Method IDAscope.IDAscope.IDAscopeForm.setup_shared_modules()=IDAscope.IDAscope.IDAscopeForm-class.html#setup_shared_modules"><a title="IDAscope.IDAscope.IDAscopeForm.setup_shared_modules" class="py-name" href="#" onclick="return doclink('link-55', 'setup_shared_modules', 'link-55');">setup_shared_modules</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-56" class="py-name" targets="Method IDAscope.IDAscope.IDAscopeForm.setup_widgets()=IDAscope.IDAscope.IDAscopeForm-class.html#setup_widgets"><a title="IDAscope.IDAscope.IDAscopeForm.setup_widgets" class="py-name" href="#" onclick="return doclink('link-56', 'setup_widgets', 'link-56');">setup_widgets</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line"> </tt>
+<a name="IDAscopeForm.OnClose"></a><div id="IDAscopeForm.OnClose-def"><a name="L117"></a><tt class="py-lineno">117</tt> <a class="py-toggle" href="#" id="IDAscopeForm.OnClose-toggle" onclick="return toggle('IDAscopeForm.OnClose');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="IDAscope.IDAscope.IDAscopeForm-class.html#OnClose">OnClose</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">form</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IDAscopeForm.OnClose-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IDAscopeForm.OnClose-expanded"><a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line"><tt class="py-docstring">        Perform cleanup.</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line">        <tt class="py-keyword">global</tt> <tt id="link-57" class="py-name"><a title="IDAscope.IDAscope.IDASCOPE" class="py-name" href="#" onclick="return doclink('link-57', 'IDASCOPE', 'link-38');">IDASCOPE</a></tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt id="link-58" class="py-name"><a title="IDAscope.IDAscope.IDASCOPE" class="py-name" href="#" onclick="return doclink('link-58', 'IDASCOPE', 'link-38');">IDASCOPE</a></tt> </tt>
+</div><a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line"> </tt>
+<a name="IDAscopeForm.Show"></a><div id="IDAscopeForm.Show-def"><a name="L124"></a><tt class="py-lineno">124</tt> <a class="py-toggle" href="#" id="IDAscopeForm.Show-toggle" onclick="return toggle('IDAscopeForm.Show');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="IDAscope.IDAscope.IDAscopeForm-class.html#Show">Show</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IDAscopeForm.Show-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IDAscopeForm.Show-expanded"><a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">PluginForm</tt><tt class="py-op">.</tt><tt id="link-59" class="py-name" targets="Method IDAscope.IDAscope.IDAscopeForm.Show()=IDAscope.IDAscope.IDAscopeForm-class.html#Show"><a title="IDAscope.IDAscope.IDAscopeForm.Show" class="py-name" href="#" onclick="return doclink('link-59', 'Show', 'link-59');">Show</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line">            <tt id="link-60" class="py-name"><a title="IDAscope.IDAscope.NAME" class="py-name" href="#" onclick="return doclink('link-60', 'NAME', 'link-39');">NAME</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line">            <tt class="py-name">options</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-name">PluginForm</tt><tt class="py-op">.</tt><tt class="py-name">FORM_CLOSE_LATER</tt> <tt class="py-op">|</tt> <tt class="py-name">PluginForm</tt><tt class="py-op">.</tt><tt class="py-name">FORM_RESTORE</tt> <tt class="py-op">|</tt> <tt class="py-name">PluginForm</tt><tt class="py-op">.</tt><tt class="py-name">FORM_SAVE</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line"> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line"><tt class="py-comment">################################################################################</tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line"><tt class="py-comment"># functionality offered to IDAscope's widgets</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line"><tt class="py-comment">################################################################################</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line"> </tt>
+<a name="IDAscopeForm.setTabFocus"></a><div id="IDAscopeForm.setTabFocus-def"><a name="L133"></a><tt class="py-lineno">133</tt> <a class="py-toggle" href="#" id="IDAscopeForm.setTabFocus-toggle" onclick="return toggle('IDAscopeForm.setTabFocus');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="IDAscope.IDAscope.IDAscopeForm-class.html#setTabFocus">setTabFocus</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">widget_name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IDAscopeForm.setTabFocus-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IDAscopeForm.setTabFocus-expanded"><a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line"><tt class="py-docstring">        Can be used by IDAscope widgets to set focus to a widget, identified by name.</tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line"><tt class="py-docstring">        @param widget_name: A widget name</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line"><tt class="py-docstring">        @type widget_name: str</tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">widget</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">idascope_widgets</tt><tt class="py-op">:</tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">widget</tt><tt class="py-op">.</tt><tt class="py-name">name</tt> <tt class="py-op">==</tt> <tt class="py-name">widget_name</tt><tt class="py-op">:</tt> </tt>
+<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line">                <tt class="py-name">tab_index</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tabs</tt><tt class="py-op">.</tt><tt class="py-name">indexOf</tt><tt class="py-op">(</tt><tt class="py-name">widget</tt><tt class="py-op">)</tt> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tabs</tt><tt class="py-op">.</tt><tt class="py-name">setCurrentIndex</tt><tt class="py-op">(</tt><tt class="py-name">tab_index</tt><tt class="py-op">)</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> </tt>
+</div><a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line"> </tt>
+<a name="IDAscopeForm.register_hotkey"></a><div id="IDAscopeForm.register_hotkey-def"><a name="L145"></a><tt class="py-lineno">145</tt> <a class="py-toggle" href="#" id="IDAscopeForm.register_hotkey-toggle" onclick="return toggle('IDAscopeForm.register_hotkey');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="IDAscope.IDAscope.IDAscopeForm-class.html#register_hotkey">register_hotkey</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">shortcut</tt><tt class="py-op">,</tt> <tt class="py-param">py_function_pointer</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IDAscopeForm.register_hotkey-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IDAscopeForm.register_hotkey-expanded"><a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line">        <tt class="py-docstring">"""</tt> </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line"><tt class="py-docstring">        Can be used by IDAscope widgets to register hotkeys.</tt> </tt>
+<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line"><tt class="py-docstring">        Uses a global list HOTKEYS of function pointers that link to the desired functionality.</tt> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line"><tt class="py-docstring">        Right now, linked functions cannot take parameters and should scrape all information they need by themselves.</tt> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line"><tt class="py-docstring">        @param shortcut: A string describing a shortcut, e.g. "ctrl+F3"</tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line"><tt class="py-docstring">        @type shortcut: str</tt> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line"><tt class="py-docstring">        @param py_function_pointer: a python function that shall be called when the shortcut is triggered.</tt> </tt>
+<a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line"><tt class="py-docstring">        @type py_function_pointer: a pointer to a python function</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line">        <tt class="py-keyword">global</tt> <tt id="link-61" class="py-name"><a title="IDAscope.IDAscope.HOTKEYS" class="py-name" href="#" onclick="return doclink('link-61', 'HOTKEYS', 'link-37');">HOTKEYS</a></tt> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line">        <tt class="py-name">hotkey_index</tt> <tt class="py-op">=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-62" class="py-name"><a title="IDAscope.IDAscope.HOTKEYS" class="py-name" href="#" onclick="return doclink('link-62', 'HOTKEYS', 'link-37');">HOTKEYS</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line">        <tt class="py-name">hotkey_name</tt> <tt class="py-op">=</tt> <tt class="py-string">"idascope_HOTKEY_%d"</tt> <tt class="py-op">%</tt> <tt class="py-name">hotkey_index</tt> </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line">        <tt id="link-63" class="py-name"><a title="IDAscope.IDAscope.HOTKEYS" class="py-name" href="#" onclick="return doclink('link-63', 'HOTKEYS', 'link-37');">HOTKEYS</a></tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">py_function_pointer</tt><tt class="py-op">)</tt> </tt>
+<a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ida_proxy</tt><tt class="py-op">.</tt><tt id="link-64" class="py-name" targets="Method IDAscope.idascope.core.IdaProxy.IdaProxy.CompileLine()=IDAscope.idascope.core.IdaProxy.IdaProxy-class.html#CompileLine"><a title="IDAscope.idascope.core.IdaProxy.IdaProxy.CompileLine" class="py-name" href="#" onclick="return doclink('link-64', 'CompileLine', 'link-64');">CompileLine</a></tt><tt class="py-op">(</tt><tt class="py-string">'static %s() { RunPythonStatement("HOTKEYS[%d]()"); }'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">hotkey_name</tt><tt class="py-op">,</tt> <tt class="py-name">hotkey_index</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">ida_proxy</tt><tt class="py-op">.</tt><tt id="link-65" class="py-name" targets="Method IDAscope.idascope.core.IdaProxy.IdaProxy.AddHotkey()=IDAscope.idascope.core.IdaProxy.IdaProxy-class.html#AddHotkey"><a title="IDAscope.idascope.core.IdaProxy.IdaProxy.AddHotkey" class="py-name" href="#" onclick="return doclink('link-65', 'AddHotkey', 'link-65');">AddHotkey</a></tt><tt class="py-op">(</tt><tt class="py-name">shortcut</tt><tt class="py-op">,</tt> <tt class="py-name">hotkey_name</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line"> </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line"><tt class="py-comment">################################################################################</tt> </tt>
+<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line"><tt class="py-comment"># Usage as plugin</tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line"><tt class="py-comment">################################################################################</tt> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line"> </tt>
+<a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line"> </tt>
+<a name="IDAscopePlugin"></a><div id="IDAscopePlugin-def"><a name="L167"></a><tt class="py-lineno">167</tt> <a class="py-toggle" href="#" id="IDAscopePlugin-toggle" onclick="return toggle('IDAscopePlugin');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="IDAscope.IDAscope.IDAscopePlugin-class.html">IDAscopePlugin</a><tt class="py-op">(</tt><tt class="py-base-class">plugin_t</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IDAscopePlugin-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="IDAscopePlugin-expanded"><a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line"><tt class="py-docstring">    Plugin version of IDAscope. Use this to deploy IDAscope via IDA plugins folder.</tt> </tt>
+<a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line">    <tt id="link-66" class="py-name" targets="Variable IDAscope.IDAscope.IDAscopePlugin.flags=IDAscope.IDAscope.IDAscopePlugin-class.html#flags"><a title="IDAscope.IDAscope.IDAscopePlugin.flags" class="py-name" href="#" onclick="return doclink('link-66', 'flags', 'link-66');">flags</a></tt> <tt class="py-op">=</tt> <tt class="py-name">idaapi</tt><tt class="py-op">.</tt><tt class="py-name">PLUGIN_UNL</tt> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line">    <tt id="link-67" class="py-name" targets="Variable IDAscope.IDAscope.IDAscopePlugin.comment=IDAscope.IDAscope.IDAscopePlugin-class.html#comment"><a title="IDAscope.IDAscope.IDAscopePlugin.comment" class="py-name" href="#" onclick="return doclink('link-67', 'comment', 'link-67');">comment</a></tt> <tt class="py-op">=</tt> <tt id="link-68" class="py-name"><a title="IDAscope.IDAscope.NAME" class="py-name" href="#" onclick="return doclink('link-68', 'NAME', 'link-39');">NAME</a></tt> </tt>
+<a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line">    <tt id="link-69" class="py-name" targets="Variable IDAscope.IDAscope.IDAscopePlugin.help=IDAscope.IDAscope.IDAscopePlugin-class.html#help"><a title="IDAscope.IDAscope.IDAscopePlugin.help" class="py-name" href="#" onclick="return doclink('link-69', 'help', 'link-69');">help</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"A plugin to help to identify the relevant parts"</tt> </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line">    <tt id="link-70" class="py-name" targets="Variable IDAscope.IDAscope.IDAscopePlugin.wanted_name=IDAscope.IDAscope.IDAscopePlugin-class.html#wanted_name"><a title="IDAscope.IDAscope.IDAscopePlugin.wanted_name" class="py-name" href="#" onclick="return doclink('link-70', 'wanted_name', 'link-70');">wanted_name</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"IDAscope"</tt> </tt>
+<a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line">    <tt id="link-71" class="py-name" targets="Variable IDAscope.IDAscope.IDAscopePlugin.wanted_hotkey=IDAscope.IDAscope.IDAscopePlugin-class.html#wanted_hotkey"><a title="IDAscope.IDAscope.IDAscopePlugin.wanted_hotkey" class="py-name" href="#" onclick="return doclink('link-71', 'wanted_hotkey', 'link-71');">wanted_hotkey</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"Ctrl-F4"</tt> </tt>
+<a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line"> </tt>
+<a name="IDAscopePlugin.init"></a><div id="IDAscopePlugin.init-def"><a name="L177"></a><tt class="py-lineno">177</tt> <a class="py-toggle" href="#" id="IDAscopePlugin.init-toggle" onclick="return toggle('IDAscopePlugin.init');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="IDAscope.IDAscope.IDAscopePlugin-class.html#init">init</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IDAscopePlugin.init-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IDAscopePlugin.init-expanded"><a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line">        <tt class="py-comment"># Some initialization</tt> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">icon_id</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L180"></a><tt class="py-lineno">180</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">idaapi</tt><tt class="py-op">.</tt><tt class="py-name">PLUGIN_OK</tt> </tt>
+</div><a name="L181"></a><tt class="py-lineno">181</tt>  <tt class="py-line"> </tt>
+<a name="IDAscopePlugin.run"></a><div id="IDAscopePlugin.run-def"><a name="L182"></a><tt class="py-lineno">182</tt> <a class="py-toggle" href="#" id="IDAscopePlugin.run-toggle" onclick="return toggle('IDAscopePlugin.run');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="IDAscope.IDAscope.IDAscopePlugin-class.html#run">run</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">arg</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IDAscopePlugin.run-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IDAscopePlugin.run-expanded"><a name="L183"></a><tt class="py-lineno">183</tt>  <tt class="py-line">        <tt class="py-comment"># Create form</tt> </tt>
+<a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-72" class="py-name"><a title="IDAscope.IDAscope.IDAscopeForm" class="py-name" href="#" onclick="return doclink('link-72', 'IDAscopeForm', 'link-40');">IDAscopeForm</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L185"></a><tt class="py-lineno">185</tt>  <tt class="py-line"> </tt>
+<a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line">        <tt class="py-comment"># Show the form</tt> </tt>
+<a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line">        <tt class="py-name">exit_code</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-73" class="py-name"><a title="IDAscope.IDAscope.IDAscopeForm.Show" class="py-name" href="#" onclick="return doclink('link-73', 'Show', 'link-59');">Show</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">exit_code</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line">            <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">Free</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> </tt>
+<a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line"> </tt>
+<a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">Free</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> </tt>
+</div><a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line"> </tt>
+<a name="IDAscopePlugin.term"></a><div id="IDAscopePlugin.term-def"><a name="L195"></a><tt class="py-lineno">195</tt> <a class="py-toggle" href="#" id="IDAscopePlugin.term-toggle" onclick="return toggle('IDAscopePlugin.term');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="IDAscope.IDAscope.IDAscopePlugin-class.html#term">term</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="IDAscopePlugin.term-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="IDAscopePlugin.term-expanded"><a name="L196"></a><tt class="py-lineno">196</tt>  <tt class="py-line">        <tt class="py-keyword">pass</tt> </tt>
+</div></div><a name="L197"></a><tt class="py-lineno">197</tt>  <tt class="py-line"> </tt>
+<a name="L198"></a><tt class="py-lineno">198</tt>  <tt class="py-line"> </tt>
+<a name="PLUGIN_ENTRY"></a><div id="PLUGIN_ENTRY-def"><a name="L199"></a><tt class="py-lineno">199</tt> <a class="py-toggle" href="#" id="PLUGIN_ENTRY-toggle" onclick="return toggle('PLUGIN_ENTRY');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="IDAscope.IDAscope-module.html#PLUGIN_ENTRY">PLUGIN_ENTRY</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="PLUGIN_ENTRY-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="PLUGIN_ENTRY-expanded"><a name="L200"></a><tt class="py-lineno">200</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-74" class="py-name" targets="Class IDAscope.IDAscope.IDAscopePlugin=IDAscope.IDAscope.IDAscopePlugin-class.html"><a title="IDAscope.IDAscope.IDAscopePlugin" class="py-name" href="#" onclick="return doclink('link-74', 'IDAscopePlugin', 'link-74');">IDAscopePlugin</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L201"></a><tt class="py-lineno">201</tt>  <tt class="py-line"> </tt>
+<a name="L202"></a><tt class="py-lineno">202</tt>  <tt class="py-line"><tt class="py-comment">################################################################################</tt> </tt>
+<a name="L203"></a><tt class="py-lineno">203</tt>  <tt class="py-line"><tt class="py-comment"># Usage as script</tt> </tt>
+<a name="L204"></a><tt class="py-lineno">204</tt>  <tt class="py-line"><tt class="py-comment">################################################################################</tt> </tt>
+<a name="L205"></a><tt class="py-lineno">205</tt>  <tt class="py-line"> </tt>
+<a name="L206"></a><tt class="py-lineno">206</tt>  <tt class="py-line"> </tt>
+<a name="main"></a><div id="main-def"><a name="L207"></a><tt class="py-lineno">207</tt> <a class="py-toggle" href="#" id="main-toggle" onclick="return toggle('main');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="IDAscope.IDAscope-module.html#main">main</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="main-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="main-expanded"><a name="L208"></a><tt class="py-lineno">208</tt>  <tt class="py-line">    <tt class="py-keyword">global</tt> <tt id="link-75" class="py-name"><a title="IDAscope.IDAscope.IDASCOPE" class="py-name" href="#" onclick="return doclink('link-75', 'IDASCOPE', 'link-38');">IDASCOPE</a></tt> </tt>
+<a name="L209"></a><tt class="py-lineno">209</tt>  <tt class="py-line"> </tt>
+<a name="L210"></a><tt class="py-lineno">210</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L211"></a><tt class="py-lineno">211</tt>  <tt class="py-line">        <tt id="link-76" class="py-name"><a title="IDAscope.IDAscope.IDASCOPE" class="py-name" href="#" onclick="return doclink('link-76', 'IDASCOPE', 'link-38');">IDASCOPE</a></tt> </tt>
+<a name="L212"></a><tt class="py-lineno">212</tt>  <tt class="py-line">        <tt id="link-77" class="py-name"><a title="IDAscope.IDAscope.IDASCOPE" class="py-name" href="#" onclick="return doclink('link-77', 'IDASCOPE', 'link-38');">IDASCOPE</a></tt><tt class="py-op">.</tt><tt id="link-78" class="py-name" targets="Method IDAscope.IDAscope.IDAscopeForm.OnClose()=IDAscope.IDAscope.IDAscopeForm-class.html#OnClose"><a title="IDAscope.IDAscope.IDAscopeForm.OnClose" class="py-name" href="#" onclick="return doclink('link-78', 'OnClose', 'link-78');">OnClose</a></tt><tt class="py-op">(</tt><tt id="link-79" class="py-name"><a title="IDAscope.IDAscope.IDASCOPE" class="py-name" href="#" onclick="return doclink('link-79', 'IDASCOPE', 'link-38');">IDASCOPE</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L213"></a><tt class="py-lineno">213</tt>  <tt class="py-line">        <tt class="py-keyword">print</tt> <tt class="py-op">(</tt><tt class="py-string">"reloading IDAscope"</tt><tt class="py-op">)</tt> </tt>
+<a name="L214"></a><tt class="py-lineno">214</tt>  <tt class="py-line">        <tt id="link-80" class="py-name"><a title="IDAscope.IDAscope.IDASCOPE" class="py-name" href="#" onclick="return doclink('link-80', 'IDASCOPE', 'link-38');">IDASCOPE</a></tt> <tt class="py-op">=</tt> <tt id="link-81" class="py-name"><a title="IDAscope.IDAscope.IDAscopeForm" class="py-name" href="#" onclick="return doclink('link-81', 'IDAscopeForm', 'link-40');">IDAscopeForm</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L215"></a><tt class="py-lineno">215</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> </tt>
+<a name="L216"></a><tt class="py-lineno">216</tt>  <tt class="py-line">    <tt class="py-keyword">except</tt> <tt class="py-name">Exception</tt> <tt class="py-keyword">as</tt> <tt class="py-name">exc</tt><tt class="py-op">:</tt> </tt>
+<a name="L217"></a><tt class="py-lineno">217</tt>  <tt class="py-line">        <tt class="py-keyword">print</tt> <tt class="py-name">exc</tt> </tt>
+<a name="L218"></a><tt class="py-lineno">218</tt>  <tt class="py-line">        <tt id="link-82" class="py-name"><a title="IDAscope.IDAscope.IDASCOPE" class="py-name" href="#" onclick="return doclink('link-82', 'IDASCOPE', 'link-38');">IDASCOPE</a></tt> <tt class="py-op">=</tt> <tt id="link-83" class="py-name"><a title="IDAscope.IDAscope.IDAscopeForm" class="py-name" href="#" onclick="return doclink('link-83', 'IDAscopeForm', 'link-40');">IDAscopeForm</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L219"></a><tt class="py-lineno">219</tt>  <tt class="py-line"> </tt>
+<a name="L220"></a><tt class="py-lineno">220</tt>  <tt class="py-line">    <tt id="link-84" class="py-name"><a title="IDAscope.IDAscope.IDASCOPE" class="py-name" href="#" onclick="return doclink('link-84', 'IDASCOPE', 'link-38');">IDASCOPE</a></tt><tt class="py-op">.</tt><tt id="link-85" class="py-name"><a title="IDAscope.IDAscope.IDAscopeForm.Show" class="py-name" href="#" onclick="return doclink('link-85', 'Show', 'link-59');">Show</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L221"></a><tt class="py-lineno">221</tt>  <tt class="py-line"> </tt>
+<a name="L222"></a><tt class="py-lineno">222</tt>  <tt class="py-line"> </tt>
+<a name="L223"></a><tt class="py-lineno">223</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt class="py-name">__name__</tt> <tt class="py-op">==</tt> <tt class="py-string">"__main__"</tt><tt class="py-op">:</tt> </tt>
+<a name="L224"></a><tt class="py-lineno">224</tt>  <tt class="py-line">    <tt id="link-86" class="py-name" targets="Function IDAscope.IDAscope.main()=IDAscope.IDAscope-module.html#main"><a title="IDAscope.IDAscope.main" class="py-name" href="#" onclick="return doclink('link-86', 'main', 'link-86');">main</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L225"></a><tt class="py-lineno">225</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="IDAscope-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+  <tr>
+    <td align="left" class="footer">
+    Generated by Epydoc 3.0.1 on Mon Sep 17 13:18:34 2012
+    </td>
+    <td align="right" class="footer">
+      <a target="mainFrame" href="http://epydoc.sourceforge.net"
+        >http://epydoc.sourceforge.net</a>
+    </td>
+  </tr>
+</table>
+
+<script type="text/javascript">
+  <!--
+  // Private objects are initially displayed (because if
+  // javascript is turned off then we want them to be
+  // visible); but by default, we want to hide them.  So hide
+  // them unless we have a cookie that says to show them.
+  checkCookie();
+  // -->
+</script>
+</body>
+</html>

File documentation/epydoc/IDAscope.IDAscope.IDAscopeForm-class.html

+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+          "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <title>IDAscope.IDAscope.IDAscopeForm</title>
+  <link rel="stylesheet" href="epydoc.css" type="text/css" />
+  <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+      alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+       bgcolor="#a0c0ff" cellspacing="0">
+  <tr valign="middle">
+  <!-- Home link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="IDAscope-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Tree link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Index link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>
+
+  <!-- Help link -->
+      <th>&nbsp;&nbsp;&nbsp;<a
+        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>
+
+      <th class="navbar" width="100%"></th>
+  </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+  <tr valign="top">
+    <td width="100%">
+      <span class="breadcrumbs">
+        <a href="IDAscope-module.html">Package&nbsp;IDAscope</a> ::
+        <a href="IDAscope.IDAscope-module.html">Module&nbsp;IDAscope</a> ::
+        Class&nbsp;IDAscopeForm
+      </span>
+    </td>
+    <td>
+      <table cellpadding="0" cellspacing="0">
+        <!-- hide/show private -->
+        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
+        <tr><td align="right"><span class="options"
+            >[<a href="frames.html" target="_top">frames</a
+            >]&nbsp;|&nbsp;<a href="IDAscope.IDAscope.IDAscopeForm-class.html"
+            target="_top">no&nbsp;frames</a>]</span></td></tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class IDAscopeForm</h1><p class="nomargin-top"><span class="codelink"><a href="IDAscope.IDAscope-pysrc.html#IDAscopeForm">source&nbsp;code</a></span></p>
+<pre class="base-tree">
+idaapi.PluginForm --+
+                    |
+                   <strong class="uidshort">IDAscopeForm</strong>
+</pre>
+
+<hr />
+<p>This class contains the main window of IDAscope Setup of core modules 
+  and widgets is performed in here.</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Instance Methods</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-InstanceMethods"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="__init__"></a><span class="summary-sig-name">__init__</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="IDAscope.IDAscope-pysrc.html#IDAscopeForm.__init__">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="setup_shared_modules"></a><span class="summary-sig-name">setup_shared_modules</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      Setup shared IDAscope modules.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="IDAscope.IDAscope-pysrc.html#IDAscopeForm.setup_shared_modules">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="setup_widgets"></a><span class="summary-sig-name">setup_widgets</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      Setup IDAscope widgets.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="IDAscope.IDAscope-pysrc.html#IDAscopeForm.setup_widgets">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="setup_IDAscope_form"></a><span class="summary-sig-name">setup_IDAscope_form</span>(<span class="summary-sig-arg">self</span>)</span><br />
+      Orchestrate the already initialized widgets in tabs on the main 
+      window.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="IDAscope.IDAscope-pysrc.html#IDAscopeForm.setup_IDAscope_form">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="OnCreate"></a><span class="summary-sig-name">OnCreate</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">form</span>)</span><br />
+      When creating the form, setup the shared modules and widgets</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="IDAscope.IDAscope-pysrc.html#IDAscopeForm.OnCreate">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="OnClose"></a><span class="summary-sig-name">OnClose</span>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">form</span>)</span><br />
+      Perform cleanup.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="IDAscope.IDAscope-pysrc.html#IDAscopeForm.OnClose">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="Show"></a><span class="summary-sig-name">Show</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="IDAscope.IDAscope-pysrc.html#IDAscopeForm.Show">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="IDAscope.IDAscope.IDAscopeForm-class.html#setTabFocus" class="summary-sig-name">setTabFocus</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">widget_name</span>)</span><br />
+      Can be used by IDAscope widgets to set focus to a widget, identified 
+      by name.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="IDAscope.IDAscope-pysrc.html#IDAscopeForm.setTabFocus">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="IDAscope.IDAscope.IDAscopeForm-class.html#register_hotkey" class="summary-sig-name">register_hotkey</a>(<span class="summary-sig-arg">self</span>,
+        <span class="summary-sig-arg">shortcut</span>,
+        <span class="summary-sig-arg">py_function_pointer</span>)</span><br />
+      Can be used by IDAscope widgets to register hotkeys.</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="IDAscope.IDAscope-pysrc.html#IDAscopeForm.register_hotkey">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>