Qiling:功能强大的高级代码模拟框架,工具由Unicorn引擎驱动,跨平台支持,跨架构支持,多文件结构支持
摘要:Qiling是一款功能强大的高级代码模拟框架,工具由Unicorn引擎驱动,跨平台支持,跨架构支持,多文件结构支持。
Qiling是功能强大的高级代码仿真框架。 该工具由Unicorn引擎驱动,具有以下功能:
1.跨平台支持:Windows,macOS,Linux,BSD;
2.跨体系结构支持:x86,x86_64,ARM,ARM64等;
3.多文件结构支持:PE,MachO,ELF;
4.在隔离的环境中模拟沙盒系统代码;
5.提供高级API来安装和配置沙箱环境;
6.细粒度显示:允许设置多个级别的钩子(指令/基本块/内存访问/异常/系统调用/ 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用户模式只支持Linu 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 engine ql = Qiling(path, rootfs) # now emulate the EXE ql.run()if __name__ == "__main__": # execute Windows EXE under our rootfs my_sandbox(["examples/rootfs/x86_windows/bin/x86-windows-hello.exe"], "examples/rootfs/x86_windows")
在下面的示例中,我们将演示如何使用Qiling框架动态修复Windows Crackme并在“祝贺”对话框中显示相关信息:
from qiling import *def force_call_dialog_func(ql): # get DialogFunc address lpDialogFunc = ql.unpack32(ql.mem_read(ql.sp - 0x8, 4)) # setup stack memory for DialogFunc ql.stack_push(0) ql.stack_push(1001) ql.stack_push(273) ql.stack_push(0) ql.stack_push(0x0401018) # force EIP to DialogFunc ql.pc = lpDialogFuncdef my_sandbox(path, rootfs): ql = Qiling(path, rootfs) # 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(0x00401016, force_call_dialog_func) ql.run()if __name__ == "__main__": my_sandbox(["rootfs/x86_windows/bin/Easy_CrackMe.exe"], "rootfs/x86_windows")
Qltool
Qiling还提供了一个强大的工具qltool,它可以帮助我们快速模拟目标Shellcode或可执行文件的源代码。
以下命令可以直接模拟目标源代码:
$ ./qltool run -f examplesarm_linuxarm32-hello --rootfs examplesarm_linux/
要模拟Shellcode,您需要运行以下命令:
$ ./qltool shellcode --os linux --arch x86 --asm -f examples/shellcodes/lin32_execve.asm
相关热词搜索:Qiling 高级代码模拟框架 Unicorn引擎驱动 跨平台支持 跨架构支持 多文件结构支持 重庆软件开发
上一篇:GDA:新型反编译工具,基于C++开发,方便使用运行速度非常快,支持APK,DEX,OBED和oat文件格式。
下一篇:网络安全之医疗行业的潜在网络安全风险:勒索软件,挖矿木马
人机验证(Captcha)绕过方法:使用Chrome开发者工具在目标网站登录页面上执行简单的元素编辑,以实现Captcha绕过
牛创网络: " 人机身份验证(Captcha)通常显示在网站的注册,登录名和密码重置页面上。 以下是目标网站在登录页面中排列的验证码机制。 从上图可以
2020-01-26 12:44:09 )8872( 亮了
自动发现IDOR(越权)漏洞的方法:使用BurpSuite中的Autozie和Autorepeater插件来检测和识别IDOR漏洞,而无需手动更改每个请求的参数
牛创网络: "自动发现IDOR(越权)漏洞的方法:使用BurpSuite中的Autozie和Autorepeater插件来检测和识别IDOR漏洞,而无需手动更改每个请求的参数
2020-01-30 14:04:47 )6288( 亮了
Grafana CVE-2020-13379漏洞分析:重定向和URL参数注入漏洞的综合利用可以在任何Grafana产品实例中实现未经授权的服务器端请求伪造攻击SSRF
牛创网络: "在Grafana产品实例中,综合利用重定向和URL参数注入漏洞可以实现未经授权的服务器端请求伪造攻击(SSRF)。该漏洞影响Grafana 3 0 1至7 0 1版本。
2020-08-12 14:26:44 )4301( 亮了
Nginx反向代理配置及反向代理泛目录,目录,全站方法
牛创网络: "使用nginx代理dan(sui)是http响应消息写入服务地址或Web绝对路径的情况。 写一个死的服务地址是很少见的,但它偶尔也会发生。 最棘手的是写入web绝对路径,特别是如果绝对路径没有公共前缀
2019-06-17 10:08:58 )3858( 亮了
fortify sca自定义代码安全扫描工具扫描规则(源代码编写、规则定义和扫描结果展示)
牛创网络: "一般安全问题(例如代码注入漏洞),当前fortify sca规则具有很多误报,可通过规则优化来减少误报。自带的扫描规则不能检测到这些问题。 需要自定义扫描规则,合规性角度展示安全风险。
2020-02-12 10:49:07 )3505( 亮了
整理几款2020年流行的漏洞扫描工具
牛创网络: "漏洞扫描器就是确保可以及时准确地检测信息平台基础架构的安全性,确保业务的平稳发展,业务的高效快速发展以及公司,企业和国家 地区的所有信息资产的维护安全。
2020-08-05 14:36:26 )2536( 亮了
微擎安装使用技巧-微擎安装的时候页面显示空白是怎么回事?
牛创网络: "我们在公众号开发中,有时候会用到微擎,那我们来看一下微擎安装的时候页面显示空白是怎么回事吧
2019-06-08 15:34:16 )2261( 亮了
渗透测试:利用前端断点拦截和JS脚本替换对前端加密数据的修改
牛创网络: " 本文介绍的两种方法,虽然断点调试比JS脚本代码替换更容易,但是JS脚本代码替换方法可以实现更强大的功能,测试人员可以根据实际需要选择适当的测试方法
2020-01-07 09:34:42 )1995( 亮了
从工业界到学界盘点SAS与R优缺点比较
牛创网络: "虽然它在业界仍然由SAS主导,但R在学术界广泛使用,因为它的免费开源属性允许用户编写和共享他们自己的应用程序 然而,由于缺乏SAS经验,许多获得数据分析学位的学生很难找到工作。
2019-07-13 22:25:29 )1842( 亮了
41款APP侵犯用户隐私权:QQ,小米,搜狐,新浪,人人均被通报
牛创网络: "随着互联网的不断发展,我们进入了一个时代,每个人都离不开手机。 但是,APP越来越侵犯了用户隐私权。12月19日,工业和信息化部发布了《关于侵犯用户权益的APP(第一批)》的通知。
2019-12-20 11:28:14 )1775( 亮了