亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Qiling是一款什么框架

發布時間:2021-12-27 14:18:31 來源:億速云 閱讀:164 作者:小新 欄目:數據安全

這篇文章主要為大家展示了“Qiling是一款什么框架”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Qiling是一款什么框架”這篇文章吧。

Qiling是一款功能強大的高級代碼模擬框架,該工具由Unicorn引擎驅動,并且擁有下列功能:

1、跨平臺支持:Windows、macOS、Linux、BSD;

2、跨架構支持:x86、x86_64、ARM、ARM64等等;

3、多文件結構支持:PE、MachO、ELF;

4、在隔離環境中模擬&沙盒系統代碼;

5、提供高級API來安裝和配置沙盒環境;

6、細粒度顯示:允許設置多種級別的鉤子(instruction/basic-block/memory-access/exception/syscall/IO等等);

7、允許動態修補運行中的程序代碼,包括已加載的庫;

8、Python框架支持,允許構建和定制安全分析工具;

Qiling與其他模擬器對比

目前,社區有很多開源的模擬器,最接近Qiling的就是Unicorn和Qemu了。

Qiling vs Unicorn引擎

雖然Qiling 時基于Unicorn實現的,但是它們兩個完全不同:

1、Unicorn只是一個CPU模擬器,它主要針對的是模擬CPU指令。Unicorn無法識別高級概念,例如動態庫、系統調用、I/O處理或類似PE、MachO或ELF這樣的可執行文件格式。因此,Unicorn只能夠模擬原始設備指令,無法適用于操作系統上下文場景。

2、Qiling是一個高級框架,它可以利用Unicorn來模擬CPU指令,但是它同樣可以理解操作系統上下文,它集成了可執行文件格式加載器、動態鏈接、系統調用和I/O處理器。更重要的是,Qiling可以在不需要原生操作系統的環境下運行可執行文件源碼。

Qiling vs Qemu用戶模式

Qemu用戶模式跟我們的Qiling類似,它可以跨架構模擬整個可執行文件的源碼。但是,Qiling的不同之處在于:

1、Qiling是一個真正的分析框架,它允許我們構建自己的動態分析工具(使用Python)。除此之外,Qemu只是一款工具,而不是一個框架。

2、Qiling可以執行動態指令,并且能夠在運行時進行代碼修補,這一點Qemu就無法做到了。

3、Qiling支持跨平臺,但是Qemu用戶模式只能在與源代碼環境相同的操作系統上使用。

4、Qiling支持更多的平臺,包括Windows、macOS、Linux&BSD,但Qemu用戶模式只支持Linux&BSD。

工具安裝

廣大研究人員可以使用下列命令安裝Qiling(注意:安裝前請搭建好Python 3環境):

python3 setup.py install

工具使用樣例

在下面的例子中,我們將演示如何使用Qiling框架來在一臺Linux設備上模擬目標Windows可執行文件:

from qiling import *# sandbox to emulate the EXEdef my_sandbox(path, rootfs):# setup Qiling engineql = Qiling(path, rootfs)# now emulate the EXEql.run()if __name__ == "__main__":# execute Windows EXE under our rootfsmy_sandbox(["examples/rootfs/x86_windows/bin/x86-windows-hello.exe"], "examples/rootfs/x86_windows")

在下面的例子中,我們將演示如何使用Qiling框架對Windows crackme進行動態修復,并在“Congratulation”對話框中顯示相關信息:

from qiling import *def force_call_dialog_func(ql):# get DialogFunc addresslpDialogFunc = ql.unpack32(ql.mem_read(ql.sp - 0x8, 4))# setup stack memory for DialogFuncql.stack_push(0)
    ql.stack_push(1001)
    ql.stack_push(273)
    ql.stack_push(0)
    ql.stack_push(0x0401018)# force EIP to DialogFuncql.pc = lpDialogFuncdef my_sandbox(path, rootfs):
    ql = Qiling(path, rootfs)# NOP out some codeql.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 callbackql.hook_address(0x00401016, force_call_dialog_func)
    ql.run()if __name__ == "__main__":
    my_sandbox(["rootfs/x86_windows/bin/Easy_CrackMe.exe"], "rootfs/x86_windows")

工具演示視頻

Qiling DEMO 1:動態修復Windows crackme

視頻地址:https://v.qq.com/x/page/m3061ozrz3s.html

Wannacry  DEMO:如何使用Qiling分析Wannacry惡意軟件

視頻地址:https://v.qq.com/x/page/h4061l4445g.html

Qltool

Qiling還提供了一個名為qltool的強大工具,它可以幫助我們快速模擬出目標Shellcode或可執行文件的源碼。

下面這條命令可以直接對目標源碼進行模擬:

$ ./qltool run -f examples/rootfs/arm_linux/bin/arm32-hello --rootfs examples/rootfs/arm_linux/

如需模擬Shellcode,則需要運行下列命令:

$ ./qltool shellcode --os linux --arch x86 --asm -f examples/shellcodes/lin32_execve.asm

許可證協議

Qiling項目的開發與發布遵循GPLv2開源許可證協議

以上是“Qiling是一款什么框架”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新兴县| 亳州市| 汶川县| 阆中市| 东乡族自治县| 乌拉特中旗| 东兰县| 万宁市| 竹溪县| 韶山市| 东乡族自治县| 沂南县| 德化县| 蒙自县| 佛坪县| 松桃| 太康县| 苍山县| 九龙坡区| 翁源县| 诸城市| 湟中县| 舟山市| 木里| 洱源县| 施秉县| 金华市| 郓城县| 红安县| 微山县| 荥阳市| 江阴市| 乌兰浩特市| 大石桥市| 西贡区| 马山县| 阿城市| 手游| 民勤县| 清水县| 周宁县|