Release IDA PRO Python Editor by Storm Shadow

Storm Shadow

Administrator
Staff member
Developer
Ida Pro Expert
Elite Cracker
Ida Pro python Editor v1
what it Does:
Just like the ida one but much nicer and better
Python language.
Run Scripts within ida.
todo
python auto completion
I always hated the Old Run script command, so i set up making my own editor for ida pro.
I had to rebuild PyQt4 for ida, so it had all the stuff i needed.
http://www.techbliss.org/threads/py...-total-package-installer-by-storm-shadow.768/

Download plugin.
extarct to Ida Pro plugins folder.
use hotkey Alt+E and find it under File menu.




https://github.com/techbliss/Python_editor
 
Last edited:

Storm Shadow

Administrator
Staff member
Developer
Ida Pro Expert
Elite Cracker
v11.1


changelog

removed darkness from skin.
Added Api auto code completion to the Code editor. For now apparently it to much info for ida to handle. Must be a Bug from hex-rays. So if you wanna test it load the editor strait from windows. added idaapi api added idc api
Tip! Use hit hotkey Alt+E twize to load the editor.
 

Storm Shadow

Administrator
Staff member
Developer
Ida Pro Expert
Elite Cracker
changelog 1.2

added python.api added autotab when code is right. api dont work from ida yet so use that outside of ida. its ida that are restricted from loading it.
 

Storm Shadow

Administrator
Staff member
Developer
Ida Pro Expert
Elite Cracker
Okay this version is damn nice.
Works much better and looks much nicer than the first build.



fgkpJ56.png


https://github.com/techbliss/Python_editor

NB! Works outside ida also.
 
Last edited:

Storm Shadow

Administrator
Staff member
Developer
Ida Pro Expert
Elite Cracker
Changelog
Fix globals
you can run files that depends on submodules.
So it can handkle full scale python now ;)
 

Storm Shadow

Administrator
Staff member
Developer
Ida Pro Expert
Elite Cracker
Version 3

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


###################################################
# 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 #
# 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 #
###################################################
# IDA PRO python Editor #
###################################################







https://github.com/techbliss/Python_editor
 

roocoon

New member
I have a conflict with IDA 6.8 which is easy to bypass but it can get cumbersome eventually.
It is a generic prolem and not just related to the Python Editor.

It has to do with HotKeys.
Python Editor has a conflict with one of its hotkeys either against IDA or some other plugin.
Similarly with other plugins.

When this happens in 6.8, it creates a second 'plugins' entry in its menu. One with whatever has gone OK and one with the plugins that couldn't get a 'run' hotkey. It looks weird.

You can't keep trying combinations since many of them are activated at different parts of the debugging process, so what do you do to find a free Hotkey, other than keeping some updated list of any hotkeys used by IDA and all its addons?
 

Storm Shadow

Administrator
Staff member
Developer
Ida Pro Expert
Elite Cracker
Have you tried shortkey menu in Ida.
I

You can change All hotkeys.

only encounted the ALT E. But havent seen the hotkeys within the editor beeing affected.
 

roocoon

New member
Alt+E is the one I found too. Plus 2-3 more for other plugins. Scylla, idaskins, idasploiter.
I don't remember all they conflicted with but Kam1n0 was one of them.

What shortkey menu you refer to?
 

Storm Shadow

Administrator
Staff member
Developer
Ida Pro Expert
Elite Cracker
under menu>>>> shortcuts.
you have to load a file first, so plugins are loaded. then change shortcuts.
if i remember correct collision shortcuts will be marked in red.
 

Storm Shadow

Administrator
Staff member
Developer
Ida Pro Expert
Elite Cracker
Added

# Zoom in Ctrl+Shift+ + #
# Zoom Out Ctrl+Shift+ - #
# Profile Code Ctrl+Shift+ E #

profile code of the editor itself.

Code:
		173 function calls in 0.025 seconds
 
   Ordered by: standard name
 
   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
		1	0.000	0.000	0.000	0.000 <string>:282(retranslateUi)
		1	0.008	0.008	0.025	0.025 <string>:4(<module>)
		2	0.000	0.000	0.000	0.000 <string>:71(_translate)
		1	0.000	0.000	0.000	0.000 <string>:77(Ui_MainWindow)
		1	0.001	0.001	0.008	0.008 <string>:78(setupUi)
		1	0.000	0.000	0.000	0.000 idaapi.py:27414(idadir)
		4	0.000	0.000	0.003	0.001 init.py:30(write)
		1	0.000	0.000	0.000	0.000 {_idaapi.idadir}
		4	0.003	0.001	0.003	0.001 {_idaapi.msg}
		2	0.000	0.000	0.000	0.000 {built-in method SendScintilla}
	   18	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}
	   18	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.005	0.002	0.005	0.002 {built-in method load}
		1	0.000	0.000	0.000	0.000 {built-in method prepare}
		2	0.002	0.001	0.002	0.001 {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 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 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 setMargin}
		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}
	   18	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}
	   18	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.005	0.005	0.005	0.005 {built-in method show}
		1	0.000	0.000	0.000	0.000 {built-in method width}
		1	0.000	0.000	0.000	0.000 {connectSlotsByName}
		9	0.000	0.000	0.000	0.000 {fromUtf8}
		1	0.000	0.000	0.000	0.000 {instance}
	   18	0.000	0.000	0.000	0.000 {method 'connect' of 'PyQt4.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}
		1	0.000	0.000	0.000	0.000 {nt.chdir}
		1	0.000	0.000	0.000	0.000 {nt.getcwd}
		2	0.000	0.000	0.000	0.000 {translate}
 

Storm Shadow

Administrator
Staff member
Developer
Ida Pro Expert
Elite Cracker
the profiler is good to see if any code runs in a loop and slow code and app down.
 

vic4key

New member
Hi,
I wanna change font family of the code box to Courier New - 9. In `pyeditor.py` I've changed this code to:
Code:
#font
skrift = QFont()
skrift.setFamily("Courier New")
skrift.setFixedPitch(True)
skrift.setPointSize(9)
self.codebox.setFont(skrift)
 
self.codebox.SendScintilla(QsciScintilla.SCI_STYLESETFONT, 1, "Courier New")
But nothing changed. Could you help me to change it?
Thanks you so much!
 
Last edited:
Top