-
Notifications
You must be signed in to change notification settings - Fork 45
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
Reassembly Errors #39
Comments
I feel this is either caused by recent changes in angr’s memory data analysis or by the disassembler engine (capstone). I’ll debug it today and see what is going on. Can you run test cases here and make sure they run in your environment? |
Somehow I have a feeling that you are using GCC to assemble Intel syntax assembly files that reassembler generates… Give nasm a try? |
It seems that these issues are caused by newer versions of GCC (?) changing the names of Also do not try the Python 2 version of angr. It is no longer maintained. By the way, here is a better test.py that I use (so that you can get AT&T syntax that GCC likes):
|
Thank you for your prompt response. |
Also, I have another question. |
The PR is merged. Error 1 and 2 should have both been solved.
Nope. In theory it's extremely easy to do since you no longer need to heuristically symbolize pointers on PIE binaries. I am not interested in implementing the support for angr's reassembler. You can do it by yourself (and send us a PR) if you want to :) |
By the way, an example solution that leverages explicit pointers (or relocation information) in PIE binaries is RetroWrite. I bet you know that paper. |
I appreciate your effort. |
I got another error when I reassembled x86 binaries.
I think ramblr mis-handles some sections.
|
I’ve never seen .tm_clone_table. Can you share the binary? |
Sure, I share the target binary click. |
@ltfish Have you checked my binary file? |
Sorry for the late reply. I'm taking a sick leave and will take a look at the binary when situation permits. |
I'm sorry to hear that. I wish you get well soon. |
@miksh Did you notice that your Reassembler does not officially support PIE binaries. I'm working on a quick fix, but I am not interested in testing it on a large corpus of PIE binaries. |
angr/angr#3171 works on your |
Two other issues that I fixed in this PR: Reassembler did not support |
Thank you for your kind cooperation. I have just checked that ramblr properly reassembles the sample binary. 👍 |
I compiled the sample binary with gcc v7.5.0. I found that some intrinsic functions use getpc call even if I use no-pie options. |
I believe it's because some libraries on your system that GCC statically linked to has |
I'm closing this issue. Feel free to reopen or open a new one if you have more questions about reassembler! |
I am trying to use ramblr for my research but I found some errors when I ran it.
I created a simple patch(re-compile) program as follows.
(I did not add any instrumentations for test)
Also, I use a lastest angr versions as follows.
However, I met several errors even when I ran it
Error #1
I created a toy program (hello.c) as follows.
Then I ran it, but my program got syntax error.
After debugging, I found that there is a mistake as follows.
I fixed it as follows.
After fixing an aformentioned error, I also got error (error #1) as follows.
We examined assembly file that ramblr emited, and found that the errors are related to missing symbols.
Error #2
Next, I test(recompile) 'ls' binary, and I found a different error as follows.
First, I ran python3 version.
I think ramblr could not properly handle following instruction.
Error #3
Also, python2 version emits different error as follows.
I think the error reason is similar to that of error #1
The text was updated successfully, but these errors were encountered: