-
Notifications
You must be signed in to change notification settings - Fork 66
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
DynamoRIO "Incompatable API Version" #29
Comments
Could you provide more details about your environment? Like OS version and etc. Are you trying to use 64-bit Dynamorio with 64-bit client against 64-bit binary? |
Environment: Yes, the architectures do line up. I built everything locally. I'm using the Linux DynamoRIO for Ubuntu, and the Windows DynamoRIO for Windows. All of the paths check out, and running the |
Does drrun work with any other client(not related to Manul) in your environment? |
No, it doesn't even get to the binary stage. It looks like a compatibility issue between DynamoRIO and libbinafl.so. |
Can you try any client from .. \samples\bin64\ ? |
Could I get a sample invocation? Not sure quite what you mean. |
Having this issue as well on Win10 1803. DynamoRIO Version - 7.1.0 |
Fixed by downgrading DynamoRIO Version to 7.0.0-RC1 |
Hey, I did encounter same issue on windows, I fixed that by recompiling the coverage dll files with version 7.91.18103. It looks like Maksim compiled and shipped the dll/so files from an earlier version as KillyP commented. |
That's right, I will update readme and provide instruction on how to compile clients. Thank you folks for triaging that. |
So, the general advice is to downgrade DynamoRIO as KillyP mentioned. I updated the README in case if the newest version of DynamoRIO is required. Closing the issue. |
I'm still having trouble, but admittedly different trouble. Now I get |
Could you run it with --debug option? |
Sure!
|
Two possible options here:
|
The target runs fine when I run it on its own. The provided DRRUN command exits silently but |
is it .NET application? |
I'm testing one written in C compiled with stock GCC, and one written in C# compiled with preview Roslyn. So one of each. |
TBH, I don't know why it doesn't work. The first thing that we should exclude is the problem with DynamoRIO. There are test clients supplied with DynamoRIO, can you try to run one of them? |
They are located in the \samples\bin64\ folder |
Okay. What binary should I run them against? |
Test\bin\Debug\netcoreapp3.0\Test.exe |
Will do. |
Same |
Most likely there is some problem with DBI instrumentation of your binary. DynamoRIO maintainers can provide more details for you. You can open an issue here: https://github.com/DynamoRIO/dynamorio/issues |
Thanks! |
Quick question: does DynamoRIO DBI instrumentation work on your end? I've tried it on a separate machine and it still isn't working. |
Yes, I've done 2 fuzzing campaigns in the past on Windows using DynamoRIO DBI instrumentation and Manul. |
Do you have a config and test application I can run to see if it's my environment? |
There is actually one test application in win/test/test64. You just need to specify paths (to |
|
By the way, when you run it with --debug it should create a log file in the same folder where you run the binary. Could you copy-paste it here? |
Could you copy-paste your config file here? The file should be called afl.*.proc.log |
|
That log file doesn't exist. I've even done a recursive |
Weird, there is something wrong with DynamoRIO instrumentation... |
Rebuilding both DynamoRIO and the client lib from source fixed it on Linux. Thanks for your help! How does a Windows build work for that? Do I do it the same way with CMake for Windows? |
Running a test application works fine with instrumented build but fails under dynamic instrumentation with recommended version of DynamoRIO (7.0.1 release).
Windows doesn't even get to that point due to #28, but is included for completeness.
The text was updated successfully, but these errors were encountered: