patchless amsi学习(下)

news2024/11/24 14:29:16

patchless amsi

代码参考:https://gist.github.com/CCob/fe3b63d80890fafeca982f76c8a3efdf

解读代码可以从函数入口开始

setupAMSIBypass这个函数前面主要是获取amsiScanBuffer的地址,随即注册了一个veh异常。

然后通过调用GetThreadContext获取到了当前线程的context,这里作者用了一个小技巧:用(HANDLE)-2代替了GetCurrentThread()

然后调用enableBreakpoint下了一个硬件断点,这里我们先跟进这个函数。

这个函数最后一个参数实际上就是选择用哪个调试寄存器(DR0-3)做断点

setBits可以设置Dr7的一些位数控制Dr0-3的属性。

比如这里是将DR0-DR3的触发条件为执行,并且将DRx的触发设置为当前模式,也就是仅对当前线程有效。

enableBreakpoint(threadCtx, g_amsiScanBufferPtr, 0);

enableBreakpoint传递的参数是amsiScanBuffer的地址,当前线程和DR0,那么当执行amsiScanBuffer函数时,就会触发硬件断点。产生一个EXCEPTION_SINGLE_STEP异常。

我们注册的veh函数将会第一个进行处理

首先确定了是该异常,并且该异常产生的地址为amsiScanBuffer的地址。

returnAddress首先是拿到了amsiScanBuffer执行结束后的返回地址,也就是触发断点时刻的rsp。

scanResult是对amsiScanBuffer的第六个参数进行赋值。

Syntax

通过x64调用约定来看result此时应该在栈中的rsp+0x30的位置,他这里getArg的index参数传的5,是一样的

然后将此值清0。

然后将rip直接指回了返回地址,此时若是继续执行相当于直接跳过了amsiScanBuffer,但是这里堆栈肯定是不平衡的,由于是call进去的,所以这里相当于要pop一下,堆栈下移,rsp+8,这时adjustStackPointer函数做的事情。

堆栈也平衡了,将rax(返回值)也改为0

总结

此方式通过进程执行amsiScanBuffer的时候,动态更改amsiScanBuffer的返回结果和第六个参数来控制返回结果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1321612.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

解决docker拉取镜像报错:Error response from daemon: Get “https://registry-1.docker.io/v2/“: dial tcp

1、问题:今天做完一个新项目,搭建了一个新的虚拟机,打算使用docker来搭建各种环境,发现拉取镜像报错 2、报错信息:Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp 如下&am…

我从阿里云学到的返回值处理技巧

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO 联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬 阿里云CosmoController…

【办公软件】C# NPOI 操作Excel 案例

