Interpret common ARM Linux Software Interrupts as a syscall function.
See original GitHub issueIs your feature request related to a problem? Please describe.
The following assembly gets decompiled to software_interrupt(0);
...
c0 70 a0 e3 mov r7,#0xc0
00 00 00 ef swi 0x0
Describe the solution you’d like
In IDA, it properly parses the syscall to linux_eabi_syscall(__NR_mmap2, a1, a2, a3, a4, a5, a6, a7);
Describe alternatives you’ve considered N/A
Additional context N/A
Issue Analytics
- State:
- Created 5 years ago
- Reactions:7
- Comments:15 (4 by maintainers)
Top Results From Across the Web
4.6. Interrupt Handling - Understanding the Linux Kernel, 3rd ...
The interrupt handler executes several interrupt service routines (ISRs). Each ISR is a function related to a single device sharing the IRQ line....
Read more >Interrupts & System Calls - COMPAS Lab
Types of interrupts: • External interrupt: caused by a hardware device, e.g., timer ticks, network card interrupts. • Trap: Explicitly caused by the...
Read more >Linux ARM Shellcode - Part 1 - Syscalls
Linux ARM /EABI syscalls are invoked using a software interrupt. The function arguments go in registers R0-R6, the syscall number in register ...
Read more >Interrupts and System Calls
How is this configured? 十 Kernel creates an array of Interrupt descriptors in memory, called Interrupt Descriptor Table, or IDT. 十 Can ...
Read more >How the Linux kernel handles a system call - 0xax
Furthermore, system calls are implemented as software interrupts. ... this function calls the cpu_init function from the arch/x86/kernel/cpu/common.c source ...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
@kevinferrare Yeah, I’m planning on sharing it, after I fix a few things, including the one I reported.
I’ve also worked on creating a machine parseable list of interrupts, so it can be improved with the help of other people and it’s not hardcoded.
I’ll share both things at some point.
xref https://github.com/NationalSecurityAgency/ghidra/issues/3936