Vector35 / Vector35/binaryninja-api
Add support for builtin that sets memory to a pattern.
Open
Nobody has claimed this yet.
Component: Core
Effort: Low
Impact: Low
- Dominant language
- C++
- Stars
- 1.3k
- Forks
- 298
- Avg merge
- 5d 5h
- Merged PRs (30d)
- 19
Description
Version and Platform (required):
- Binary Ninja Version: 3.6.4764-dev, 1e8f4a9b
- OS: macos
- OS Version: 14.2
- CPU Architecture: arm64
Pseudo C:
int64_t rcx_3;
int64_t rdi_2;
rdi_2 = __memfill_u64(&DriverObject->MajorFunction, sub_14008574c, 0xe0);
HLIL:
int64_t rcx_3
int64_t rdi_2
rdi_2, rcx_3 = __memfill_u64(&DriverObject->MajorFunction, sub_14008574c, 0xe0)
Disassembly:
lea rax, [rel sub_14008574c]
mov ecx, 0x1c
lea rdi, [rbx+0x70]
rep stosq qword [rdi] {0x0}
Issue is at address 14008a0a2 for this binary:
HEVD.zip
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the issue with the attached HEVD.zip at address 14008a0a2, comparing the pseudo C, HLIL, and disassembly shown in the report. Trace how Binary Ninja handles the __memfill_u64 builtin and the rep stosq sequence, then verify that the resulting representation correctly models the memory-pattern operation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- compilers, reverse-engineering
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100