-
Notifications
You must be signed in to change notification settings - Fork 40
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
error when trying to initiate connection: Python Exception <class 'ValueError'>: embedded null character #99
Comments
@janbbeck using the IDB you sent me offline, I was not able to trigger it in the following case:
I get no crash. This means things will only get harder to debug considering the complicated setup. I'm assuming the target you are debugging is not sharable right? The one who is loading My gut feeling here is that there is something with the name of the binary your are debugging. That or we are being fed the wrong name. To debug this a little, you should set this in gdb:
This will allow bigger stack traces. Next, update your version to the latest d2d version. I just updated it tonight. Now do what you did before. Lmk if you see this print:
My feeling is you are failing in an |
random binary on x86_64 machine did work right away.: I did the other things too, but no change at all. Was running Thanks for taking a look! |
You need to do import decomp2dbg; print(decomp2dbg.__version__) The latest version is 3.9.2. Ok, would you be able to share the main binary you are debugging? Whatever you are initially running in the gdbserver that is being connected to? |
Sure thing! |
I don't know if it's helpful, but here is the Dockerfile in which I run gdb-multiarch. |
@janbbeck any chance you get to run it with the updated version? Also, have you run into this error running
This has been a troubling bug to reproduce so far :( |
I just did the update and tried again, but with no luck"
I have not encountered that symbol lookup error you reported. |
An extra piece of information: |
@janbbeck interesting. So the main thing delaying the debugging of this is me being unable to get the gdbserver :1234 ./sudo This is on an Arm32/v7 QEMU instance. This fails because I don't have the correct dependencies for this sudo binary. Do you have any more reproducible way for me to run or get access to this remote run sudo? I really just need to see what the server is send your client to see where its crashing. |
Here is how I can reproduce it without the target board: In this dockerfile
I compile a simple hello world: #include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
} and then run gdbserver from there:
Then I start a remote debug session from the Dockerfile I shared previously:
I just noticed that the executable does not run in a Docker that specifies architecture, so it's probably x86-64 there. |
@janbbeck you probably wont believe this, but I've actually thought about this issue every week for the last few months, HA. It's stayed in my inbox taunting me. I've finally gotten time to work on it. ReproducingFor my future sanity, here is how I reproduced this issue:
I'll update with the root-cause when I have it. |
The setup I am using:
The target the binary is running on is an Amlogic embedded board. The architecture is aarch64 but sudoers.so, which I am looking at, is a 32bit arm binary. I have a gdbserver running on that board
My desktop system is a x86_64 ubuntu. In order to make the connection to the target work well, I have set up a docker with this architecture: FROM arm32v7/ubuntu:latest
IDA is running directly on my system.
I then connect with gdb-multiarch/gef to the target, and run a script to a point where sudoers.so is loaded in the vmmap. So, for
I would
and get this error:
The text was updated successfully, but these errors were encountered: