diff --git a/qiling/os/os.py b/qiling/os/os.py index 7982fe946..9108f7024 100644 --- a/qiling/os/os.py +++ b/qiling/os/os.py @@ -60,8 +60,13 @@ def __init__(self, ql: Qiling, resolvers: Mapping[Any, Resolver] = {}): # for the standard streams which usually do not support certain operations, # such as fileno(). here we use this to determine how we are going to use # the environment standard streams + + # IDAPython returns True for stdin but False for stdout and stderr so checking + # all three sys.stdin.fileno() - except UnsupportedOperation: + sys.stdout.fileno() + sys.stderr.fileno() + except (UnsupportedOperation, AttributeError): # Qiling is used on an interactive shell or embedded python interpreter. # if the internal stream buffer is accessible, we should use it self._stdin = getattr(sys.stdin, 'buffer', sys.stdin)