-
Notifications
You must be signed in to change notification settings - Fork 39
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
Add support for arm 32/64 #40
Comments
Hi @dzonerzy we would love help anywhere we can get it on the project. I see this as a request for two separate things:
Background InfoI'll try to briefly describe how our native symbol mapping works when you connect a decompiles:
ProposalI think if you want to add ARM support the first thing to do is test decomp2dbg on an ARM64 machine. Report if it works out of the box or not (it very well may). After that, take a look at #24, which may be the issue you need to solve. You would use the environment information to determine when to switch 32bit and 64bit compiling on and off. If you have questions, feel free to ping me here or on our Official Discord listed in the README. |
Hi @mahaloz Now I better understand why it doesn't work in my case, basically , what I'm trying to do is adding symbols to an emulated binary (AArch64 compiled using buildroot) this binary is executed on a Linux machine x86_64 using qiling framework which under the hood uses unicorn engine , qiling allow debugging foreign arch using gdb protocol. What I wanted to do was emulate and debug it using qiling and add missing symbols (stripped binary) using ida pro and decomp2dbg. Wouldn't be easier to just generate some sort of pdb/dwarf instead of compiling a binary on each break? I already tried decomp2dbg and failed to add symbols with the emulated binary |
Hi @mahaloz I think that manually generate an object file is not actually needed and dependecies on objcopy and gcc could be removed. LIEF would be a better solution in my opinion (https://lief-project.github.io//doc/latest/tutorials/02_pe_from_scratch.html) it allow to dynamically generate binary for both ELF and PE, and support adding symbols too. I will investigate to see if that's actually possible. |
@dzonerzy I love the lief project. This looks like an extremely promising candidate to remove some of the worst code in this project. I would love to move in this direction. For now, I think the easiest way would be to first introduce lief into the setup.py, validate that normal installs work on the last two Ubuntu versions, and then replace the use of gcc. Objcopy will be a little harder. From what I can tell of lief, it does not look like you can add symbols, but only modify them. I'll have to look more. If you end up wanting to PR for the first thing that would be dope. Otherwise I may be able to start a PR for it this week. |
Perfect I'll start fork the project and work on it , also if you check the documentation for LIEF it seems it allow to add both static and dynamic symbols https://lief-project.github.io/doc/latest/api/python/elf.html |
I would love to share some details with you but seems like I can't find the discord link in the readme (maybe i'm blind) |
It's line 13 of the readme: https://discord.gg/wZSCeXnEvR |
I saw that right now there's no arm support I would like to help you develop this, let me know how can I do that
The text was updated successfully, but these errors were encountered: