Better CodeEditor for Ida Pro.
Python
Permalink
Failed to load latest commit information.
6.8/plugins version 5 PyQt5 added and files :) Dec 6, 2016
6.95/plugins fixing exceptions in profiler! Dec 11, 2016
LICENSE.md Create LICENSE.md Nov 12, 2015
README.MD version 5 PyQt5 added Dec 6, 2016

README.MD

Ida Pro python Editor Python version Python version PyQ5t PyQ5t

what it Does: I always hated the Old Run script command, so i set up making my own editor for ida pro. Just like the ida one but much nicer and better Python language. Run Scripts files and apps within ida.

prerequisites

ida pro or ida pro demo

PyQt4/or PyQt5 depends on ida pro version.

Pyqt4 installer

Pyqt4

Pyqt5 installer

Pyqt5

build yourself

https://github.com/techbliss/Ida_Pro_Ultimate_Qt_Build_Guide

if you need help with this. Contact me here Techbliss

Running other Qt apps within the editor

you have to remember to remove usually in bottom of Qt file

app = QtGui.QApplication(sys.argv)

and

sys.exit(app.exec_())

Install

Download plugin. extract to Ida Pro plugins folder.So its idafolder\plugins\codeeditor or it wont work

Tip! Use hit hotkey Alt+E twize to load the editor.

Changelog v2

Clean up code
Zoom -/+
Font box
Getting redy for debugger feature

Changelog v3

APi working
better path recognition
apit on/off toggle
run full python programs.

Changelog v4

Added font box Getting.
ready for debugger(added breakpoint boxes in editor).

Changelog v5

Pyqt5 version >6.8 added

Hotkeys

 ###################################################
 #              Author Storm Shadow                # 
 #                   Hotkeys                       # 
 #         NewFile:            Ctrl+N              #
 #         OpenFile:           Ctrl+O              #
 #         SaveFile:           Ctrl+S              #
 #         RunScript:          Ctrl+E              #
 #         Undo:               Ctrl+Z              #
 #         Redo:               Ctrl+Y              #
 #         SelectALL:          Ctrl+A              #
 #         Paste:              Ctrl+V              #
 #         Font:               Ctrl+F              #
 #         ResetFolding:       Ctrl+R              #
 #         CircleFolding:      Ctrl+C              #
 #         PlainFolding:       Ctrl+P              #
 #         HEX-ray Home:       Ctrl+W              #
 #         Ida Pro Python SDK  Ctrl+I              #
 #         IDAPROPythonGit:    Ctrl+G              #
 #         Author:             Ctrl+B              #
 #         Enable Reg:         Alt+E               #
 #         Disable Reg:        Alt+D               #
 #         Zoom in             Ctrl+Shift+ +       #
 #         Zoom Out            Ctrl+Shift+ -       #
 #         Profile Code        Ctrl+Shift+ E       #
 ###################################################
 #              IDA PRO python Editor              #
 ###################################################

d

autocomplete

ida

profile code for speed issues

    177 function calls in 0.038 seconds

   Ordered by: standard name

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.000    0.000    0.000    0.000 <string>:330(retranslateUi)
        1    0.012    0.012    0.038    0.038 <string>:4(<module>)
        1    0.000    0.000    0.000    0.000 <string>:458(MyWindow)
        9    0.000    0.000    0.000    0.000 <string>:80(_fromUtf8)
        2    0.000    0.000    0.000    0.000 <string>:91(_translate)
        1    0.000    0.000    0.000    0.000 <string>:94(Ui_MainWindow)
        1    0.005    0.005    0.013    0.013 <string>:96(setupUi)
        2    0.000    0.000    0.000    0.000 {built-in method SendScintilla}
       19    0.000    0.000    0.000    0.000 {built-in method addAction}
        1    0.000    0.000    0.000    0.000 {built-in method addPixmap}
       19    0.000    0.000    0.000    0.000 {built-in method addSeparator}
        1    0.000    0.000    0.000    0.000 {built-in method addToolBar}
        1    0.000    0.000    0.000    0.000 {built-in method addWidget}
        1    0.000    0.000    0.000    0.000 {built-in method exec_}
        3    0.006    0.002    0.006    0.002 {built-in method load}
        1    0.000    0.000    0.000    0.000 {built-in method markerDefine}
        1    0.000    0.000    0.000    0.000 {built-in method prepare}
        2    0.000    0.000    0.000    0.000 {built-in method resize}
        1    0.000    0.000    0.000    0.000 {built-in method setAutoCompletionSource}
        3    0.000    0.000    0.000    0.000 {built-in method setAutoCompletionThreshold}
        2    0.000    0.000    0.000    0.000 {built-in method setAutoFillBackground}
        1    0.000    0.000    0.000    0.000 {built-in method setAutoIndent}
        1    0.000    0.000    0.000    0.000 {built-in method setBraceMatching}
        1    0.000    0.000    0.000    0.000 {built-in method setCentralWidget}
        1    0.000    0.000    0.000    0.000 {built-in method setContentsMargins}
        1    0.000    0.000    0.000    0.000 {built-in method setDefaultFont}
        1    0.000    0.000    0.000    0.000 {built-in method setEolFill}
        1    0.000    0.000    0.000    0.000 {built-in method setFamily}
        1    0.000    0.000    0.000    0.000 {built-in method setFixedPitch}
        1    0.000    0.000    0.000    0.000 {built-in method setFont}
        1    0.000    0.000    0.000    0.000 {built-in method setFrameShape}
        1    0.000    0.000    0.000    0.000 {built-in method setIconSize}
        1    0.000    0.000    0.000    0.000 {built-in method setLexer}
        1    0.000    0.000    0.000    0.000 {built-in method setMarginSensitivity}
        1    0.000    0.000    0.000    0.000 {built-in method setMarginWidth}
        1    0.000    0.000    0.000    0.000 {built-in method setMarginsFont}
        1    0.000    0.000    0.000    0.000 {built-in method setMarkerBackgroundColor}
        5    0.000    0.000    0.000    0.000 {built-in method setObjectName}
        1    0.000    0.000    0.000    0.000 {built-in method setPointSize}
       19    0.000    0.000    0.000    0.000 {built-in method setShortcut}
        1    0.000    0.000    0.000    0.000 {built-in method setSpacing}
       19    0.000    0.000    0.000    0.000 {built-in method setStatusTip}
        1    0.000    0.000    0.000    0.000 {built-in method setStyleSheet}
        1    0.000    0.000    0.000    0.000 {built-in method setTabWidth}
        1    0.000    0.000    0.000    0.000 {built-in method setToolButtonStyle}
        1    0.000    0.000    0.000    0.000 {built-in method setToolTip}
        1    0.000    0.000    0.000    0.000 {built-in method setWhatsThis}
        1    0.000    0.000    0.000    0.000 {built-in method setWindowIcon}
        2    0.000    0.000    0.000    0.000 {built-in method setWindowTitle}
        1    0.013    0.013    0.013    0.013 {built-in method show}
        1    0.000    0.000    0.000    0.000 {built-in method width}
        1    0.001    0.001    0.001    0.001 {connectSlotsByName}
        2    0.000    0.000    0.000    0.000 {hasattr}
        1    0.000    0.000    0.000    0.000 {instance}
       20    0.000    0.000    0.000    0.000 {method 'connect' of 'PyQt5.QtCore.pyqtBoundSignal' objects}
        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
        2    0.000    0.000    0.000    0.000 {method 'insert' of 'list' objects}
        2    0.000    0.000    0.000    0.000 {nt.getcwd}
        2    0.000    0.000    0.000    0.000 {setAttribute}
        2    0.000    0.000    0.000    0.000 {translate}```