Qiling의 usecase, 블로그 및 관련 작업
Qiling은 다음과 같은 기능을 갖춘 고급 이진 에뮬레이션 프레임 워크입니다.
Qiling은 또한 다양한 국제 회의로 향했습니다.
2022 :
2021 :
2020 :
2019 년
Qiling은 유니콘 엔진으로 뒷받침됩니다.
자세한 내용은 웹 사이트 https://www.quiling.io를 방문하십시오.
이 프로젝트는 무료 소프트웨어 라이센스 GPLV2 및 이후 버전으로 출시 및 배포됩니다.
오픈 소스 에뮬레이터가 많이 있지만 Qiling과 가장 가까운 두 프로젝트는 Unicorn & Qemu Usermode입니다. 이 섹션에서는 Qiling의 주요 차이점에 대해 설명합니다.
유니콘 위에 지어졌지만 Qiling & Unicorn은 두 개의 다른 동물입니다.
QEMU Usermode는 우리의 에뮬레이터와 비슷한 일을합니다. 그러나 Qiling은 QEMU usermode에 대해 몇 가지 중요한 차이점을 제공합니다.
Qiling Framework를 설치하는 방법은 설정 가이드 파일을 참조하십시오.
from qiling import Qiling
if __name__ == "__main__" :
# initialize Qiling instance, specifying the executable to emulate and the emulated system root.
# note that the current working directory is assumed to be Qiling home
ql = Qiling ([ r'examples/rootfs/x86_windows/bin/x86_hello.exe' ], r'examples/rootfs/x86_windows' )
# start emulation
ql . run () from qiling import Qiling
def force_call_dialog_func ( ql : Qiling ):
# get DialogFunc address from current stack frame
lpDialogFunc = ql . stack_read ( - 8 )
# setup stack memory for DialogFunc
ql . stack_push ( 0 )
ql . stack_push ( 1001 ) # IDS_APPNAME
ql . stack_push ( 0x111 ) # WM_COMMAND
ql . stack_push ( 0 )
# push return address
ql . stack_push ( 0x0401018 )
# resume emulation from DialogFunc address
ql . arch . regs . eip = lpDialogFunc
if __name__ == "__main__" :
# initialize Qiling instance
ql = Qiling ([ r'rootfs/x86_windows/bin/Easy_CrackMe.exe' ], r'rootfs/x86_windows' )
# NOP out some code
ql . patch ( 0x004010B5 , b' x90 x90 ' )
ql . patch ( 0x004010CD , b' x90 x90 ' )
ql . patch ( 0x0040110B , b' x90 x90 ' )
ql . patch ( 0x00401112 , b' x90 x90 ' )
# hook at an address with a callback
ql . hook_address ( force_call_dialog_func , 0x00401016 )
ql . run ()아래 YouTube 비디오는 위의 예제가 어떻게 작동하는지 보여줍니다.


Qiling은 또한 qltool 이라는 친근한 도구를 제공하여 Shellcode 및 실행 가능한 바이너리를 신속하게 모방합니다.
qltool을 사용하면 쉽게 실행할 수 있습니다.
Shellcode와 함께 :
$ ./qltool code --os linux --arch arm --format hex -f examples/shellcodes/linarm32_tcp_reverse_shell.hex
이진 파일로 :
$ ./qltool run -f examples/rootfs/x8664_linux/bin/x8664_hello --rootfs examples/rootfs/x8664_linux/
이진 및 GDB 디버거를 사용하여 활성화
$ ./qltool run -f examples/rootfs/x8664_linux/bin/x8664_hello --gdb 127.0.0.1:9999 --rootfs examples/rootfs/x8664_linux
코드 커버리지 컬렉션 (현재 UEFI 만) :
$ ./qltool run -f examples/rootfs/x8664_efi/bin/TcgPlatformSetupPolicy --rootfs examples/rootfs/x8664_efi --coverage-format drcov --coverage-file TcgPlatformSetupPolicy.cov
JSON 출력 (주로 Windows) :
$ ./qltool run -f examples/rootfs/x86_windows/bin/x86_hello.exe --rootfs examples/rootfs/x86_windows/ --console False --json
웹 사이트 https://www.quiling.io에서 최신 정보를 얻으십시오
이메일 [email protected] 또는 Twitter @Qiling_io 또는 Weibo를 통해 당사에 문의하십시오.
Credits.md를 참조하십시오