Skip to content

Commit

Permalink
Fix qilingida problems caused by custom stderr
Browse files Browse the repository at this point in the history
  • Loading branch information
elicn committed Sep 26, 2024
1 parent ea1a17b commit 2367449
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion qiling/extensions/idaplugin/qilingida.py
Original file line number Diff line number Diff line change
Expand Up @@ -886,7 +886,13 @@ def __init__(self):
self.env = {}

def start(self, *args, **kwargs):
self.ql = Qiling(argv=self.path, rootfs=self.rootfs, verbose=QL_VERBOSE.DEBUG, env=self.env, log_plain=True, *args, **kwargs)
# ida replaces sys.stderr with their own customized class that is not fully compatible with the
# standard stream protocol. here we patch stderr replacement to make it look like a proper file.
# this has to happen before Qiling init
if not hasattr(sys.stderr, 'fileno'):
setattr(sys.stderr, 'fileno', lambda: sys.__stderr__.fileno())

self.ql = Qiling(argv=self.path, rootfs=self.rootfs, verbose=QL_VERBOSE.DEBUG, env=self.env, *args, **kwargs)

if sys.platform != 'win32':
self.ql.os.stdin = QlEmuMisc.QLStdIO('stdin', sys.__stdin__.fileno())
Expand Down

0 comments on commit 2367449

Please sign in to comment.