Comparing master...dev · qilingframework/qiling · GitHub
Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: qilingframework/qiling
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: qilingframework/qiling
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: dev
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 19 commits
  • 38 files changed
  • 4 contributors

Commits on Sep 5, 2026

  1. Update pyproject.toml

    xwings authored Sep 5, 2026
    Configuration menu
    Copy the full SHA
    50a561a View commit details
    Browse the repository at this point in the history
  2. Merge pull request #1659 from qilingframework/xwings-patch-5

    Update pyproject.toml
    xwings authored Sep 5, 2026
    Configuration menu
    Copy the full SHA
    d206aed View commit details
    Browse the repository at this point in the history

Commits on Sep 6, 2026

  1. 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>
    retrocpugeek and claude committed Sep 6, 2026
    Configuration menu
    Copy the full SHA
    29c54bf View commit details
    Browse the repository at this point in the history
  2. 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>
    retrocpugeek and claude committed Sep 6, 2026
    Configuration menu
    Copy the full SHA
    0e52738 View commit details
    Browse the repository at this point in the history
  3. renew docs

    xwings committed Sep 6, 2026
    Configuration menu
    Copy the full SHA
    8850fd2 View commit details
    Browse the repository at this point in the history
  4. Merge pull request #1660 from xwings/dev

    renew docs
    xwings authored Sep 6, 2026
    Configuration menu
    Copy the full SHA
    d9b4d9d View commit details
    Browse the repository at this point in the history
  5. Merge pull request #1634 from retrocpugeek/fix/statx-bigendian

    Fix statx byte order on big-endian guests
    xwings authored Sep 6, 2026
    Configuration menu
    Copy the full SHA
    19d33b6 View commit details
    Browse the repository at this point in the history
  6. 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>
    retrocpugeek and claude committed Sep 6, 2026
    Configuration menu
    Copy the full SHA
    9fce1f8 View commit details
    Browse the repository at this point in the history
  7. 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>
    retrocpugeek and claude committed Sep 6, 2026
    Configuration menu
    Copy the full SHA
    e280985 View commit details
    Browse the repository at this point in the history
  8. 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>
    retrocpugeek and claude committed Sep 6, 2026
    Configuration menu
    Copy the full SHA
    5d2835a View commit details
    Browse the repository at this point in the history

Commits on Sep 7, 2026

  1. refine ARCHITECTURE file

    xwings committed Sep 7, 2026
    Configuration menu
    Copy the full SHA
    f912b7f View commit details
    Browse the repository at this point in the history
  2. Merge pull request #1662 from xwings/dev

    refine ARCHITECTURE file
    xwings authored Sep 7, 2026
    Configuration menu
    Copy the full SHA
    1e0df0b View commit details
    Browse the repository at this point in the history
  3. Merge pull request #1661 from retrocpugeek/fix/cpu-exception-sigill

    Terminate the emulated process on an illegal-instruction CPU exception
    xwings authored Sep 7, 2026
    Configuration menu
    Copy the full SHA
    0a13c24 View commit details
    Browse the repository at this point in the history

Commits on Sep 13, 2026

  1. Configuration menu
    Copy the full SHA
    dc64903 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    09fb5fb View commit details
    Browse the repository at this point in the history
  3. Merge pull request #1664 from xwings/dev

    Dev
    xwings authored Sep 13, 2026
    Configuration menu
    Copy the full SHA
    86b8124 View commit details
    Browse the repository at this point in the history

Commits on Sep 23, 2026

  1. updated ARCHITECTURE files

    xwings committed Sep 23, 2026
    Configuration menu
    Copy the full SHA
    e1dafd3 View commit details
    Browse the repository at this point in the history

Commits on Sep 24, 2026

  1. Configuration menu
    Copy the full SHA
    903f254 View commit details
    Browse the repository at this point in the history
  2. Merge pull request #1669 from xwings/dev

    Up ARCHITECTURE docs
    xwings authored Sep 24, 2026
    Configuration menu
    Copy the full SHA
    23ad4fd View commit details
    Browse the repository at this point in the history
Loading