You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Support Windows Driver (.sys), Linux Kernel Module (.ko) & MacOS Kernel (.kext) via [Demigod](https://groundx.io/demigod/)
16
17
- Emulates & sandbox machine code in an isolated environment
17
18
- Provides a fully configurable sandbox
18
19
- Provides in-dept memory, register, OS level and filesystem level API
19
20
- Fine-grain instrumentation: allows hooks at various levels (instruction/basic-block/memory-access/exception/syscall/IO/etc)
20
-
- Provides virtual machine level API such as save and restore current execution state.
21
+
- Provides virtual machine level API such as save and restore current execution state
21
22
- Supports cross architecture and platform debugging capabilities
22
23
- Built-in debugger with reverse debugging capability
23
24
- Allows dynamic hotpatch on-the-fly running code, including the loaded library
24
25
- True framework in Python, making it easy to build customized security analysis tools on top
25
26
26
-
Qiling also made its way to various international conferences
27
+
Qiling also made its way to various international conferences.
27
28
28
29
2020:
29
30
@@ -59,17 +60,17 @@ There are many open source emulators, but two projects closest to Qiling are [Un
59
60
60
61
Built on top of Unicorn, but Qiling & Unicorn are two different animals.
61
62
62
-
- Unicorn is just a CPU emulator, so it focuses on emulating CPU instructions, that can understand emulator memory. Beyond that, Unicorn is not aware of higher level concepts, such as dynamic libraries, system calls, I/O handling or executable formats like PE, MachO or ELF. As a result, Unicorn can only emulate raw machine instructions, without Operating System (OS) context.
63
-
- Qiling is designed as a higher level framework, that leverages Unicorn to emulate CPU instructions, but can understand OS: it has executable format loaders (for PE, MachO & ELF at the moment), dynamic linkers (so we can load & relocate shared libraries), syscall & IO handlers. For this reason, Qiling can run executable binary without requiring its native OS.
63
+
- Unicorn is just a CPU emulator, so it focuses on emulating CPU instructions, that can understand emulator memory. Beyond that, Unicorn is not aware of higher level concepts, such as dynamic libraries, system calls, I/O handling or executable formats like PE, MachO or ELF. As a result, Unicorn can only emulate raw machine instructions, without Operating System (OS) context
64
+
- Qiling is designed as a higher level framework, that leverages Unicorn to emulate CPU instructions, but can understand OS: it has executable format loaders (for PE, MachO & ELF at the moment), dynamic linkers (so we can load & relocate shared libraries), syscall & IO handlers. For this reason, Qiling can run executable binary without requiring its native OS
64
65
65
66
##### Qiling vs Qemu usermode
66
67
67
68
Qemu usermode does similar thing to our emulator, that is to emulate whole executable binaries in cross-architecture way. However, Qiling offers some important differences against Qemu usermode.
68
69
69
-
- Qiling is a true analysis framework, that allows you to build your own dynamic analysis tools on top (in friendly Python language). Meanwhile, Qemu is just a tool, not a framework.
70
-
- Qiling can perform dynamic instrumentation, and can even hotpatch code at runtime. Qemu does not do either.
71
-
- Not only working cross-architecture, Qiling is also cross-platform, so for example you can run Linux ELF file on top of Windows. In contrast, Qemu usermode only run binary of the same OS, such as Linux ELF on Linux, due to the way it forwards syscall from emulated code to native OS.
72
-
- Qiling supports more platforms, including Windows, MacOS, Linux & BSD. Qemu usermode can only handle Linux & BSD.
70
+
- Qiling is a true analysis framework, that allows you to build your own dynamic analysis tools on top (in friendly Python language). Meanwhile, Qemu is just a tool, not a framework
71
+
- Qiling can perform dynamic instrumentation, and can even hotpatch code at runtime. Qemu does not do either
72
+
- Not only working cross-architecture, Qiling is also cross-platform, so for example you can run Linux ELF file on top of Windows. In contrast, Qemu usermode only run binary of the same OS, such as Linux ELF on Linux, due to the way it forwards syscall from emulated code to native OS
73
+
- Qiling supports more platforms, including Windows, MacOS, Linux & BSD. Qemu usermode can only handle Linux & BSD
73
74
74
75
---
75
76
@@ -80,7 +81,7 @@ Please see [setup guide](https://docs.qiling.io/en/latest/install/) file for how
80
81
81
82
#### Examples
82
83
83
-
- Below example shows how to use Qiling framework to emulate a Windows EXE on a Linux machine.
84
+
- Below example shows how to use Qiling framework to emulate a Windows EXE on a Linux machine
0 commit comments