str指令用来从任务寄存器中检索段选择子 , 段选择子指向当前运行任务的任务状态段(TSS)
恶意代码编写者可以利用str指令探测虚拟机的存在 , 因为这条指令返回的值 , 在虚拟机系统与宿主系统可能不同(这种技术对于多处理器的硬件无效)
Lab17-1
这里先写一个idc脚本 , 在程序中搜索相关反虚拟的指令 , 然后输出对应的地址 。
文章插图
这里可以看到有三个地址 , 三个地方存在反虚拟的指令401121 , 4011b5,401204
文章插图
先去401121 , 可以看到是sldt
文章插图
之后对sldt之后值进行了一个比较 , 应对方法 , nop掉
文章插图
再去4011b5,可以看到这里是sidt.
文章插图
这里是对结果的一个检测 , 也可以通过nop的方式解决 。
文章插图
接下来是str.
文章插图
之后是检测 , 也是nop
文章插图
Lab17-2
这次只关注反虚拟化的操作 。
文章插图
这里用之前写好的idc脚本 , 找到了一个地址 。
文章插图
可以看到是in
文章插图
文章插图
这里也可以用nop处理
Lab17-3
放入ida中查看 。
文章插图
用之前的idc脚本查找
文章插图
可以查到一个地址
文章插图
是I/O查找
推荐阅读
- 当大厂程序员已开始用AI写代码 人类会被AIGC淘汰吗?
- C/C++的8种时间度量方式以及代码片段
- |车珠子有瘾?高端大气和田玉手串!让您一次看过瘾!
- 端午节有什么活动
- 高考|职校老师自掏腰包发红包引导学生学习兴趣,家长批评老师恶意诱导
- 中国网络经纪人登录58?房产中介经纪人怎么在网上开58端口?
- 端午节的寓意和意义~~端午节的寓意和内涵?
- 招聘|在为年终复盘抓狂吗?华为笔记本超级终端打造智慧化“职场利器”
- 前端开发和UI有什么区别 前端ui库
- 大学生|大学毕业去当高端家政,住豪宅、开飞机,到头来被说是高学历丫鬟