-
Notifications
You must be signed in to change notification settings - Fork 553
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Z3 not working inside a DynamoRio client. #1881
Comments
What happens under DR debug build? What is the callstack of the crash? See https://github.com/DynamoRIO/dynamorio/wiki/Debugging |
I executed it with a DR debug build. In the log I attached is possible to get the callstack but without symbols:
The kenelbase address is in the RaiseException function, the function in So the problem is Z3 is raising an exception when it is inside the DR private loader. But why? It would be cool to be possible to disable the virtual heap, the private loader and all the different transparency artifacts to narrow down the issue. But as you told me here it doesn't seem to be an easy task, I would need to modify the options.c I don't feel very confident modifying that code. I would appreciate any help to identify or solve the problem. Thank you! |
Use windbg to attach and get the callstack at the crash point (where the msgbox is raised), getting symbols as shown on the wiki link pasted above. With a private lib silently failing, debugging involves stepping through with windbg the private z3 code loaded by DR and comparing its execution to z3 code run natively in windbg. Here there is an actual crash, though, and that should be analyzed directly. |
Hi,
the addresses are aligned when running the client under drrun here is the call stack from the assert:
I didn't understand one thing why when i run Z3Test with the following command it won't crash: |
Trying to continue on an exception inside DR itself is not done because there are no SEH handlers (deliberately): SEH relies on user-mode code and DR wants to run as little of such code as possible, for transparency to avoid interacting with app state. Any handling it needs to do for its own try..except mechanisms is done directly via custom machinery. To continue for a client exception for #1717 requires ensuring the state used by the SEH code is all properly separated from the app and ensuring an unhandled exception gets back to DR. |
Hi,
I was trying to use Z3 inside a DR client in Windows. Some functions are working but it is crashing solving an expression. It is not a Z3 problem because the same code is working properly in a normal console project:
The following code of the DR client is crashing in the instruction
solver.check
:I guess that DynamoRio is interfering in the execution of the Z3 project, but I don't know where.
I attach the DR client log (loglevel 5):
Crackme.exe.0.2056.html.zip
And I attach the two projects with the Z3 console app and the DR client using Z3.
Z3_projects.zip
Could anyone test it?
The text was updated successfully, but these errors were encountered: