how to recompile ir file contains something like __asm_movi back to binary?
- Dominant language
- C++
- Stars
- 8.6k
- Forks
- 1k
- PR merge metrics
- No merged PRs in 30d
Description
When I lift a binary to llvmir, I find for example
`0x9e4c10: 00 e4 00 6f movi v0.2d, #0000000000000000`
the inst is correctly decoded, but the llvmir is
`%5 = call i128 @__asm_movi(i128 %3, i64 0), !insn.addr !25 `
the inst becomes a call.
according to https://retdec.com/static/publications/retdec-slides-botconf-2017.pdf page 25-26. This is what retdec designed as.
'full semantics only for simple instuctions'
The question is how to compile it back to binary given the movi is a call now?
Thanks.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the issue's lifted LLVM IR example and the __asm_movi call, then review the referenced RetDec slides on instruction semantics. Determine whether RetDec documents or supports recompiling such calls to binary, and document the supported workflow or limitation clearly.
Written by the indexing model from the issue text.
Assessment
- Domain
- compilers, reverse-engineering
- Issue type
- Documentation
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100