eset / ipyida Goto Github PK
View Code? Open in Web Editor NEWIPython console integration for IDA Pro
License: Other
IPython console integration for IDA Pro
License: Other
Hello @marc-etienne,
First thanks for keeping ipyida up to date :).
I wanted to try the %open_notebook
feature which would be really usefull.
Nonetheless, when testing it the pip install jupyter-kernel-proxy
fails with a no matching distribution found.
Indeed when looking on directly on https://pypi.org there is no such module.
Am I missing something ?
Thank you in advance,
Robin
As a side question: is the version jupyter-client<6.1.13
still required in the setup.py ?
(tested on IDA 8.1 Linux with Python 3.10)
I know that the project is not tested for this setting, but I decided to give it a go. Naturally, there are errors.
IPython.kernel.zmq
was changed to ipykernel
IPython.qt.console
and IPython.qt
are both qtconsole
now. This conflicts with the qtconsole.py
found in this project.QtSvg.pyd
. This causes the imports to fail.While (1) and (2) are easy to solve, I am not sure how to handle (3).
Python>import urllib2; exec urllib2.urlopen('https://github.com/eset/ipyida/raw/stable/install_from_ida.py').read()
[+] Using already installed pip (version 8.1.1)
Collecting ipyida
Using cached https://files.pythonhosted.org/packages/91/8d/67ae354e7780fe9004bfac6dddc3cb530588506f41d5face04a420cf84ec/ipyida-1.3-py2-none-any.whl
Collecting qtconsole>=4.3 (from ipyida)
Using cached https://files.pythonhosted.org/packages/c7/45/1a50288305797fbca7c2039f9baefff1a9df603322874743fbb8408d8ec2/qtconsole-4.4.4-py2.py3-none-any.whl
Collecting ipykernel>=4.6 (from ipyida)
Using cached https://files.pythonhosted.org/packages/11/0b/95330660f8cc5d63428b9886c800ea8d68842fd866389cf579acca4915be/ipykernel-5.1.0.tar.gz
Complete output from command python setup.py egg_info:
ERROR: ipykernel requires Python version 3.4 or above.
----------------------------------------
[.] ipyida system-wide package installation failed, trying user install
Collecting ipyida
Using cached https://files.pythonhosted.org/packages/91/8d/67ae354e7780fe9004bfac6dddc3cb530588506f41d5face04a420cf84ec/ipyida-1.3-py2-none-any.whl
Collecting qtconsole>=4.3 (from ipyida)
Using cached https://files.pythonhosted.org/packages/c7/45/1a50288305797fbca7c2039f9baefff1a9df603322874743fbb8408d8ec2/qtconsole-4.4.4-py2.py3-none-any.whl
Collecting ipykernel>=4.6 (from ipyida)
Using cached https://files.pythonhosted.org/packages/11/0b/95330660f8cc5d63428b9886c800ea8d68842fd866389cf579acca4915be/ipykernel-5.1.0.tar.gz
Complete output from command python setup.py egg_info:
ERROR: ipykernel requires Python version 3.4 or above.
----------------------------------------
Traceback (most recent call last):
File "", line 1, in
File "", line 91, in
Exception: ipyida package installation failed
Hello,
I got a "Microsoft Visual C++ Runtime Library Error" when trying to use the ipyida plugin.
The error is R6034 the application has made an attempt to load the C runtime Library incorrectly.
Other python plugins are working correctly. Windows 7x64
Hi, since pip 10.0.0, we will get the installation error:
AttributeError: 'module' object has no attribute 'main'
because pip.main is not supported.
This problem is not related to the code of this project, but it is critical for this project.
In script localinterface.py of module jupyter_client, there is the code, that start ipconfig on Windows systems:
def _load_ips_ipconfig():
"""load ip addresses from `ipconfig` output (Windows)"""
out = _get_output('ipconfig')
lines = out.splitlines()
addrs = []
for line in lines:
m = _ipconfig_ipv4_pat.match(line.strip())
if m:
addrs.append(m.group(1))
_populate_from_list(addrs)
Definition of _get_output:
def _get_output(cmd):
"""Get output of a command, raising IOError if it fails"""
startupinfo = None
if os.name == 'nt':
startupinfo = subprocess.STARTUPINFO()
startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW
p = Popen(cmd, stdout=PIPE, stderr=PIPE, startupinfo=startupinfo)
stdout, stderr = p.communicate()
if p.returncode:
raise IOError("Failed to run %s: %s" % (cmd, stderr.decode('utf8', 'replace')))
return stdout.decode('utf8', 'replace')
In fact this code start ipconfig with relative path.
So if IDA try to analyze file C:\Test\notepad.exe.i64, module jupyter_client will start C:\Test\ipconfig.exe:
I am aware that this is an issue with regular Python in IDA too, so I am assuming this is an issue with IDA itself,but it might be possible to work around it with the IPython hooking capabilities.
When running any command in the Python shell the IDA GUI is not usable until the command terminates. At least in my case when using angr it happens fairly often that I accidentally run commands which will take basically forever (state exploration without proper limits).
My idea was to find some way to set a timeout on any executed cell in IPython by leveraging the hooking points[0] or code transformations[1] IPython provides.
The ways to implement timeouts in Python[2] seem to be either by using multiprocessing or signal handling, the latter of which is not available on non-UNIX systems. I haven't found a way yet to do this properly via multi processing (or maybe multi threading?) but any input would be appreciated.
[0] https://ipython.readthedocs.io/en/5.x/api/generated/IPython.core.hooks.html
[1] https://ipython.readthedocs.io/en/5.x/config/inputtransforms.html
[2] https://stackoverflow.com/questions/492519/timeout-on-a-function-call
Python>import urllib2; exec urllib2.urlopen('https://github.com/eset/ipyida/raw/stable/install_from_ida.py').read()
Traceback (most recent call last):
File "", line 1, in
File "C:\Python27\Lib\urllib2.py", line 127, in urlopen
return _opener.open(url, data, timeout)
File "C:\Python27\Lib\urllib2.py", line 404, in open
response = self._open(req, data)
File "C:\Python27\Lib\urllib2.py", line 422, in _open
'_open', req)
File "C:\Python27\Lib\urllib2.py", line 382, in _call_chain
result = func(*args)
File "C:\Python27\Lib\urllib2.py", line 1222, in https_open
return self.do_open(httplib.HTTPSConnection, req)
File "C:\Python27\Lib\urllib2.py", line 1184, in do_open
raise URLError(err)
urllib2.URLError: <urlopen error [Errno 1] _ssl.c:507: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version>
Both when running jupyter console --existing
and from the Qt console (via Edit -> Plugins -> IPyIDA
) I seem to need to run from idc import *
and from idaapi import *
the first time I connect to the kernel. This is incredibly annoying and of course there may be other startup things I want to do. However it seems that if I disconnect and reconnect to the kernel, any global names I defined in a previous connection remain, which is nice.
Is there any way to hook a startup file so that I can perform such imports when the kernel starts? The jupyter/ipython documentation leaves much to be desired. I've tried putting my import statements in the following files to no effect, even though I can verify with print statements that they are all run at various times (except $PYTHONSTARTUP
, which I can't get to run):
~/.ipython/profile_default/ipython_kernel_config.py
~/.ipython/profile_default/startup/*.py
~/.jupyter/jupyter_console_config.py
~/.idapro/idapythonrc.py
$PYTHONSTARTUP
I even tried modifying the IPyIDA distribution files and adding the imports to the top of ida_plugin.py
, ida_plugin_stub.py
, ida_qtconsole.py
, and kernel.py
with identical results. Help!!
Jupyther is the future of IPython. IPyIDA should use it instead of the 3.2 branch.
Setup fails when using the install script (one-liner) with "No module named 'ipyida'" during pip install.
IDA v7.4; Python 3.6
Ubuntu 18.04
<pip output>
Traceback (most recent call last):
File "/home/user/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 359, in get_provider
module = sys.modules[moduleOrReq]
KeyError: 'ipyida'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "<string>", line 137, in <module>
File "/home/user/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 1144, in resource_filename
return get_provider(package_or_requirement).get_resource_filename(
File "/home/user/.local/lib/python3.6/site-packages/pkg_resources/__init__.py", line 361, in get_provider
__import__(moduleOrReq)
ModuleNotFoundError: No module named 'ipyida'
Running in IDA 7.5.
Not able to start an ipyida window. when trying to open one in IDA, the output window:
Task was destroyed but it is pending!
task: <Task pending name='Task-2' coro=<Kernel.dispatch_queue() done, defined at D:\Python\Python39\lib\site-packages\ipykernel\kernelbase.py:447> wait_for=<Future pending cb=[<TaskWakeupMethWrapper object at 0x0000014A16917520>()]> cb=[IOLoop.add_future.<locals>.<lambda>() at D:\Python\Python39\lib\site-packages\tornado\ioloop.py:688]>
ERROR:tornado.general:Uncaught exception in ZMQStream callback
Traceback (most recent call last):
File "D:\Python\Python39\lib\site-packages\zmq\eventloop\zmqstream.py", line 431, in _run_callback
callback(*args, **kwargs)
File "D:\Python\Python39\lib\site-packages\jupyter_client\threaded.py", line 121, in _handle_recv
msg_list = self.ioloop._asyncio_event_loop.run_until_complete(get_msg(future_msg))
File "D:\Python\Python39\Lib\asyncio\base_events.py", line 618, in run_until_complete
self._check_running()
File "D:\Python\Python39\Lib\asyncio\base_events.py", line 580, in _check_running
raise RuntimeError(
RuntimeError: Cannot run the event loop while another loop is running
ERROR:tornado.general:Uncaught exception in zmqstream callback
Traceback (most recent call last):
File "D:\Python\Python39\lib\site-packages\zmq\eventloop\zmqstream.py", line 448, in _handle_events
self._handle_recv()
File "D:\Python\Python39\lib\site-packages\zmq\eventloop\zmqstream.py", line 477, in _handle_recv
self._run_callback(callback, msg)
File "D:\Python\Python39\lib\site-packages\zmq\eventloop\zmqstream.py", line 431, in _run_callback
callback(*args, **kwargs)
File "D:\Python\Python39\lib\site-packages\jupyter_client\threaded.py", line 121, in _handle_recv
msg_list = self.ioloop._asyncio_event_loop.run_until_complete(get_msg(future_msg))
File "D:\Python\Python39\Lib\asyncio\base_events.py", line 618, in run_until_complete
self._check_running()
File "D:\Python\Python39\Lib\asyncio\base_events.py", line 580, in _check_running
raise RuntimeError(
RuntimeError: Cannot run the event loop while another loop is running
Exception in callback BaseAsyncIOLoop._handle_events(2496, 1)
handle: <Handle BaseAsyncIOLoop._handle_events(2496, 1)>
Traceback (most recent call last):
File "D:\Python\Python39\Lib\asyncio\events.py", line 80, in _run
self._context.run(self._callback, *self._args)
File "D:\Python\Python39\lib\site-packages\tornado\platform\asyncio.py", line 189, in _handle_events
handler_func(fileobj, events)
File "D:\Python\Python39\lib\site-packages\zmq\eventloop\zmqstream.py", line 448, in _handle_events
self._handle_recv()
File "D:\Python\Python39\lib\site-packages\zmq\eventloop\zmqstream.py", line 477, in _handle_recv
self._run_callback(callback, msg)
File "D:\Python\Python39\lib\site-packages\zmq\eventloop\zmqstream.py", line 431, in _run_callback
callback(*args, **kwargs)
File "D:\Python\Python39\lib\site-packages\jupyter_client\threaded.py", line 121, in _handle_recv
msg_list = self.ioloop._asyncio_event_loop.run_until_complete(get_msg(future_msg))
File "D:\Python\Python39\Lib\asyncio\base_events.py", line 618, in run_until_complete
self._check_running()
File "D:\Python\Python39\Lib\asyncio\base_events.py", line 580, in _check_running
raise RuntimeError(
RuntimeError: Cannot run the event loop while another loop is running
ERROR:tornado.general:Uncaught exception in ZMQStream callback
Traceback (most recent call last):
File "D:\Python\Python39\lib\site-packages\zmq\eventloop\zmqstream.py", line 431, in _run_callback
callback(*args, **kwargs)
File "D:\Python\Python39\lib\site-packages\jupyter_client\threaded.py", line 121, in _handle_recv
msg_list = self.ioloop._asyncio_event_loop.run_until_complete(get_msg(future_msg))
File "D:\Python\Python39\Lib\asyncio\base_events.py", line 618, in run_until_complete
self._check_running()
File "D:\Python\Python39\Lib\asyncio\base_events.py", line 580, in _check_running
raise RuntimeError(
RuntimeError: Cannot run the event loop while another loop is running
ERROR:tornado.general:Uncaught exception in zmqstream callback
Traceback (most recent call last):
File "D:\Python\Python39\lib\site-packages\zmq\eventloop\zmqstream.py", line 448, in _handle_events
self._handle_recv()
File "D:\Python\Python39\lib\site-packages\zmq\eventloop\zmqstream.py", line 477, in _handle_recv
self._run_callback(callback, msg)
File "D:\Python\Python39\lib\site-packages\zmq\eventloop\zmqstream.py", line 431, in _run_callback
callback(*args, **kwargs)
File "D:\Python\Python39\lib\site-packages\jupyter_client\threaded.py", line 121, in _handle_recv
msg_list = self.ioloop._asyncio_event_loop.run_until_complete(get_msg(future_msg))
File "D:\Python\Python39\Lib\asyncio\base_events.py", line 618, in run_until_complete
self._check_running()
File "D:\Python\Python39\Lib\asyncio\base_events.py", line 580, in _check_running
raise RuntimeError(
RuntimeError: Cannot run the event loop while another loop is running
Exception in callback BaseAsyncIOLoop._handle_events(2460, 1)
handle: <Handle BaseAsyncIOLoop._handle_events(2460, 1)>
Traceback (most recent call last):
File "D:\Python\Python39\Lib\asyncio\events.py", line 80, in _run
self._context.run(self._callback, *self._args)
File "D:\Python\Python39\lib\site-packages\tornado\platform\asyncio.py", line 189, in _handle_events
handler_func(fileobj, events)
File "D:\Python\Python39\lib\site-packages\zmq\eventloop\zmqstream.py", line 448, in _handle_events
self._handle_recv()
File "D:\Python\Python39\lib\site-packages\zmq\eventloop\zmqstream.py", line 477, in _handle_recv
self._run_callback(callback, msg)
File "D:\Python\Python39\lib\site-packages\zmq\eventloop\zmqstream.py", line 431, in _run_callback
callback(*args, **kwargs)
File "D:\Python\Python39\lib\site-packages\jupyter_client\threaded.py", line 121, in _handle_recv
msg_list = self.ioloop._asyncio_event_loop.run_until_complete(get_msg(future_msg))
File "D:\Python\Python39\Lib\asyncio\base_events.py", line 618, in run_until_complete
self._check_running()
File "D:\Python\Python39\Lib\asyncio\base_events.py", line 580, in _check_running
raise RuntimeError(
RuntimeError: Cannot run the event loop while another loop is running
I've tried reinstalling ipyida, ipykernel, pyzmq and so on, but it still doesn't work. 😣
It's not really an issue but to all these guys that prefer a dark style :).
add to qtconsole.py
from IPython.qt.console import styles
....
self.ipython_widget.syntax_style = styles.default_dark_syntax_style
self.ipython_widget.style_sheet = styles.default_dark_style_sheet
not sure if it's interesting to add a config interface or something, anyway for some reason the background is purely black instead of the grey monokai that ipython qtconsole have.
At some point I had ipyida working within a jupyter notebook using a configuration file hack and remote_ikernel
. At some point, an upgrade broke the functionality and I can't seem to get it working again. I can verify that the Jupyter creates the connection file properly, but ipyida doesn't seem to pick up the configuration. Any suggestions would be welcome.
jupyter_notebook_config.py
c.ConnectionFileMixin.connection_file = os.environ.get('IPY_CONNECTION_FILE', "kernel-{}.json".format(os.getppid()))
rik_local_idapro32bit/kernel.json
{
"argv": [
"/usr/bin/python",
"-m",
"remote_ikernel",
"--interface",
"local",
"--kernel_cmd",
"IPY_CONNECTION_FILE={connection_file} DISPLAY=:0 /opt/ida-7.1/ida",
"{connection_file}"
],
"display_name": "Local IDA Pro (32-bit)",
"remote_ikernel_argv": [
"/usr/local/bin/remote_ikernel",
"manage",
"--add",
"--kernel_cmd=IPY_CONNECTION_FILE={connection_file} DISPLAY=:0 /opt/ida-7.1/ida",
"--name=IDA Pro (32-bit)",
"--interface=local"
]
}
after installing ipyida, having the above versions of ida and python, ida encounters a problem upon startup, and crashes immediately.
Is there an uninstall script? If not, which files need to be manually removed?
Task was destroyed but it is pending!
task: <Task pending name='Task-3' coro=<Kernel.dispatch_queue() running at C:\qgb\IDA_Pro_v7.5_Portable\python38\lib\site-packages\ipykernel\kernelbase.py:473> wait_for=<Future pending cb=[<TaskWakeupMethWrapper object at 0x000001895F6AA970>()]> cb=[IOLoop.add_future.<locals>.<lambda>() at C:\qgb\IDA_Pro_v7.5_Portable\python38\lib\site-packages\tornado\ioloop.py:688]>
ERROR:tornado.general:Uncaught exception in ZMQStream callback
Traceback (most recent call last):
File "C:\qgb\IDA_Pro_v7.5_Portable\python38\lib\site-packages\zmq\eventloop\zmqstream.py", line 431, in _run_callback
callback(*args, **kwargs)
File "C:\qgb\IDA_Pro_v7.5_Portable\python38\lib\site-packages\jupyter_client\threaded.py", line 121, in _handle_recv
msg_list = self.ioloop._asyncio_event_loop.run_until_complete(get_msg(future_msg))
File "asyncio\base_events.py", line 592, in run_until_complete
File "asyncio\base_events.py", line 554, in _check_running
RuntimeError: Cannot run the event loop while another loop is running
ERROR:tornado.general:Uncaught exception in zmqstream callback
Traceback (most recent call last):
File "C:\qgb\IDA_Pro_v7.5_Portable\python38\lib\site-packages\zmq\eventloop\zmqstream.py", line 452, in _handle_events
self._handle_recv()
File "C:\qgb\IDA_Pro_v7.5_Portable\python38\lib\site-packages\zmq\eventloop\zmqstream.py", line 481, in _handle_recv
self._run_callback(callback, msg)
File "C:\qgb\IDA_Pro_v7.5_Portable\python38\lib\site-packages\zmq\eventloop\zmqstream.py", line 431, in _run_callback
callback(*args, **kwargs)
File "C:\qgb\IDA_Pro_v7.5_Portable\python38\lib\site-packages\jupyter_client\threaded.py", line 121, in _handle_recv
msg_list = self.ioloop._asyncio_event_loop.run_until_complete(get_msg(future_msg))
File "asyncio\base_events.py", line 592, in run_until_complete
File "asyncio\base_events.py", line 554, in _check_running
RuntimeError: Cannot run the event loop while another loop is running
Exception in callback BaseAsyncIOLoop._handle_events(2024, 1)
handle: <Handle BaseAsyncIOLoop._handle_events(2024, 1)>
Traceback (most recent call last):
File "asyncio\events.py", line 81, in _run
File "C:\qgb\IDA_Pro_v7.5_Portable\python38\lib\site-packages\tornado\platform\asyncio.py", line 189, in _handle_events
handler_func(fileobj, events)
File "C:\qgb\IDA_Pro_v7.5_Portable\python38\lib\site-packages\zmq\eventloop\zmqstream.py", line 452, in _handle_events
self._handle_recv()
File "C:\qgb\IDA_Pro_v7.5_Portable\python38\lib\site-packages\zmq\eventloop\zmqstream.py", line 481, in _handle_recv
self._run_callback(callback, msg)
File "C:\qgb\IDA_Pro_v7.5_Portable\python38\lib\site-packages\zmq\eventloop\zmqstream.py", line 431, in _run_callback
callback(*args, **kwargs)
File "C:\qgb\IDA_Pro_v7.5_Portable\python38\lib\site-packages\jupyter_client\threaded.py", line 121, in _handle_recv
msg_list = self.ioloop._asyncio_event_loop.run_until_complete(get_msg(future_msg))
File "asyncio\base_events.py", line 592, in run_until_complete
File "asyncio\base_events.py", line 554, in _check_running
RuntimeError: Cannot run the event loop while another loop is running
C:\qgb\IDA_Pro_v7.5_Portable\python38\lib\site-packages\IPython\core\history.py:369: RuntimeWarning: coroutine 'get_msg' was never awaited
return reversed(list(cur))
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
ERROR:tornado.general:Uncaught exception in ZMQStream callback
Traceback (most recent call last):
File "C:\qgb\IDA_Pro_v7.5_Portable\python38\lib\site-packages\zmq\eventloop\zmqstream.py", line 431, in _run_callback
callback(*args, **kwargs)
File "C:\qgb\IDA_Pro_v7.5_Portable\python38\lib\site-packages\jupyter_client\threaded.py", line 121, in _handle_recv
msg_list = self.ioloop._asyncio_event_loop.run_until_complete(get_msg(future_msg))
File "asyncio\base_events.py", line 592, in run_until_complete
File "asyncio\base_events.py", line 554, in _check_running
RuntimeError: Cannot run the event loop while another loop is running
ERROR:tornado.general:Uncaught exception in zmqstream callback
Traceback (most recent call last):
File "C:\qgb\IDA_Pro_v7.5_Portable\python38\lib\site-packages\zmq\eventloop\zmqstream.py", line 452, in _handle_events
self._handle_recv()
File "C:\qgb\IDA_Pro_v7.5_Portable\python38\lib\site-packages\zmq\eventloop\zmqstream.py", line 481, in _handle_recv
self._run_callback(callback, msg)
File "C:\qgb\IDA_Pro_v7.5_Portable\python38\lib\site-packages\zmq\eventloop\zmqstream.py", line 431, in _run_callback
callback(*args, **kwargs)
File "C:\qgb\IDA_Pro_v7.5_Portable\python38\lib\site-packages\jupyter_client\threaded.py", line 121, in _handle_recv
msg_list = self.ioloop._asyncio_event_loop.run_until_complete(get_msg(future_msg))
File "asyncio\base_events.py", line 592, in run_until_complete
File "asyncio\base_events.py", line 554, in _check_running
RuntimeError: Cannot run the event loop while another loop is running
Exception in callback BaseAsyncIOLoop._handle_events(1996, 1)
handle: <Handle BaseAsyncIOLoop._handle_events(1996, 1)>
Traceback (most recent call last):
File "asyncio\events.py", line 81, in _run
File "C:\qgb\IDA_Pro_v7.5_Portable\python38\lib\site-packages\tornado\platform\asyncio.py", line 189, in _handle_events
handler_func(fileobj, events)
File "C:\qgb\IDA_Pro_v7.5_Portable\python38\lib\site-packages\zmq\eventloop\zmqstream.py", line 452, in _handle_events
self._handle_recv()
File "C:\qgb\IDA_Pro_v7.5_Portable\python38\lib\site-packages\zmq\eventloop\zmqstream.py", line 481, in _handle_recv
self._run_callback(callback, msg)
File "C:\qgb\IDA_Pro_v7.5_Portable\python38\lib\site-packages\zmq\eventloop\zmqstream.py", line 431, in _run_callback
callback(*args, **kwargs)
File "C:\qgb\IDA_Pro_v7.5_Portable\python38\lib\site-packages\jupyter_client\threaded.py", line 121, in _handle_recv
msg_list = self.ioloop._asyncio_event_loop.run_until_complete(get_msg(future_msg))
File "asyncio\base_events.py", line 592, in run_until_complete
File "asyncio\base_events.py", line 554, in _check_running
RuntimeError: Cannot run the event loop while another loop is running
How to change font size of console it seems not have any options and not affected by IDA font option.
When running the install command given in the instructions, everything apparently installs alright, and I even get the "Installation successful." message, but this is simply not true. An exception is thrown:
C:\Users\user\AppData\Roaming\Hex-Rays\IDA Pro\plugins\ipyida.py: 'NoneType' object has no attribute 'set_completer_frame'
Traceback (most recent call last):
File "C:\IDA75\python\3\ida_idaapi.py", line 604, in IDAPython_ExecScript
exec(code, g)
File "C:/Users/user/AppData/Roaming/Hex-Rays/IDA Pro/plugins/ipyida.py", line 11, in
from ipyida.ida_plugin import PLUGIN_ENTRY, IPyIDAPlugIn
File "C:\python38\lib\site-packages\ipyida\ida_plugin.py", line 45, in
_kernel.start()
File "C:\python38\lib\site-packages\ipyida\kernel.py", line 96, in start
app.shell.set_completer_frame()
AttributeError: 'NoneType' object has no attribute 'set_completer_frame'
that prohibits the install. How can I get around this issue, since I've never experienced it before? Thanks.
The default qtconsole font size in IDA Pro is too small. How to enlarge the font size?
in install_from_ida.py, os.path.makedirs should be os.makedirs.
I just learned about this project. It looks very interesting.
As a heavy vim user, I wonder whether it supports vi mode in the IPython console. If not, how I can add the support. Thanks!
The beer emoji in "install_from_ida.py" is causing some decoding error in IDA 7.4, and the installation fails. This happened in Python 3.7.5
IDA: 7.7.220218 Windows x64 (32-bit address size)
IPyIDA: 1.7.2 from pypi.org
Windows: 10 x64.
Once IPyIDA is loaded, results of expressions entered in the Python prompt at the bottom of IDA's Output window are only printed in the Jupyter console and not in the Output window itself (as happens without plugin). One has to use print() or msg() to see the output.
just remove https://github.com/eset/ipyida/blob/master/ipyida/ipyida_plugin_stub.py#L1. It works!
# -*- encoding: utf8 -*-
#
# Simple stub to drop in IDA's "plugins" directory.
#
# Copyright (c) 2016-2018 ESET
# Author: Marc-Etienne M.Léveillé <[email protected]>
# See LICENSE file for redistribution.
I'm using IDA Pro 6.8.150423. The python version shipped with IDA does not work because of the outdated SSL version so I use 2.7.9. I'm running ipython 5.8.0 and the most recent pip version. Everytime when running the command to install ipyida i get:
[+] ipyida.py added to user plugins
[Errno 2] No such file or directory: 'C:/Program Files (x86)/IDA 6.8/plugins/ipyida.py'
Traceback (most recent call last):
File "C:\Program Files (x86)\IDA 6.8\python\idaapi.py", line 601, in IDAPython_ExecScript
execfile(script, g)
IOError: [Errno 2] No such file or directory: 'C:/Program Files (x86)/IDA 6.8/plugins/ipyida.py'
[+] IPyIDA Installation successful. Use <Shift+.> to open the console.
What am I doing wrong?
Running as admin did not solve it either.
The directory does exist but the file does not. It's all installed in default directories.
On IDA 6.95/Linux I get next issue
ASSERT: "f == frame" in file /home/aundro/qt-builds/5.6.0/qtbase/src/gui/text/qtextdocument_p.cpp, line 1492
zsh: abort ./idaq```
This happens when I try to complete something with multiple choises
Python>import urllib.request; exec(urllib.request.urlopen('https://github.com/eset/ipyida/raw/stable/install_from_ida.py').read())
[+] Using already installed pip (version 20.3.3)
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "<string>", line 95, in <module>
File "<string>", line 92, in pip_install
File "contextlib.py", line 120, in __exit__
File "<string>", line 49, in temp_file_as_stdout
File "tempfile.py", line 473, in func_wrapper
io.UnsupportedOperation: not readable
Hi, this has been a problem for me ever since I first tried your lovely plugin back in 6.8.
I am now using 7.5 and I still suffer the same issue.
Something will happen, and when I next try to open the IPython Console window, all I get are
...
And if I type something like 1 + 2
into IDA's output console, 3
will appear in the IPython Console window.
However I have just now managed to get a page of error output, after hitting ^D and ^C and ^Z and anything I could think of.
As I suspected:
Traceback (most recent call last):
File "C:\Users\sfink\AppData\Local\Programs\Python\Python37\lib\site-packages\qtconsole\console_widget.py", line 427, in eventFilter
return self._event_filter_console_keypress(event)
File "C:\Users\sfink\AppData\Local\Programs\Python\Python37\lib\site-packages\qtconsole\frontend_widget.py", line 355, in _event_filter_console_keypress
self.request_interrupt_kernel()
File "C:\Users\sfink\AppData\Local\Programs\Python\Python37\lib\site-packages\qtconsole\frontend_widget.py", line 338, in request_interrupt_kernel
self.interrupt_kernel()
File "C:\Users\sfink\AppData\Local\Programs\Python\Python37\lib\site-packages\qtconsole\frontend_widget.py", line 629, in interrupt_kernel
self.kernel_manager.interrupt_kernel()
File "C:\Users\sfink\AppData\Local\Programs\Python\Python37\lib\site-packages\jupyter_client\manager.py", line 511, in interrupt_kernel
raise RuntimeError("Cannot interrupt kernel. No kernel is running!")
RuntimeError: Cannot interrupt kernel. No kernel is running!
Traceback (most recent call last):
File "C:\Users\sfink\AppData\Local\Programs\Python\Python37\lib\site-packages\qtconsole\console_widget.py", line 427, in eventFilter
return self._event_filter_console_keypress(event)
File "C:\Users\sfink\AppData\Local\Programs\Python\Python37\lib\site-packages\qtconsole\frontend_widget.py", line 355, in _event_filter_console_keypress
self.request_interrupt_kernel()
File "C:\Users\sfink\AppData\Local\Programs\Python\Python37\lib\site-packages\qtconsole\frontend_widget.py", line 338, in request_interrupt_kernel
self.interrupt_kernel()
File "C:\Users\sfink\AppData\Local\Programs\Python\Python37\lib\site-packages\qtconsole\frontend_widget.py", line 629, in interrupt_kernel
self.kernel_manager.interrupt_kernel()
File "C:\Users\sfink\AppData\Local\Programs\Python\Python37\lib\site-packages\jupyter_client\manager.py", line 511, in interrupt_kernel
raise RuntimeError("Cannot interrupt kernel. No kernel is running!")
RuntimeError: Cannot interrupt kernel. No kernel is running!
How to restart the kernel?
Open an idb, then close, final reopen.
now "IPython Console" stdout is broken:
when idb open, plugin will load; when idb close, plugin will unload if not have no idaapi.PLUGIN_FIX
property.
but IDAPython will not unload, and Python have module cache
I guess the code to hook stdout in ipython will not call again when reopen, because of module cache.
The easiest way is set IPyIDAPlugIn.flags = idaapi.PLUGIN_FIX
. It will making ipyida would not unload when idb closed.
And it also can help to solve my ida plugin's bug(it's need hook stdout too, and have to set idaapi.PLUGIN_FIX
): Cirn09/idavscode#2
PS: I try modify kernel.py:
...
class IPythonKernel(object):
...
def start(self):
self._ida_stdout = sys.stdout
self._ida_stderr = sys.stderr
...
def stop(self):
...
sys.stdout = self._ida_stdout
sys.stderr = self._ida_stderr
...
it can also fix this bug, I don't know why...
Focus is lost when the ipyida widget is created or hotkey is pressed with existing widget.
Tested on Linux platform with IDA 7.3/IDA 7.4 (Python 3.7)
There is a dirty solution to focus on text area:
diff --git a/ipyida/ida_plugin.py b/ipyida/ida_plugin.py
index 19ca64e..4bccde7 100644
--- a/ipyida/ida_plugin.py
+++ b/ipyida/ida_plugin.py
@@ -29,6 +29,7 @@ class IPyIDAPlugIn(idaapi.plugin_t):
if self.widget is None:
self.widget = ida_qtconsole.IPythonConsole(self.kernel.connection_file)
self.widget.Show()
+ self.widget.ipython_widget.children()[2].setFocus()
def term(self):
if self.widget:
Using ipykernel
>= 5, the kernel dies after a few commands for some reason and the console displays the following error:
ERROR: execution aborted
Installer stacktrace
Python>import urllib2; exec urllib2.urlopen('https://github.com/eset/ipyida/raw/stable/install_from_ida.py').read()
ERROR:root:code for hash md5 was not found.
Traceback (most recent call last):
File "/home/olivier/opt/ida/python/lib/python27.zip/hashlib.py", line 147, in <module>
globals()[__func_name] = __get_hash(__func_name)
File "/home/olivier/opt/ida/python/lib/python27.zip/hashlib.py", line 97, in __get_builtin_constructor
raise ValueError('unsupported hash type ' + name)
ValueError: unsupported hash type md5
ERROR:root:code for hash sha1 was not found.
Traceback (most recent call last):
File "/home/olivier/opt/ida/python/lib/python27.zip/hashlib.py", line 147, in <module>
globals()[__func_name] = __get_hash(__func_name)
File "/home/olivier/opt/ida/python/lib/python27.zip/hashlib.py", line 97, in __get_builtin_constructor
raise ValueError('unsupported hash type ' + name)
ValueError: unsupported hash type sha1
ERROR:root:code for hash sha224 was not found.
Traceback (most recent call last):
File "/home/olivier/opt/ida/python/lib/python27.zip/hashlib.py", line 147, in <module>
globals()[__func_name] = __get_hash(__func_name)
File "/home/olivier/opt/ida/python/lib/python27.zip/hashlib.py", line 97, in __get_builtin_constructor
raise ValueError('unsupported hash type ' + name)
ValueError: unsupported hash type sha224
ERROR:root:code for hash sha256 was not found.
Traceback (most recent call last):
File "/home/olivier/opt/ida/python/lib/python27.zip/hashlib.py", line 147, in <module>
globals()[__func_name] = __get_hash(__func_name)
File "/home/olivier/opt/ida/python/lib/python27.zip/hashlib.py", line 97, in __get_builtin_constructor
raise ValueError('unsupported hash type ' + name)
ValueError: unsupported hash type sha256
ERROR:root:code for hash sha384 was not found.
Traceback (most recent call last):
File "/home/olivier/opt/ida/python/lib/python27.zip/hashlib.py", line 147, in <module>
globals()[__func_name] = __get_hash(__func_name)
File "/home/olivier/opt/ida/python/lib/python27.zip/hashlib.py", line 97, in __get_builtin_constructor
raise ValueError('unsupported hash type ' + name)
ValueError: unsupported hash type sha384
ERROR:root:code for hash sha512 was not found.
Traceback (most recent call last):
File "/home/olivier/opt/ida/python/lib/python27.zip/hashlib.py", line 147, in <module>
globals()[__func_name] = __get_hash(__func_name)
File "/home/olivier/opt/ida/python/lib/python27.zip/hashlib.py", line 97, in __get_builtin_constructor
raise ValueError('unsupported hash type ' + name)
ValueError: unsupported hash type sha512
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/home/olivier/opt/ida/python/lib/python27.zip/urllib2.py", line 154, in urlopen
File "/home/olivier/opt/ida/python/lib/python27.zip/urllib2.py", line 431, in open
File "/home/olivier/opt/ida/python/lib/python27.zip/urllib2.py", line 454, in _open
File "/home/olivier/opt/ida/python/lib/python27.zip/urllib2.py", line 409, in _call_chain
File "/home/olivier/opt/ida/python/lib/python27.zip/urllib2.py", line 1265, in unknown_open
urllib2.URLError: <urlopen error unknown url type: https>
urllib2 needs hashlib with md5 (most likely to verify certs) and IDA's python on Linux doesn't seem to provide it.
Anyway IDA's python is very crippled so documentation about using a virtualenv
for IDA would be good. I'll see if I can contribute docs to get ananconda's 32-bit python built in a virtualenv
for IDA today.
https://github.com/eset/ipyida/blob/v1.2/install_from_ida.py#L53
raises SSL23_GET_SERVER_HELLO
See #10
After updating from ida-7.0sp1 to ida-7.1, IPyIDA makes IDA to crash.
IDA segfault both when ipyida.ida_plugin.load()
is launched from idapythonrc.py
and manually in the python shell. Note that it seems to work when copy-pasting ida_plugin.py in the plugins directory of IDA.
I think it might have something to do with the Qt5 version used but I am not sure.
Does it also occurs for you ?
(I am using Debian testing)
The connections from the console window to the kernel are not closed when the IDA window is closed. This can lead to IDA crashing once the console is closed and opened enough times, since there are too many files open.
Relatively easy to fix, just need change OnClose
in ida_qtconsole.py
to this:
def OnClose(self, form):
try:
self.kernel_client.stop_channels() # this is changed from pass
except:
import traceback
print(traceback.format_exc())
Upon running the exec script I get the following error:
[+] Installing pip
Traceback (most recent call last):
File "", line 2, in
File "", line 43, in
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 702, in init
errread, errwrite), to_close = self._get_handles(stdin, stdout, stderr)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1136, in _get_handles
c2pwrite = stdout.fileno()
AttributeError: IDAPythonStdOut instance has no attribute 'fileno'
I've turned off App nap as per read me for both idaq and idaq64
Exception ignored in: <function BaseEventLoop.__del__ at 0x000002DD8152CE50>
Traceback (most recent call last):
File "C:\Portable Program\Python310\Lib\asyncio\base_events.py", line 684, in __del__
if not self.is_closed():
File "C:\Portable Program\Python310\Lib\asyncio\base_events.py", line 681, in is_closed
return self._closed
AttributeError: 'QIOCPEventLoop' object has no attribute '_closed'
C:\Users\Cirn09\AppData\Roaming\Hex-Rays\IDA Pro\plugins\ipyida_plugin_stub.py: No QApplication has been instantiated
Traceback (most recent call last):
File "C:\Portable Program\IDA Pro 7.7\python\3\ida_idaapi.py", line 580, in IDAPython_ExecScript
exec(code, g)
File "C:/Users/Cirn09/AppData/Roaming/Hex-Rays/IDA Pro/plugins/ipyida_plugin_stub.py", line 11, in <module>
from ipyida.ida_plugin import PLUGIN_ENTRY, IPyIDAPlugIn
File "C:\Portable Program\Python310\lib\site-packages\ipyida\ida_plugin.py", line 59, in <module>
_setup_asyncio_event_loop()
File "C:\Portable Program\Python310\lib\site-packages\ipyida\ida_plugin.py", line 55, in _setup_asyncio_event_loop
loop = qasync.QEventLoop(qapp, already_running=True)
File "C:\Portable Program\Python310\lib\site-packages\qasync\__init__.py", line 336, in __init__
assert self.__app is not None, "No QApplication has been instantiated"
AssertionError: No QApplication has been instantiated
idat is running in terminal without GUI.
We should find a way to check is ida or idat!
This is great but it would be even greater if it supported using a spyder-kernels Python kernel too in order to be able to benefit from Spyder's variable explorer while debugging.
Would that be doable? any pointers for me to try to dig into it and see how much of a hassle it would be to get it working?
After installation, the plugin could not be loaded:
│[WARN] Could not load IPyIDA plugin. ipyida Python package doesn't seem to be installed.
Commented out the try/catch block I could see the root cause is that qtconsole
has removed qtconsole.qt_loaders
submodule, which caused the ImportError.
Temporary workaround:
pip install qtconsole==4.3
My script idapythonrc.py is located in my C: \ Users \ xxxx \ AppData \ Roaming \ Hex-Rays \ IDA Pro folder.
I tried uncommenting, commenting out the lines, but the files don't import.
I added the dark mode code to the file and the console correctly boots to black (That means the file is located correctly and has loaded fine)
import qtconsole.styles
import ipyida.ida_qtconsole
ipyida.ida_qtconsole.set_widget_options(dict(
style_sheet = qtconsole.styles.default_dark_style_sheet,
syntax_style = qtconsole.styles.default_dark_syntax_style
))
But the part of the script to import idaapi, idc and idautils has no effect and does not import the necessary files.
from idaapi import *
from idc import *
from idautils import *
They can be imported manually only
Loading the plugin in IDA 7.4 Python 3 requires some minor tweaking:
2to3
None
check to https://github.com/eset/ipyida/blob/master/ipyida/kernel.py#L29 as sys.__stdout__
is None
for some reason.Once done, the plugin loads and runs. However, it completely fails whenever any exception is thrown:
Jupyter QtConsole 4.5.1
Python 3.7.4 (tags/v3.7.4:e09359112e, Jul 8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)]
Type 'copyright', 'credits' or 'license' for more information
IPython 7.6.1 -- An enhanced Interactive Python. Type '?' for help.
few
ERROR:root:Internal Python error in the inspect module.
Below is the traceback from this internal error.
Traceback (most recent call last):
File "C:\Users\tamir.bahar\AppData\Local\Programs\Python\Python37\lib\site-packages\IPython\core\interactiveshell.py", line 3325, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-1-6e4eba6e7240>", line 1, in <module>
few
NameError: name 'few' is not defined
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\tamir.bahar\AppData\Local\Programs\Python\Python37\lib\site-packages\IPython\core\interactiveshell.py", line 2039, in showtraceback
stb = value._render_traceback_()
AttributeError: 'NameError' object has no attribute '_render_traceback_'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\tamir.bahar\AppData\Local\Programs\Python\Python37\lib\site-packages\IPython\core\ultratb.py", line 1101, in get_records
return _fixed_getinnerframes(etb, number_of_lines_of_context, tb_offset)
File "C:\Users\tamir.bahar\AppData\Local\Programs\Python\Python37\lib\site-packages\IPython\core\ultratb.py", line 319, in wrapped
return f(*args, **kwargs)
File "C:\Users\tamir.bahar\AppData\Local\Programs\Python\Python37\lib\site-packages\IPython\core\ultratb.py", line 353, in _fixed_getinnerframes
records = fix_frame_records_filenames(inspect.getinnerframes(etb, context))
File "C:\Users\tamir.bahar\AppData\Local\Programs\Python\Python37\Lib\inspect.py", line 1502, in getinnerframes
frameinfo = (tb.tb_frame,) + getframeinfo(tb, context)
File "C:\Users\tamir.bahar\AppData\Local\Programs\Python\Python37\Lib\inspect.py", line 1460, in getframeinfo
filename = getsourcefile(frame) or getfile(frame)
File "C:\Users\tamir.bahar\AppData\Local\Programs\Python\Python37\Lib\inspect.py", line 696, in getsourcefile
if getattr(getmodule(object, filename), '__loader__', None) is not None:
File "C:\Users\tamir.bahar\AppData\Local\Programs\Python\Python37\Lib\inspect.py", line 739, in getmodule
f = getabsfile(module)
File "C:\Users\tamir.bahar\AppData\Local\Programs\Python\Python37\Lib\inspect.py", line 708, in getabsfile
_filename = getsourcefile(object) or getfile(object)
File "C:\Users\tamir.bahar\AppData\Local\Programs\Python\Python37\Lib\inspect.py", line 684, in getsourcefile
filename = getfile(object)
File "C:\Users\tamir.bahar\AppData\Local\Programs\Python\Python37\Lib\inspect.py", line 647, in getfile
raise TypeError('{!r} is a built-in module'.format(object))
TypeError: <module '__plugins__plugin_loader' from ''> is a built-in module
---------------------------------------------------------------------------
Note that __plugins__plugin_loader
is the name of my plugin loader (plugin_loader
). If this is used without the plugin loader - the result is the same, but a different module name appears.
I believe this should probably be fixed in IPython, but thought it important to report here as well.
Installation fail with the following error in IDA 7.2 for MacOS 10.14:
Python>import urllib2; exec urllib2.urlopen('https://github.com/eset/ipyida/raw/stable/install_from_ida.py').read()
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 154, in urlopen
return opener.open(url, data, timeout)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 431, in open
response = self._open(req, data)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 449, in _open
'_open', req)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 409, in _call_chain
result = func(*args)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 1240, in https_open
context=self._context)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 1197, in do_open
raise URLError(err)
urllib2.URLError: <urlopen error [Errno -536870212] Unknown error: -536870212>
Python>import urllib2; exec urllib2.urlopen('https://github.com/eset/ipyida/raw/stable/install_from_ida.py').read()
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 154, in urlopen
return opener.open(url, data, timeout)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 431, in open
response = self._open(req, data)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 449, in _open
'_open', req)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 409, in _call_chain
result = func(*args)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 1240, in https_open
context=self._context)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 1197, in do_open
raise URLError(err)
urllib2.URLError: <urlopen error [Errno -536870212] Unknown error: -536870212>
It fails in IDA64. Therefore, I recommend mentioning to run the installation script in ida32. While running it in ida32 solve the urllib issue, apparently pip installation fail:
Python>import urllib2; exec urllib2.urlopen('https://github.com/eset/ipyida/raw/stable/install_from_ida.py').read()
[+] Installing pip
Collecting pip
Downloading https://files.pythonhosted.org/packages/c2/d7/90f34cb0d83a6c5631cf71dfe64cc1054598c843a92b400e55675cc2ac37/pip-18.1-py2.py3-none-any.whl (1.3MB)
Collecting wheel
Downloading https://files.pythonhosted.org/packages/ff/47/1dfa4795e24fd6f93d5d58602dd716c3f101cfd5a77cd9acbe519b44a0a9/wheel-0.32.3-py2.py3-none-any.whl
Installing collected packages: pip, wheel
[-] Could not install pip.
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "<string>", line 72, in <module>
ImportError: No module named pip
This issue caused because there is no pip already installed my mac, after installing pip this issue also got solved, however I got third error after installing pip in mac:
Python>import urllib2; exec urllib2.urlopen('https://github.com/eset/ipyida/raw/stable/install_from_ida.py').read()
[+] Using already installed pip (version 18.1)
Collecting ipyida
Using cached https://files.pythonhosted.org/packages/91/8d/67ae354e7780fe9004bfac6dddc3cb530588506f41d5face04a420cf84ec/ipyida-1.3-py2-none-any.whl
Collecting qtconsole>=4.3 (from ipyida)
Downloading https://files.pythonhosted.org/packages/e0/7a/8aefbc0ed078dec7951ac9a06dcd1869243ecd7bcbce26fa47bf5e469a8f/qtconsole-4.4.3-py2.py3-none-any.whl (113kB)
Collecting ipykernel>=4.6 (from ipyida)
Downloading https://files.pythonhosted.org/packages/00/47/764e4fa1b1b89598426b8d79b1c4fbe8042432621b0f8e1991aeb3c24806/ipykernel-4.10.0-py2-none-any.whl (110kB)
Collecting pygments (from qtconsole>=4.3->ipyida)
Downloading https://files.pythonhosted.org/packages/13/e5/6d710c9cf96c31ac82657bcfb441df328b22df8564d58d0c4cd62612674c/Pygments-2.3.1-py2.py3-none-any.whl (849kB)
Collecting ipython-genutils (from qtconsole>=4.3->ipyida)
Downloading https://files.pythonhosted.org/packages/fa/bc/9bd3b5c2b4774d5f33b2d544f1460be9df7df2fe42f352135381c347c69a/ipython_genutils-0.2.0-py2.py3-none-any.whl
Collecting jupyter-client>=4.1 (from qtconsole>=4.3->ipyida)
Downloading https://files.pythonhosted.org/packages/3b/c3/3043fe9ffd140d03c9d091a056794ccdc427c56ec19b8eea74f9ea0a498f/jupyter_client-5.2.4-py2.py3-none-any.whl (89kB)
Collecting jupyter-core (from qtconsole>=4.3->ipyida)
Downloading https://files.pythonhosted.org/packages/1d/44/065d2d7bae7bebc06f1dd70d23c36da8c50c0f08b4236716743d706762a8/jupyter_core-4.4.0-py2.py3-none-any.whl (126kB)
Collecting traitlets (from qtconsole>=4.3->ipyida)
Downloading https://files.pythonhosted.org/packages/93/d6/abcb22de61d78e2fc3959c964628a5771e47e7cc60d53e9342e21ed6cc9a/traitlets-4.3.2-py2.py3-none-any.whl (74kB)
Collecting ipython>=4.0.0 (from ipykernel>=4.6->ipyida)
Downloading https://files.pythonhosted.org/packages/b0/88/d996ab8be22cea1eaa18baee3678a11265e18cf09974728d683c51102148/ipython-5.8.0-py2-none-any.whl (760kB)
Collecting tornado>=4.0 (from ipykernel>=4.6->ipyida)
Downloading https://files.pythonhosted.org/packages/e6/78/6e7b5af12c12bdf38ca9bfe863fcaf53dc10430a312d0324e76c1e5ca426/tornado-5.1.1.tar.gz (516kB)
Collecting pyzmq>=13 (from jupyter-client>=4.1->qtconsole>=4.3->ipyida)
Downloading https://files.pythonhosted.org/packages/e5/28/63a6d14e8ccd224f1faa9df2144fde5bb130dda086eaabb288b2919dcd10/pyzmq-17.1.2-cp27-cp27m-macosx_10_6_intel.whl (1.3MB)
Collecting python-dateutil>=2.1 (from jupyter-client>=4.1->qtconsole>=4.3->ipyida)
Downloading https://files.pythonhosted.org/packages/74/68/d87d9b36af36f44254a8d512cbfc48369103a3b9e474be9bdfe536abfc45/python_dateutil-2.7.5-py2.py3-none-any.whl (225kB)
Requirement already satisfied, skipping upgrade: six in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from traitlets->qtconsole>=4.3->ipyida) (1.4.1)
Collecting enum34; python_version == "2.7" (from traitlets->qtconsole>=4.3->ipyida)
Downloading https://files.pythonhosted.org/packages/c5/db/e56e6b4bbac7c4a06de1c50de6fe1ef3810018ae11732a50f15f62c7d050/enum34-1.1.6-py2-none-any.whl
Collecting decorator (from traitlets->qtconsole>=4.3->ipyida)
Downloading https://files.pythonhosted.org/packages/bc/bb/a24838832ba35baf52f32ab1a49b906b5f82fb7c76b2f6a7e35e140bac30/decorator-4.3.0-py2.py3-none-any.whl
Collecting simplegeneric>0.8 (from ipython>=4.0.0->ipykernel>=4.6->ipyida)
Downloading https://files.pythonhosted.org/packages/3d/57/4d9c9e3ae9a255cd4e1106bb57e24056d3d0709fc01b2e3e345898e49d5b/simplegeneric-0.8.1.zip
Collecting backports.shutil-get-terminal-size; python_version == "2.7" (from ipython>=4.0.0->ipykernel>=4.6->ipyida)
Downloading https://files.pythonhosted.org/packages/7d/cd/1750d6c35fe86d35f8562091737907f234b78fdffab42b29c72b1dd861f4/backports.shutil_get_terminal_size-1.0.0-py2.py3-none-any.whl
Collecting pexpect; sys_platform != "win32" (from ipython>=4.0.0->ipykernel>=4.6->ipyida)
Downloading https://files.pythonhosted.org/packages/89/e6/b5a1de8b0cc4e07ca1b305a4fcc3f9806025c1b651ea302646341222f88b/pexpect-4.6.0-py2.py3-none-any.whl (57kB)
Collecting prompt-toolkit<2.0.0,>=1.0.4 (from ipython>=4.0.0->ipykernel>=4.6->ipyida)
Downloading https://files.pythonhosted.org/packages/d1/b0/1a6c262da35c779dd79550137aa7c298a424987240a28792ec5ccf48f848/prompt_toolkit-1.0.15-py2-none-any.whl (247kB)
Requirement already satisfied, skipping upgrade: setuptools>=18.5 in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from ipython>=4.0.0->ipykernel>=4.6->ipyida) (18.5)
Collecting pickleshare (from ipython>=4.0.0->ipykernel>=4.6->ipyida)
Downloading https://files.pythonhosted.org/packages/9a/41/220f49aaea88bc6fa6cba8d05ecf24676326156c23b991e80b3f2fc24c77/pickleshare-0.7.5-py2.py3-none-any.whl
Collecting appnope; sys_platform == "darwin" (from ipython>=4.0.0->ipykernel>=4.6->ipyida)
Downloading https://files.pythonhosted.org/packages/87/a9/7985e6a53402f294c8f0e8eff3151a83f1fb901fa92909bb3ff29b4d22af/appnope-0.1.0-py2.py3-none-any.whl
Collecting pathlib2; python_version == "2.7" or python_version == "3.3" (from ipython>=4.0.0->ipykernel>=4.6->ipyida)
Downloading https://files.pythonhosted.org/packages/2a/46/c696dcf1c7aad917b39b875acdc5451975e3a9b4890dca8329983201c97a/pathlib2-2.3.3-py2.py3-none-any.whl
Collecting futures (from tornado>=4.0->ipykernel>=4.6->ipyida)
Downloading https://files.pythonhosted.org/packages/2d/99/b2c4e9d5a30f6471e410a146232b4118e697fa3ffc06d6a65efde84debd0/futures-3.2.0-py2-none-any.whl
Collecting singledispatch (from tornado>=4.0->ipykernel>=4.6->ipyida)
Downloading https://files.pythonhosted.org/packages/c5/10/369f50bcd4621b263927b0a1519987a04383d4a98fb10438042ad410cf88/singledispatch-3.4.0.3-py2.py3-none-any.whl
Collecting backports_abc>=0.4 (from tornado>=4.0->ipykernel>=4.6->ipyida)
Downloading https://files.pythonhosted.org/packages/7d/56/6f3ac1b816d0cd8994e83d0c4e55bc64567532f7dc543378bd87f81cebc7/backports_abc-0.5-py2.py3-none-any.whl
Collecting ptyprocess>=0.5 (from pexpect; sys_platform != "win32"->ipython>=4.0.0->ipykernel>=4.6->ipyida)
Downloading https://files.pythonhosted.org/packages/d1/29/605c2cc68a9992d18dada28206eeada56ea4bd07a239669da41674648b6f/ptyprocess-0.6.0-py2.py3-none-any.whl
Collecting wcwidth (from prompt-toolkit<2.0.0,>=1.0.4->ipython>=4.0.0->ipykernel>=4.6->ipyida)
Downloading https://files.pythonhosted.org/packages/7e/9f/526a6947247599b084ee5232e4f9190a38f398d7300d866af3ab571a5bfe/wcwidth-0.1.7-py2.py3-none-any.whl
Collecting scandir; python_version < "3.5" (from pathlib2; python_version == "2.7" or python_version == "3.3"->ipython>=4.0.0->ipykernel>=4.6->ipyida)
Downloading https://files.pythonhosted.org/packages/16/2a/557af1181e6b4e30254d5a6163b18f5053791ca66e251e77ab08887e8fe3/scandir-1.9.0.tar.gz
Installing collected packages: pygments, ipython-genutils, enum34, decorator, traitlets, pyzmq, python-dateutil, futures, singledispatch, backports-abc, tornado, jupyter-core, jupyter-client, simplegeneric, backports.shutil-get-terminal-size, ptyprocess, pexpect, wcwidth, prompt-toolkit, scandir, pathlib2, pickleshare, appnope, ipython, ipykernel, qtconsole, ipyida
[.] ipyida system-wide package installation failed, trying user install
Collecting ipyida
Using cached https://files.pythonhosted.org/packages/91/8d/67ae354e7780fe9004bfac6dddc3cb530588506f41d5face04a420cf84ec/ipyida-1.3-py2-none-any.whl
Collecting qtconsole>=4.3 (from ipyida)
Using cached https://files.pythonhosted.org/packages/e0/7a/8aefbc0ed078dec7951ac9a06dcd1869243ecd7bcbce26fa47bf5e469a8f/qtconsole-4.4.3-py2.py3-none-any.whl
Collecting ipykernel>=4.6 (from ipyida)
Using cached https://files.pythonhosted.org/packages/00/47/764e4fa1b1b89598426b8d79b1c4fbe8042432621b0f8e1991aeb3c24806/ipykernel-4.10.0-py2-none-any.whl
Collecting pygments (from qtconsole>=4.3->ipyida)
Using cached https://files.pythonhosted.org/packages/13/e5/6d710c9cf96c31ac82657bcfb441df328b22df8564d58d0c4cd62612674c/Pygments-2.3.1-py2.py3-none-any.whl
Collecting ipython-genutils (from qtconsole>=4.3->ipyida)
Using cached https://files.pythonhosted.org/packages/fa/bc/9bd3b5c2b4774d5f33b2d544f1460be9df7df2fe42f352135381c347c69a/ipython_genutils-0.2.0-py2.py3-none-any.whl
Collecting jupyter-client>=4.1 (from qtconsole>=4.3->ipyida)
Using cached https://files.pythonhosted.org/packages/3b/c3/3043fe9ffd140d03c9d091a056794ccdc427c56ec19b8eea74f9ea0a498f/jupyter_client-5.2.4-py2.py3-none-any.whl
Collecting jupyter-core (from qtconsole>=4.3->ipyida)
Using cached https://files.pythonhosted.org/packages/1d/44/065d2d7bae7bebc06f1dd70d23c36da8c50c0f08b4236716743d706762a8/jupyter_core-4.4.0-py2.py3-none-any.whl
Collecting traitlets (from qtconsole>=4.3->ipyida)
Using cached https://files.pythonhosted.org/packages/93/d6/abcb22de61d78e2fc3959c964628a5771e47e7cc60d53e9342e21ed6cc9a/traitlets-4.3.2-py2.py3-none-any.whl
Collecting ipython>=4.0.0 (from ipykernel>=4.6->ipyida)
Using cached https://files.pythonhosted.org/packages/b0/88/d996ab8be22cea1eaa18baee3678a11265e18cf09974728d683c51102148/ipython-5.8.0-py2-none-any.whl
Collecting tornado>=4.0 (from ipykernel>=4.6->ipyida)
Using cached https://files.pythonhosted.org/packages/e6/78/6e7b5af12c12bdf38ca9bfe863fcaf53dc10430a312d0324e76c1e5ca426/tornado-5.1.1.tar.gz
Collecting pyzmq>=13 (from jupyter-client>=4.1->qtconsole>=4.3->ipyida)
Using cached https://files.pythonhosted.org/packages/e5/28/63a6d14e8ccd224f1faa9df2144fde5bb130dda086eaabb288b2919dcd10/pyzmq-17.1.2-cp27-cp27m-macosx_10_6_intel.whl
Collecting python-dateutil>=2.1 (from jupyter-client>=4.1->qtconsole>=4.3->ipyida)
Using cached https://files.pythonhosted.org/packages/74/68/d87d9b36af36f44254a8d512cbfc48369103a3b9e474be9bdfe536abfc45/python_dateutil-2.7.5-py2.py3-none-any.whl
Requirement already satisfied, skipping upgrade: six in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from traitlets->qtconsole>=4.3->ipyida) (1.4.1)
Collecting enum34; python_version == "2.7" (from traitlets->qtconsole>=4.3->ipyida)
Using cached https://files.pythonhosted.org/packages/c5/db/e56e6b4bbac7c4a06de1c50de6fe1ef3810018ae11732a50f15f62c7d050/enum34-1.1.6-py2-none-any.whl
Collecting decorator (from traitlets->qtconsole>=4.3->ipyida)
Using cached https://files.pythonhosted.org/packages/bc/bb/a24838832ba35baf52f32ab1a49b906b5f82fb7c76b2f6a7e35e140bac30/decorator-4.3.0-py2.py3-none-any.whl
Collecting simplegeneric>0.8 (from ipython>=4.0.0->ipykernel>=4.6->ipyida)
Using cached https://files.pythonhosted.org/packages/3d/57/4d9c9e3ae9a255cd4e1106bb57e24056d3d0709fc01b2e3e345898e49d5b/simplegeneric-0.8.1.zip
Collecting backports.shutil-get-terminal-size; python_version == "2.7" (from ipython>=4.0.0->ipykernel>=4.6->ipyida)
Using cached https://files.pythonhosted.org/packages/7d/cd/1750d6c35fe86d35f8562091737907f234b78fdffab42b29c72b1dd861f4/backports.shutil_get_terminal_size-1.0.0-py2.py3-none-any.whl
Collecting pexpect; sys_platform != "win32" (from ipython>=4.0.0->ipykernel>=4.6->ipyida)
Using cached https://files.pythonhosted.org/packages/89/e6/b5a1de8b0cc4e07ca1b305a4fcc3f9806025c1b651ea302646341222f88b/pexpect-4.6.0-py2.py3-none-any.whl
Collecting prompt-toolkit<2.0.0,>=1.0.4 (from ipython>=4.0.0->ipykernel>=4.6->ipyida)
Using cached https://files.pythonhosted.org/packages/d1/b0/1a6c262da35c779dd79550137aa7c298a424987240a28792ec5ccf48f848/prompt_toolkit-1.0.15-py2-none-any.whl
Requirement already satisfied, skipping upgrade: setuptools>=18.5 in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from ipython>=4.0.0->ipykernel>=4.6->ipyida) (18.5)
Collecting pickleshare (from ipython>=4.0.0->ipykernel>=4.6->ipyida)
Using cached https://files.pythonhosted.org/packages/9a/41/220f49aaea88bc6fa6cba8d05ecf24676326156c23b991e80b3f2fc24c77/pickleshare-0.7.5-py2.py3-none-any.whl
Collecting appnope; sys_platform == "darwin" (from ipython>=4.0.0->ipykernel>=4.6->ipyida)
Using cached https://files.pythonhosted.org/packages/87/a9/7985e6a53402f294c8f0e8eff3151a83f1fb901fa92909bb3ff29b4d22af/appnope-0.1.0-py2.py3-none-any.whl
Collecting pathlib2; python_version == "2.7" or python_version == "3.3" (from ipython>=4.0.0->ipykernel>=4.6->ipyida)
Using cached https://files.pythonhosted.org/packages/2a/46/c696dcf1c7aad917b39b875acdc5451975e3a9b4890dca8329983201c97a/pathlib2-2.3.3-py2.py3-none-any.whl
Collecting futures (from tornado>=4.0->ipykernel>=4.6->ipyida)
Using cached https://files.pythonhosted.org/packages/2d/99/b2c4e9d5a30f6471e410a146232b4118e697fa3ffc06d6a65efde84debd0/futures-3.2.0-py2-none-any.whl
Collecting singledispatch (from tornado>=4.0->ipykernel>=4.6->ipyida)
Using cached https://files.pythonhosted.org/packages/c5/10/369f50bcd4621b263927b0a1519987a04383d4a98fb10438042ad410cf88/singledispatch-3.4.0.3-py2.py3-none-any.whl
Collecting backports_abc>=0.4 (from tornado>=4.0->ipykernel>=4.6->ipyida)
Using cached https://files.pythonhosted.org/packages/7d/56/6f3ac1b816d0cd8994e83d0c4e55bc64567532f7dc543378bd87f81cebc7/backports_abc-0.5-py2.py3-none-any.whl
Collecting ptyprocess>=0.5 (from pexpect; sys_platform != "win32"->ipython>=4.0.0->ipykernel>=4.6->ipyida)
Using cached https://files.pythonhosted.org/packages/d1/29/605c2cc68a9992d18dada28206eeada56ea4bd07a239669da41674648b6f/ptyprocess-0.6.0-py2.py3-none-any.whl
Collecting wcwidth (from prompt-toolkit<2.0.0,>=1.0.4->ipython>=4.0.0->ipykernel>=4.6->ipyida)
Using cached https://files.pythonhosted.org/packages/7e/9f/526a6947247599b084ee5232e4f9190a38f398d7300d866af3ab571a5bfe/wcwidth-0.1.7-py2.py3-none-any.whl
Collecting scandir; python_version < "3.5" (from pathlib2; python_version == "2.7" or python_version == "3.3"->ipython>=4.0.0->ipykernel>=4.6->ipyida)
Using cached https://files.pythonhosted.org/packages/16/2a/557af1181e6b4e30254d5a6163b18f5053791ca66e251e77ab08887e8fe3/scandir-1.9.0.tar.gz
Installing collected packages: pygments, ipython-genutils, enum34, decorator, traitlets, pyzmq, python-dateutil, futures, singledispatch, backports-abc, tornado, jupyter-core, jupyter-client, simplegeneric, backports.shutil-get-terminal-size, ptyprocess, pexpect, wcwidth, prompt-toolkit, scandir, pathlib2, pickleshare, appnope, ipython, ipykernel, qtconsole, ipyida
Running setup.py install for tornado: started
Running setup.py install for tornado: finished with status 'done'
Running setup.py install for simplegeneric: started
Running setup.py install for simplegeneric: finished with status 'done'
Running setup.py install for scandir: started
Running setup.py install for scandir: finished with status 'done'
Successfully installed appnope-0.1.0 backports-abc-0.5 backports.shutil-get-terminal-size-1.0.0 decorator-4.3.0 enum34-1.1.6 futures-3.2.0 ipyida-1.3 ipykernel-4.10.0 ipython-5.8.0 ipython-genutils-0.2.0 jupyter-client-5.2.4 jupyter-core-4.4.0 pathlib2-2.3.3 pexpect-4.6.0 pickleshare-0.7.5 prompt-toolkit-1.0.15 ptyprocess-0.6.0 pygments-2.3.1 python-dateutil-2.7.5 pyzmq-17.1.2 qtconsole-4.4.3 scandir-1.9.0 simplegeneric-0.8.1 singledispatch-3.4.0.3 tornado-5.1.1 traitlets-4.3.2 wcwidth-0.1.7
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "<string>", line 119, in <module>
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 1167, in resource_filename
return get_provider(package_or_requirement).get_resource_filename(
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 442, in get_provider
__import__(moduleOrReq)
ImportError: No module named ipyida
However, after a restart of IDA and rerunning the command the ipyida installs successfully:
Python>import urllib2; exec urllib2.urlopen('https://github.com/eset/ipyida/raw/stable/install_from_ida.py').read()
[+] Using already installed pip (version 18.1)
Requirement already up-to-date: ipyida in /Users/unknown/Library/Python/2.7/lib/python/site-packages (1.3)
Requirement already satisfied, skipping upgrade: qtconsole>=4.3 in /Users/unknown/Library/Python/2.7/lib/python/site-packages (from ipyida) (4.4.3)
Requirement already satisfied, skipping upgrade: ipykernel>=4.6 in /Users/unknown/Library/Python/2.7/lib/python/site-packages (from ipyida) (4.10.0)
Requirement already satisfied, skipping upgrade: pygments in /Users/unknown/Library/Python/2.7/lib/python/site-packages (from qtconsole>=4.3->ipyida) (2.3.1)
Requirement already satisfied, skipping upgrade: ipython-genutils in /Users/unknown/Library/Python/2.7/lib/python/site-packages (from qtconsole>=4.3->ipyida) (0.2.0)
Requirement already satisfied, skipping upgrade: jupyter-client>=4.1 in /Users/unknown/Library/Python/2.7/lib/python/site-packages (from qtconsole>=4.3->ipyida) (5.2.4)
Requirement already satisfied, skipping upgrade: jupyter-core in /Users/unknown/Library/Python/2.7/lib/python/site-packages (from qtconsole>=4.3->ipyida) (4.4.0)
Requirement already satisfied, skipping upgrade: traitlets in /Users/unknown/Library/Python/2.7/lib/python/site-packages (from qtconsole>=4.3->ipyida) (4.3.2)
Requirement already satisfied, skipping upgrade: ipython>=4.0.0 in /Users/unknown/Library/Python/2.7/lib/python/site-packages (from ipykernel>=4.6->ipyida) (5.8.0)
Requirement already satisfied, skipping upgrade: tornado>=4.0 in /Users/unknown/Library/Python/2.7/lib/python/site-packages (from ipykernel>=4.6->ipyida) (5.1.1)
Requirement already satisfied, skipping upgrade: pyzmq>=13 in /Users/unknown/Library/Python/2.7/lib/python/site-packages (from jupyter-client>=4.1->qtconsole>=4.3->ipyida) (17.1.2)
Requirement already satisfied, skipping upgrade: python-dateutil>=2.1 in /Users/unknown/Library/Python/2.7/lib/python/site-packages (from jupyter-client>=4.1->qtconsole>=4.3->ipyida) (2.7.5)
Requirement already satisfied, skipping upgrade: six in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from traitlets->qtconsole>=4.3->ipyida) (1.4.1)
Requirement already satisfied, skipping upgrade: enum34; python_version == "2.7" in /Users/unknown/Library/Python/2.7/lib/python/site-packages (from traitlets->qtconsole>=4.3->ipyida) (1.1.6)
Requirement already satisfied, skipping upgrade: decorator in /Users/unknown/Library/Python/2.7/lib/python/site-packages (from traitlets->qtconsole>=4.3->ipyida) (4.3.0)
Requirement already satisfied, skipping upgrade: simplegeneric>0.8 in /Users/unknown/Library/Python/2.7/lib/python/site-packages (from ipython>=4.0.0->ipykernel>=4.6->ipyida) (0.8.1)
Requirement already satisfied, skipping upgrade: backports.shutil-get-terminal-size; python_version == "2.7" in /Users/unknown/Library/Python/2.7/lib/python/site-packages (from ipython>=4.0.0->ipykernel>=4.6->ipyida) (1.0.0)
Requirement already satisfied, skipping upgrade: pexpect; sys_platform != "win32" in /Users/unknown/Library/Python/2.7/lib/python/site-packages (from ipython>=4.0.0->ipykernel>=4.6->ipyida) (4.6.0)
Requirement already satisfied, skipping upgrade: prompt-toolkit<2.0.0,>=1.0.4 in /Users/unknown/Library/Python/2.7/lib/python/site-packages (from ipython>=4.0.0->ipykernel>=4.6->ipyida) (1.0.15)
Requirement already satisfied, skipping upgrade: setuptools>=18.5 in /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python (from ipython>=4.0.0->ipykernel>=4.6->ipyida) (18.5)
Requirement already satisfied, skipping upgrade: pickleshare in /Users/unknown/Library/Python/2.7/lib/python/site-packages (from ipython>=4.0.0->ipykernel>=4.6->ipyida) (0.7.5)
Requirement already satisfied, skipping upgrade: appnope; sys_platform == "darwin" in /Users/unknown/Library/Python/2.7/lib/python/site-packages (from ipython>=4.0.0->ipykernel>=4.6->ipyida) (0.1.0)
Requirement already satisfied, skipping upgrade: pathlib2; python_version == "2.7" or python_version == "3.3" in /Users/unknown/Library/Python/2.7/lib/python/site-packages (from ipython>=4.0.0->ipykernel>=4.6->ipyida) (2.3.3)
Requirement already satisfied, skipping upgrade: futures in /Users/unknown/Library/Python/2.7/lib/python/site-packages (from tornado>=4.0->ipykernel>=4.6->ipyida) (3.2.0)
Requirement already satisfied, skipping upgrade: singledispatch in /Users/unknown/Library/Python/2.7/lib/python/site-packages (from tornado>=4.0->ipykernel>=4.6->ipyida) (3.4.0.3)
Requirement already satisfied, skipping upgrade: backports_abc>=0.4 in /Users/unknown/Library/Python/2.7/lib/python/site-packages (from tornado>=4.0->ipykernel>=4.6->ipyida) (0.5)
Requirement already satisfied, skipping upgrade: ptyprocess>=0.5 in /Users/unknown/Library/Python/2.7/lib/python/site-packages (from pexpect; sys_platform != "win32"->ipython>=4.0.0->ipykernel>=4.6->ipyida) (0.6.0)
Requirement already satisfied, skipping upgrade: wcwidth in /Users/unknown/Library/Python/2.7/lib/python/site-packages (from prompt-toolkit<2.0.0,>=1.0.4->ipython>=4.0.0->ipykernel>=4.6->ipyida) (0.1.7)
Requirement already satisfied, skipping upgrade: scandir; python_version < "3.5" in /Users/unknown/Library/Python/2.7/lib/python/site-packages (from pathlib2; python_version == "2.7" or python_version == "3.3"->ipython>=4.0.0->ipykernel>=4.6->ipyida) (1.9.0)
[+] ipyida.py added to user plugins
[WARN] Could not load IPyIDA plugin. ipyida Python package doesn't seem to be installed.
/Users/unknown/.idapro/plugins/ipyida.py: undefined function __plugins__ipyida.PLUGIN_ENTRY
[🍺] IPyIDA Installation successful. Use <Shift+.> to open the console.
another restart of the ida and upon entry I get following error:
[WARN] Could not load IPyIDA plugin. ipyida Python package doesn't seem to be installed.
/Users/unknown/.idapro/plugins/ipyida.py: undefined function __plugins__ipyida.PLUGIN_ENTRY
Python>import urllib2; exec urllib2.urlopen('https://github.com/eset/ipyida/raw/stable/install_from_ida.py').read()
[+] Using already installed pip (version 7.0.1)
Traceback (most recent call last):
File "", line 1, in
File "", line 52, in
File "C:\Python27\lib\site-packages\pip__init__.py", line 217, in main
return command.main(cmd_args)
File "C:\Python27\lib\site-packages\pip\basecommand.py", line 185, in main
for name in ["pip._vendor", "distlib", "requests", "urllib3"]
File "C:\Python27\Lib\logging\config.py", line 803, in dictConfig
dictConfigClass(config).configure()
File "C:\Python27\Lib\logging\config.py", line 585, in configure
'%r: %s' % (name, e))
ValueError: Unable to configure handler 'console': IDAPythonStdOut instance has no attribute 'closed'
Does the readme documentation no longer match the current repository?
Because the install command in the documentation points to the "https://github.com/eset/ipyida/raw/stable/install_from_ida.py" file, which doesn't actually exist in the repository?
Hello, sorry for disturbing.
I met a problem which seems a little like #3 which should be fixed before. Could you please to have a look about my issue? Thanks.
Below is my environment info and the callstack.
CPU: Intel
OS: Mac OS 11.5
IDA Pro Version: 7.5
Python: Python 3.8.11 installed via pyenv install
Callstack:
/Applications/IDA Pro 7.5/ida64.app/Contents/MacOS/plugins/ipyida_plugin_stub.py: 'IDAPythonStdOut' object has no attribute 'fileno'
Traceback (most recent call last):
File "/Applications/IDA Pro 7.5/ida64.app/Contents/MacOS/python/3/ida_idaapi.py", line 604, in IDAPython_ExecScript
exec(code, g)
File "/Applications/IDA Pro 7.5/ida64.app/Contents/MacOS/plugins/ipyida_plugin_stub.py", line 10, in <module>
from ipyida.ida_plugin import PLUGIN_ENTRY, IPyIDAPlugIn
File "/Users/xxx/.pyenv/versions/3.8.11/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ipyida/ida_plugin.py", line 61, in <module>
_kernel.start()
File "/Users/xxx/.pyenv/versions/3.8.11/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ipyida/kernel.py", line 87, in start
app.initialize()
File "/Users/xxx/.pyenv/versions/3.8.11/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/traitlets/config/application.py", line 87, in inner
return method(app, *args, **kwargs)
File "/Users/xxx/.pyenv/versions/3.8.11/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ipykernel/kernelapp.py", line 629, in initialize
self.init_io()
File "/Users/xxx/.pyenv/versions/3.8.11/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ipykernel/kernelapp.py", line 416, in init_io
sys.stdout = outstream_factory(self.session, self.iopub_thread,
File "/Users/xxx/.pyenv/versions/3.8.11/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ipykernel/iostream.py", line 379, in __init__
self._setup_stream_redirects(name)
File "/Users/xxx/.pyenv/versions/3.8.11/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ipykernel/iostream.py", line 397, in _setup_stream_redirects
fno = getattr(sys, name).fileno()
AttributeError: 'IDAPythonStdOut' object has no attribute 'fileno'
Installation fails with Python 3.9.7 in IDA Pro 7.6 on Windows:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "<string>", line 95, in <module>
File "<string>", line 92, in pip_install
File "C:\Users\luca\AppData\Local\Programs\Python\Python39\Lib\contextlib.py", line 126, in __exit__
next(self.gen)
File "<string>", line 49, in temp_file_as_stdout
File "C:\Users\luca\AppData\Local\Programs\Python\Python39\lib\site-packages\ipyida\kernel.py", line 73, in write
super(self.__class__, self).write(string)
File "C:\Users\luca\AppData\Local\Programs\Python\Python39\lib\site-packages\ipykernel\iostream.py", line 511, in write
raise TypeError(
TypeError: write() argument must be str, not <class 'bytes'>
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "<string>", line 95, in <module>
File "<string>", line 92, in pip_install
File "C:\Users\luca\AppData\Local\Programs\Python\Python39\Lib\contextlib.py", line 126, in __exit__
next(self.gen)
File "<string>", line 49, in temp_file_as_stdout
File "C:\Users\luca\AppData\Local\Programs\Python\Python39\lib\site-packages\ipyida\kernel.py", line 73, in write
super(self.__class__, self).write(string)
File "C:\Users\luca\AppData\Local\Programs\Python\Python39\lib\site-packages\ipykernel\iostream.py", line 511, in write
raise TypeError(
TypeError: write() argument must be str, not <class 'bytes'>
Python>print(sys.version_info)
sys.version_info(major=3, minor=9, micro=7, releaselevel='final', serial=0)
Installing it manually yields this error:
ipyida_plugin_stub.py: PLUGIN_ENTRY was not defined or the class name 'IPyIDAPlugIn' was already used in 'ipyida.py'
C:\Portable Program\IDA Pro 7.5\plugins\ipyida_plugin_stub.py:
Traceback (most recent call last):
File "C:\Portable Program\IDA Pro 7.5\python\3\ida_idaapi.py", line 616, in IDAPython_ExecScript
exec(code, g)
File "C:/Portable Program/IDA Pro 7.5/plugins/ipyida_plugin_stub.py", line 11, in <module>
from ipyida.ida_plugin import PLUGIN_ENTRY, IPyIDAPlugIn
File "C:\Portable Program\Python38\lib\site-packages\ipyida\ida_plugin.py", line 62, in <module>
_kernel.start()
File "C:\Portable Program\Python38\lib\site-packages\ipyida\kernel.py", line 113, in start
app.initialize()
File "C:\Portable Program\Python38\lib\site-packages\traitlets\config\application.py", line 86, in inner
return method(app, *args, **kwargs)
File "C:\Portable Program\Python38\lib\site-packages\ipykernel\kernelapp.py", line 469, in initialize
self.init_sockets()
File "C:\Portable Program\Python38\lib\site-packages\ipykernel\kernelapp.py", line 260, in init_sockets
self.init_iopub(context)
File "C:\Portable Program\Python38\lib\site-packages\ipykernel\kernelapp.py", line 268, in init_iopub
self.iopub_thread = IOPubThread(self.iopub_socket, pipe=True)
File "C:\Portable Program\Python38\lib\site-packages\ipykernel\iostream.py", line 68, in __init__
self._setup_pipe_in()
File "C:\Portable Program\Python38\lib\site-packages\ipykernel\iostream.py", line 141, in _setup_pipe_in
self._pipe_in = ZMQStream(pipe_in, self.io_loop)
File "C:\Portable Program\Python38\lib\site-packages\zmq\eventloop\zmqstream.py", line 127, in __init__
self._init_io_state()
File "C:\Portable Program\Python38\lib\site-packages\zmq\eventloop\zmqstream.py", line 552, in _init_io_state
self.io_loop.add_handler(self.socket, self._handle_events, self.io_loop.READ)
File "C:\Portable Program\Python38\lib\site-packages\tornado\platform\asyncio.py", line 100, in add_handler
self.asyncio_loop.add_reader(fd, self._handle_events, fd, IOLoop.READ)
File "C:\Portable Program\Python38\Lib\asyncio\events.py", line 501, in add_reader
raise NotImplementedError
NotImplementedError
easy to fix, just add little code to ipyida_plugin_stub.py
:
import sys
import asyncio
if sys.platform == 'win32':
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
When trying to open a notebook with open_notebook
, IDA freezes for some reason. I installed ipyida via import urllib.request; exec(urllib.request.urlopen('https://github.com/eset/ipyida/raw/stable/install_from_ida.py').read())
and everything seemed to work fine. I tried with different Python versions via idapyswitch
but no success.
OS: macOS Venture 13.1
Python: /Library/Developer/CommandLineTools/Library/Frameworks/Python3.framework/Versions/3.9/Python3
IDA: IDA Pro Version 8.2.221216 macOS arm64
Any idea how to debug or what the problem could be?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.