Skip to content

Commit

Permalink
Merge pull request #1493 from elicn/ida-stderr-fix
Browse files Browse the repository at this point in the history
Fix logging issues caused by IDA custom stderr
  • Loading branch information
xwings authored Nov 25, 2024
2 parents 53318ba + 2367449 commit fc6aff4
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 fc6aff4

Please sign in to comment.