Repository navigation
Comparing changes
Open a pull request
base repository: qilingframework/qiling
base: master
head repository: qilingframework/qiling
compare: dev
- 19 commits
- 38 files changed
- 4 contributors
Commits on Sep 5, 2026
-
Configuration menu - View commit details
-
Copy full SHA for 50a561a - Browse repository at this point
Copy the full SHA 50a561aView commit details -
Merge pull request #1659 from qilingframework/xwings-patch-5
Update pyproject.toml
Configuration menu - View commit details
-
Copy full SHA for d206aed - Browse repository at this point
Copy the full SHA d206aedView commit details
Commits on Sep 6, 2026
-
Fix statx byte order on big-endian guests
Statx32/Statx64 (and their StatxTimestamp structs) were defined only as little-endian ctypes.Structure, and ql_syscall_statx used them regardless of guest endianness. Every other stat-family struct already has an explicit big-endian variant selected by ql.arch.endian; statx was the lone gap. On a big-endian guest (e.g. MIPS/MIPS64 EB) this byte-swaps every statx field. In particular stx_mode loses its S_IFDIR bit, so a directory looks like a plain file and `busybox ls /` just echoes the argument instead of listing the directory. Add Statx{32,64}EB / StatxTimestamp{32,64}EB (ctypes.BigEndianStructure, reusing the little-endian field layouts) and pick them when the guest is big-endian. The little-endian path is byte-for-byte unchanged. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>Configuration menu - View commit details
-
Copy full SHA for 29c54bf - Browse repository at this point
Copy the full SHA 29c54bfView commit details -
Add regression test for statx byte order on big-endian guests
Drives ql_syscall_statx on a big-endian MIPS context and checks that stx_mode, read back in the guest's byte order, still reports a directory (S_IFDIR). Before the fix the statx struct was emitted little-endian regardless of guest endianness, so the type bits were byte-swapped and a directory looked like a regular file. Self-contained (no rootfs binary, runs on stock unicorn). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for 0e52738 - Browse repository at this point
Copy the full SHA 0e52738View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8850fd2 - Browse repository at this point
Copy the full SHA 8850fd2View commit details -
Configuration menu - View commit details
-
Copy full SHA for d9b4d9d - Browse repository at this point
Copy the full SHA d9b4d9dView commit details -
Merge pull request #1634 from retrocpugeek/fix/statx-bigendian
Fix statx byte order on big-endian guests
Configuration menu - View commit details
-
Copy full SHA for 19d33b6 - Browse repository at this point
Copy the full SHA 19d33b6View commit details -
Handle ARM/ARM64 Linux undefined-instruction exception
ARM and ARM64 Linux only hooked the svc syscall trap (exception 2), so any other CPU exception fell through to the unhandled-interrupt dispatcher and raised QlErrorCoreHook, crashing the framework. This surfaces in examples/shellcode_run.py: since execve was patched to return -1 for paths outside the rootfs, rootfs-less shellcode no longer stops at execve and instead runs into its trailing data. On ARM64 that data decodes as an undefined instruction (exception 1), which a real kernel would deliver as SIGILL and terminate the process. Hook EXCP.UDEF and emulate that termination by stopping cleanly, and replace the magic syscall-trap number with the named EXCP.SWI constant. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for 9fce1f8 - Browse repository at this point
Copy the full SHA 9fce1f8View commit details -
Handle MIPS Linux reserved-instruction exception
Same class of crash as the ARM/ARM64 fix: MIPS Linux only hooked the syscall exception, so any other CPU exception reached the unhandled-interrupt dispatcher and raised QlErrorCoreHook. In examples/shellcode_run.py the rootfs-less MIPS shellcode runs past its denied execve into the trailing "/bin/sh" string, which decodes as a reserved instruction (exception 20) -- delivered as SIGILL on a real kernel. Hook the reserved-instruction exception and route it through the existing hook_cpu_exception handler. Add a small EXCP enum to mips_const so the syscall and reserved-instruction codes are named rather than magic numbers. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for e280985 - Browse repository at this point
Copy the full SHA e280985View commit details -
Add regression tests for the illegal-instruction CPU exception
The existing shellcode tests end emulation from their execve hook, so they never reach the trailing '/bin/sh' string and never execute it as code. These two deliberately let execve return and fall through into it, which raises an undefined/reserved instruction exception on ARM64 and MIPS. Without the preceding commits both fail with QlErrorCoreHook: _hook_intr_cb : not handled. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for 5d2835a - Browse repository at this point
Copy the full SHA 5d2835aView commit details
Commits on Sep 7, 2026
-
Configuration menu - View commit details
-
Copy full SHA for f912b7f - Browse repository at this point
Copy the full SHA f912b7fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1e0df0b - Browse repository at this point
Copy the full SHA 1e0df0bView commit details -
Merge pull request #1661 from retrocpugeek/fix/cpu-exception-sigill
Terminate the emulated process on an illegal-instruction CPU exception
Configuration menu - View commit details
-
Copy full SHA for 0a13c24 - Browse repository at this point
Copy the full SHA 0a13c24View commit details
Commits on Sep 13, 2026
-
Configuration menu - View commit details
-
Copy full SHA for dc64903 - Browse repository at this point
Copy the full SHA dc64903View commit details -
Configuration menu - View commit details
-
Copy full SHA for 09fb5fb - Browse repository at this point
Copy the full SHA 09fb5fbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 86b8124 - Browse repository at this point
Copy the full SHA 86b8124View commit details
Commits on Sep 23, 2026
-
Configuration menu - View commit details
-
Copy full SHA for e1dafd3 - Browse repository at this point
Copy the full SHA e1dafd3View commit details
Commits on Sep 24, 2026
-
Configuration menu - View commit details
-
Copy full SHA for 903f254 - Browse repository at this point
Copy the full SHA 903f254View commit details -
Configuration menu - View commit details
-
Copy full SHA for 23ad4fd - Browse repository at this point
Copy the full SHA 23ad4fdView commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff master...dev