文章目录 1、加入NPOI 程序集,使用nuget添加程序集2、引用NPOI程序集3、设置表格样式4、excel加载图片5、导出excel 1、加入NPOI 程序集,使用nuget添加程序集 2、引用NPOI程序集 private IWorkbook ExportExcel(PrintQuotationOrderViewModel model){//…

算法通关村第十关—快速排序(青铜)

快速排序 快排的基本过程 快速排序是将分治法运用到排序问题的典型例子  快速排序基本思想是:通过一个标记pivot元素将n个元素的序列划分为左右两个子序列left和right,.其中left中的元素都比pivot小,right的都比pivot的大,然后再次对Ieft和r…

企业办公加密系统中——全透明加密和半透明加密的区别

PC端访问地址: www.drhchina.com 天锐绿盾数据防泄密系统中的全透明加密和半透明加密的区别如下: 全透明加密是采用驱动层动态加解密技术,对企业内部所有涉密文档进行强制加密处理,从文件创建开始即可自动加密保护。加密文档在加…

【思扬赠书 | 第1期】教你如何一站式解决OpenCV工程化开发痛点

⛳️ 写在前面参与规则 ✅参与方式:关注博主、点赞、收藏、评论,任意评论(每人最多评论三次)⛳️本次送书1~3本【取决于阅读量,阅读量越多,送的越多】思扬赠书 | 第1期活动开始了!!…

十问ByteHouse:如何基于ClickHouse玩转向量检索?

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 向量检索被广泛使用于以图搜图、内容推荐以及大模型推理等场景。随着业务升级与 AI 技术的广泛使用,用户期望处理的向量数据规模越来越大,对…

【SpringCloudAlibaba】Sentinel熔断限流工具的使用

一、前言 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维…

增强的对象文字

首先看一下我们之前的一个餐厅的对象 const restaurant {name: Classico Italiano,location: Via Angelo Tavanti 23, Firenze, Italy,categories: [Italian, Pizzeria, Vegetarian, Organic],starterMenu: [Focaccia, Bruschetta, Garlic Bread, Caprese Salad],mainMenu: […

element组件库的日期选择器如何限制?

本次项目中涉及到根据日期查找出来的数据进行调整,所以修改的数据必须是查找范围内的数据.需要对调整数据的日期进行限制,效果如下: 首先我们使用了element 组件库的日期选择器,其中灌完介绍, picker-options中函数disabledDate可以设置禁用状态,代码如下: <el-date-pickerv…

Oracle11g登录方法

刚部署完Oracle11g可以使用如下方法登录 方法1 sqlplus sys/oracle as sysdba; 用系统用户登录 create user xy identified by test123; 创建用户 grant connect, resource,dba to xy; 授予权限 之后退出执行sqlplus登录命令 使用创建的用户登录 方法2 sqlplus ---登录…

网络工程师常用协议之ICMP协议原理与应用

Internet控制消息协议ICMP&#xff08;Internet Control Message Protocol&#xff09;是网络层的一个重要协议。ICMP协议用来在网络设备间传递各种差错和控制信息&#xff0c;并对于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。使用基于ICMP的应用时&…

java SSM教师业绩管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM教师业绩管理系统是一套完善的web设计系统&#xff08;系统采用SSM框架进行设计开发&#xff0c;springspringMVCmybatis&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代 码和数据库&#xff0c;系统主要采…

HTML有哪些列表以及具体的使用!!!

文章目录 一、HTML列表二、列表的应用1、无序列表2、有序列表3、自定义列表 三、总结 一、HTML列表 html的列表有三种&#xff0c;一种是无序列表&#xff0c;一种是有序列表&#xff0c;还有一种为自定义列表。 二、列表的应用 1、无序列表 <ul> <li>无序列表…

基于CNN+数据增强+残差网络Resnet50的少样本高准确度猫咪种类识别—深度学习算法应用(含全部工程源码)+数据集+模型(二)

系列文章目录 基于CNN数据增强残差网络Resnet50的少样本高准确度猫咪种类识别—深度学习算法应用(含全部工程源码)数据集模型&#xff08;一&#xff09; 基于CNN数据增强残差网络Resnet50的少样本高准确度猫咪种类识别—深度学习算法应用(含全部工程源码)数据集模型&#xf…

社交心理学视角下的TikTok:用户是如何被吸引的?

TikTok作为一款风靡全球的短视频应用&#xff0c;成功吸引了数以亿计的用户。这引发了一个问题&#xff0c;TikTok到底具有何种魅力&#xff0c;是如何在社交心理学层面吸引用户的呢&#xff1f;本文将从社交心理学的角度出发&#xff0c;深入剖析TikTok的吸引力因素&#xff0…

理性消费成主流!国台国标酒高性价比火热出圈

近日&#xff0c;国台酒业集团获得2023财联社第六届投资年会“年度最具价值品牌奖”。2023年国台品牌价值达2062.68亿元&#xff0c;稳居中国白酒第十名、贵州白酒第三名。 随着酱酒龙头企业官宣提高出厂价&#xff0c;高品质酱酒进一步被市场关注&#xff0c;同样源于茅台镇核…

某音上很火的圣诞树分享

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 效果截图&#xff08;这里不给动态了&#xff0c;某音到处都是了&#xff09;&#xff1a; 源代码&#xff1a; <script src"…

hive企业级调优策略之Join优化

测试所用到的数据参考&#xff1a; 原文链接&#xff1a;https://blog.csdn.net/m0_52606060/article/details/135080511 本教程的计算环境为Hive on MR。计算资源的调整主要包括Yarn和MR。 Join算法概述 Hive拥有多种join算法&#xff0c;包括Common Join&#xff0c;Map …

【离散数学】——期末刷题题库(树其一)

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…