Closed anthonyprintup closed 3 years ago
I'm curious how this would work with IDA... specifically if it locks the python command line?
I'm not sure, but the python core libraries are loaded into IDA when it starts up - so I assume the environment/interpreter is setup like normal. Then again, I've never seen async operations in IDA plugins so there might be a good reason why...
We would use add_done_callback
with a timeout on the task, and when the request is completed (future.set_result
), it should call the callback (to my understanding).
In the callback we would do everything we do at this time (format the database, show a dialogue for the user, etc.).
I'm curious how this would work with IDA... specifically if it locks the python command line?
Since it's async, it shouldn't block anything.
So, the async stuff turned out to be a bummer (coroutines, makes sense).
But, we got this!
With a bit of magic, this is totally doable (rip Py 2.7 support?)!
Yasss! This is pretty exciting : ))
Also, I'll kill the py 2.7 feature request for now... python 3 is the future I guess. Unless we hear a lot of screaming, long live Python 3.
After a few days of tinkering, I finally got a promising POC. Looking forward to start implementing it this weekend.
When performing requests the UI (especially with large IAT scans) the UI is frozen and IDA is unusable while the requests are performed. To fix this we should use
asyncio
'sFutures
.Example combined with add_done_callback:
More elegant alternatives would include the use of async libraries such as: