Implement multi-architecture support in libdebug that is based on qemu user. Ideally, libdebug should do the following:
Understand the binary's architecture or take it from a variable manually set by the user.
Determine when the binary cannot be natively executed on the host system.
Run the binary using the correct version of qemu.
Debug the process emulated by qemu.
The implementation must not go through the GDB server that can be spawned by qemu. Therefore, it is necessary to develop a strategy to debug the process emulated by qemu in a meaningful and reliable way.
The first step, therefore, is a thorough study of qemu, its operation, and the limitations that lead qemu not to have ptrace implemented (https://qemu-devel.nongnu.narkive.com/3OHTvVB6/regarding-ptrace-implementation-in-qemu-user-mode#) and possible workarounds (both already provided in qemu, and to be invented).
Implement multi-architecture support in libdebug that is based on qemu user. Ideally, libdebug should do the following:
The implementation must not go through the GDB server that can be spawned by qemu. Therefore, it is necessary to develop a strategy to debug the process emulated by qemu in a meaningful and reliable way. The first step, therefore, is a thorough study of qemu, its operation, and the limitations that lead qemu not to have ptrace implemented (https://qemu-devel.nongnu.narkive.com/3OHTvVB6/regarding-ptrace-implementation-in-qemu-user-mode#) and possible workarounds (both already provided in qemu, and to be invented).