针对IDS的逃避技术与相关对策

远程溢出实验 远程溢出 【实验目的】 1、掌握远程溢出的基本原理; 2、掌握实现远程溢出的基本手段。 【实验环境】 同学A:运行server.exe 同学B:运行exploit.exe(命令格式:exploit.exe ipaddress 8888) 备注:同学A、B分别登录windows靶机,运行程序在D盘->攻防工具包->远程溢出 【实验预备知识点】 远程缓冲区溢出原理和本地缓冲区溢出原理一样,不同之处在于远程缓冲区溢出需要利用套接口进行远程连接。本小节通过一个例子来分析远程缓冲区溢出的工作原理和攻击过程 阅读详情

在网络蓬勃发展的几天,网络安全问题日益突出。网络上的黑、白两道在网络安全的各个领域都展开了激烈的竞争。黑帽社团不断推出躲避或者越过网络入侵检测系统(Network Intrusion Detection System,NIDS)的新技术,而NIDS的开发者不断地在自己的产品中加入对这些技术的检测。但是,由于NIDS本身的局限性,胜利的天平正在向黑帽子倾斜。本文将讨论一些基本的IDS躲避技术,以及如何识破这些技术。

1.字符串匹配的弱点

针对基本字符串匹配弱点的IDS躲避技术是最早被提出和实现的。一些基于特征码的入侵检测设备几乎完全依赖于字符串匹配算法,而对于一个编写很差的特征码,攻击者可以轻松地破坏对其的字符串匹配。虽然不是所有的入侵检测系统都是纯粹基于特征码检测的,但是绝大多数对字符串匹配算法有很大的依赖。这里,我们将使用开放源码工具snort的特征码来进行讨论。

在UNIX系统中,/etc/passwd是一个重要的文件,它包含用户名、组成员关系和为用户分配的shell等信息。我们就从监视对/etc/passwd文件的访问开始,下面是用于检测的snort检测规则:

 

alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS 80 (msg:"WEB-MISC /etc/passwd"; 
flags: A+; content:"/etc/passwd"; nocase; classtype:attempted-recon; sid:1122;rev:1)

snort使用字符串匹配算法对包含特征码(/etc/passwd)的HTTP请求进行检测。但是,这个规则的特征码过于简单了,攻击者修改攻击字符串可以很轻松地逃过检测(我们暂时不考虑攻击请求是通过HTTP发出的)。例如,把攻击请求由GET /etc/passwd改为GET /etc/////passwd,或者GET /etc/rc.d/.././/passwd,修改方式简直不计其数。这是最基本的娶亲检测逃避技术,对这种技术的检测也相对容易一些,只要在编写特征码时能够仔细考虑一下攻击可能出现的变体。目前大多数流行入侵检测系统都有非常强大的字符串匹配能力,足以检测此类攻击的大多数变体。不过,仍然有些编写不太好的特征码可以给攻击者以可乘之机。

攻击者还可以在此基础上再加以变化,几乎不费吹灰之力就可以加大入侵检测系统的防御难度。例如在telnet之类的交互会话中,攻击者企图读取/etc/passwd文件。通常,入侵检测系统中存在很多特征码一些误用操作和后门等,但是这些特征码一般只包含黑客工具名、文件名和程序名。在获得/etc/passwd文件的内容时,我们不直接输入cat /etc/passwd等命令行,而是通过一个命令解释器(例如:perl)来实现我们的目的:

 

badguy@host$ perl -e 
  ‘$foo=pack(“C11”,47,101,116,99,47,112,97,115,115,119,100); 
  @bam=`/bin/cat/ $foo`; print”@bam/n”;’

从这个命令中,入侵检测系统根本就不会重组出/etc/passwd这些字符。显然,防御这种攻击就很困难了,因为这要求入侵检测系统必须能够理解这种解释器如何收到的命令,这恐怕不太现实。当然,入侵检测系统也可以对使用解释器的可疑行为进行报警,但是它很难对攻击行为进行精确的监视。

通过把字符串处理技术和字符替换技术结合到一起,我们可疑实现更复杂的字符串伪装。对于WEB请求,我们不必使用命令解释器,在我们的请求中使用16进制的URL即可,以下的请求可以被目标WEB服务器解释为/etc/passwd:

 

GET %65%74%63/%70%61%73%73%77%64

或者

 

GET %65%74%63/%70a%73%73%77d

为了捕获这一个字符串的所有变体,你可能需要1000个以上的特征码进行字符串匹配,这还没有考虑UNICODE。UNICODE提供了另一种字符表达方式。有关UNICODE的IDS欺骗技术细节,本文将不多做讨论。如果想了解更多细节请参考SecurityFocus的IDS Evasion with Unicode。除此之外,RainForestPuppy在他的HTTP扫描工具Whisker中采用了另外一些IDS欺骗技术:

 

-I 1 IDS-evasive mode 1 (URL编码) 
-I 2 IDS-evasive mode 2 (/./目录插入) 
-I 3 IDS-evasive mode 3 (过早结束URL) 
-I 4 IDS-evasive mode 4 (长URL) 
-I 5 IDS-evasive mode 5 (伪造参数) 
-I 6 IDS-evasive mode 6 (TAB分割) (not NT/IIS) 
-I 7 IDS-evasive mode 7 (大小写敏感) 
-I 8 IDS-evasive mode 8 (Windows分割符) 
-I 9 IDS-evasive mode 9 (会话拼接) (slow) 
-I 0 IDS-evasive mode 0 (NULL方法)

如果想了解上面这些方法的技术细节,可以参考A Look At Whisker's Anti-IDS Tactics。需要特别说明的是,rfp把whisker采用的anti-ids技术单独放到了libwhisker(使用perl编写的)库中,为其它的程序采用这些技术提供了很大的便利。另外,nessus和babelweb等扫描工具都有自己的应用层入侵检测躲避技术。

现在,IDS开发人员对各种网络协议有了更深入的理解,并且入侵检测设备在对数据包的负载进行字符串匹配之前会进行必要的协议分析,因此现在的IDS已经能够很好地处理上述的欺骗技术了。但是多余的字符转换又提高了入侵检测系统的负载,有时是得不偿失。为了减小这个负面影响,开发人员可以使入侵检测系统只在特定的端口进行字符转换。

2.多变shell代码(polymorphic shell code)

多变shell代码(polymorphic shell code)技术由K2开发的,设计思想来源于病毒逃避(virus evasion)技术。使用这种技术重新构造的shell代码更为危险,入侵检测设备非常难以检测到。这种技术只用于缓冲区溢出攻击,对付基于特征码的检测系统非常有效,而对于智能化的或者基于协议分析的检测系统的效果要差很多。为了便于讨论,我们以SSH CRC32缓冲区为例。我们先看以下snort检测规则:

 

alert tcp $EXTERNAL_NET any -> $HOME_NET 22 (msg:"EXPLOIT ssh CRC32 
overflow /bin/sh"; flags:A+; content:"/bin/sh"; reference:bugtraq,2347; 
reference:cve,CVE-2001-0144; classtype:shellcode-detect; sid:1324; rev:1;) 
alert tcp $EXTERNAL_NET any -> $HOME_NET 22 (msg:"EXPLOIT ssh CRC32 
overflow NOOP"; flags:A+; content:"|90 90 90 90 90 90 90 90 90 90 90 90 90 90 90)

上面的第一条规则简单地检查从外部到$HOME_NET,目标端口是22的数据包,搜索里面是否包含字符串/bin/sh。第二条规则是检查是否包含x86空操作字符(0x90)。多变shell代码(polymorphic shell code)使用很多方法逃避字符串匹配系统的检测。首先(以x86架构为例),使用其它的字符代替0x90执行无操作(no-op)指令。对于X86架构,有55种替代方式,其它的要少一些。这些替代方式以一种伪随机的方式结合到一块,建立缓冲区溢出shell代码包含无操作(no-op)指令的部分。除此之外,shell代码本身也采用XOR机制编码。通过这种方式建立的缓冲区溢出shell代码被重组后不会包含以上的特征码,从而能够逃过字符串匹配检测。

多变shell代码检测对基于特征码检测的IDS是一个很大的挑战。Next Generation Security Technologie公司的技术白皮书Polymorphic Shellcodes vs. Application IDSs中提出了一些检测多变shell代码的设想。通过搜索无操作(no-op)字符的一个特定长度的正则表达式,可以实现对多变shell代码的精确检测。最近,Dragos Ruiu发布了一个用于检测多变shell代码的snort预处理插件spp_fnord,这个插件采用了和上面相似的检测技术。这个预处理插件有端口和长度两个配置选项。例如,如果某个人在配置时设置了80、21、23和53等端口,它就只对这几个端口的数据流量进行多变shell代码的检测,而不会对其它端口(例如:22)进行检测。

3.会话拼接(session splicing,叫会话分割更合适一些)

上面讨论的这些方法都是属于攻击数据在一个数据包中的情况,没有涉及攻击数据和会话通过多个数据包投递的情况。RFP在Whisker中实现了一种IDS逃避技术叫作会话拼接(session splicing),就是把会话数据放到多个数据包中发出,例如:

 

+-------------------------+ 
| packet number | content | 
|---------------+---------| 
| 1 | G | 
|---------------+---------| 
| 2 | E | 
|---------------+---------| 
| 3 | T | 
|---------------+---------| 
| 4 | 20 | 
|---------------+---------| 
| 5 | / | 
|---------------+---------| 
| 6 | H | 
+---------------+---------+

通过这种方式,每次只投递几个字节的数据,就可能避开字符串匹配入侵检测系统的监视。要监视这种攻击,需要入侵检测系统或者能够理解、监视网络会话(即使IDS有这种能力,攻击者也可以通过其它的凡是避开监视),或者采用其它的技术监视这种攻击。snort使用以下规则来监视会话拼接:

 

alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS 80 (msg:"WEB-MISC whisker 
space splice attack"; content:"|20|"; flags:A+; dsize:1; 
reference:arachnids,296; classtype:attempted-recon; reference)

这条规则使snort检测目标为$HTTP_SERVERS 80端口的ACK报文的负载长度是否等于1以及是否包含空格(16进制的20)。使用这条规则可以精确地检测出whisker,但是攻击者只要稍加修改就可以避开这个检测。为了能够检测可能出现的会话拼接攻击,可以对上面这条snort规则进行扩展,使其检查负载很短的HTTP请求。但是,这样做的副作用是提高了误报警数量,而且在某些情况下攻击者还是能够避开监视。为了真正有效地检测这种攻击,需要入侵检测系统能够完整地理解网络会话,不过这是非常困难的。应该注意的是目前大多数系统能够重组会话,在所有的会话数据到达之前,它们会等待一些时间。而等待时间的长短与程序有关。例如,Apache/RedHat的会话超时时间是6分钟,IIS/Win2K等待的时间非常长。因此,攻击者完全可以每15分钟发送一个字节的会话数据,而IIS还会认为是有效的会话。最新版本的snort能够监视长期的会话和网络层欺骗,例如:小TTL值。

4.碎片攻击

碎片攻击和会话拼接(session splicing)有点类似。直到最近,很多入侵检测系统在进行字符串匹配之前不能准确地重组碎片。现在这种情况有了改观,所有的入侵检测系统都能够进行某些重组。不过,还是有很多方法可以避开入侵检测系统的监视。碎片重组的问题是在进行字符串匹配以前,入侵检测系统必须在内存中缓存所有的碎片,然后进行重组。而且,他还需要直到、碎片在目的主机会如何重组。Thomas Ptacek and Timoth Newsham于1998年写的Insertion,Evasion and Denial of Service: Eluding Network Intrusion Detection描述了许多基于网络的碎片躲避和其它类型的躲避技术。碎片攻击包括:碎片覆盖、碎片重写、碎片超时和针对网络拓扑的碎片技术(例如使用小的TTL)等。下面,我们将详细讨论。

4.1.碎片覆盖

所谓碎片覆盖就是发送碎片覆盖先前碎片中的数据。例如:

碎片1 GET x.idd

碎片2 a.?(缓冲区溢出数据)

第二个碎片的第一个字符覆盖第一个碎片最后一个字符,这两个碎片被重组之后就变成了GET x.ida?(缓冲区溢出数据)。实际情况远非这么简单,更详细的细节请参考烂文IDS欺骗之Fragroute篇(上)。

4.2.碎片数据覆盖

这种方法和上面的碎片覆盖有些类似,只不过是覆盖全部的碎片数据,例如:

碎片1 GET x.id

碎片2 一些随机的字符

碎片3 a.?(缓冲区溢出数据)

这些碎片在经过目标系统的重组之后,碎片3将完全覆盖碎片2,重组之后的数据变成GET x.ida?(缓冲区溢出数据)。如果入侵检测系统的重组方式和目标系统不同,就无法重组出“GET x.ida?(缓冲区溢出数据)”,因此就检测不出这个攻击。

4.3.碎片超时

这种攻击依赖于入侵检测系统在丢弃碎片之前会保存多少时间。大多数系统会在60秒之后将丢弃不完整的碎片流(从收到第一个碎片开始计时)。如果入侵检测系统保存碎片的时间小于60秒,就会漏掉某些攻击。例如:

碎片1(设置了MF位)GET foo.id

碎片2(59秒之后发出) a?(缓冲区溢出数据)

如果IDS保存起始碎片的时间不到60秒,就会漏过攻击。幸运的是,如果配置没有错误,现在的网络入侵检测系统能够检测此类攻击。

这种技术结合其它的网络技术(例如:TTL值)将更有威胁。如果入侵检测系统和被监视的系统不在同一个网段,攻击者就可以在TTL上做手脚。有的单位由于经费的限制,不能在自己的每个子网都部署IDS节点,只在网络的出入口部署一套IDS,监视所有的网络流量。这种情况下,如果被攻击的主机在其它的子网,攻击数据包到目标系统的跳数就大于到IDS的跳数。攻击者可以伪造碎片的TTL,使某些碎片刚好能够到达,而无法到达目标系统,例如:

碎片序号负载TTL(假设攻击者到目标的跳数是5,到IDS的跳数是3)

1 GET foo.id 5

2 evasion.html 3

3 a?(缓冲区溢出数据) 5

从这些碎片中,IDS重组的数据是“GET foo.idevasion.html a?(缓冲区溢出数据)”或者“GET foo.idevasion.html”(如果IDS的超时时间小于60秒)。通过这种方式,攻击者成功地在IDS中插入了垃圾数据。

5.碎片和snort特征码

下面我们把上述攻击和某些snort特征码进行比较。对于.ida缓冲区溢出攻击,默认的snort特征码几乎无法捕获任何通过碎片发动的攻击(如果使用了frag2预处理模块,snort可以截获碎片超时攻击)。下面是针对.ida缓冲区溢出攻击的snort检测规则:

 

alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS 80 (msg:"WEB-IIS ISAPI 
.ida attempt"; uricontent:".ida?"; nocase; dsize:>239; flags:A+; 
reference:arachnids,552; classtype:web-application-attack; 
reference:cve,CAN-2000-0071; sid:1243; rev:2;)

另外,snort还有一条检测小碎片的规则,一旦发现太小的碎片,就会触发这条规则:

 

alert ip $EXTERNAL_NET any -> $HOME_NET any (msg:"MISC Tiny 
Fragments"; fragbits:M; dsize: < 25; classtype:bad-unknown; sid:522)

但是,这样还是不能检测某些攻击。还是以ida缓冲区溢出为例,这个攻击实际上和请求的URI无关,因此攻击者可以在前面加入一些垃圾数据以避免触发碎片检测规则。

碎片1 GET reallylongstringtoevadedetect.i

碎片2 da?(缓冲区溢出数据)

这些技术并非只针对snort。Cisco Secure IDS也能够进行碎片重组,并且能够对上述碎片攻击进行报警。

实际上,碎片攻击要复杂的多,尤其是涉及到TTL和碎片覆盖。

检测碎片攻击也非常困难。使IDS的碎片超时时间至少为60秒,增加对异常碎片的报警,最重要的是系统管理人员要对碎片攻击的潜在威胁有清醒的认识。2002年四月,Dug Song发布了Fragroute,引发了不小的震动。很快,snort社团发布了能够对碎片攻击进行更好检测的snort1.8.6版。

6.拒绝服务

还有一种比较野蛮的方法就是拒绝服务。拒绝服务可以针对检测设备本身和管理设备。Stick、snot和其它一些测试工具能够是入侵检测设备产生大量的报警。使用这些工具,可以达成如下目标:

消耗检测设备的处理能力,是真正的攻击逃过检测。

塞满硬盘空间,使检测设备无法记录日志。

使检测设备产生超出其处理能力的报警。

使系统管理人员无法研究所有的报警。

挂掉检测设备。

对IDS来说,这类工具无迹可寻,因此非常难以对付。

结论

本文我们讨论了一些常用的IDS躲避技术及其对策。其中有些技术需要攻击者具有熟练的攻击技巧,而有写技术却无需太多的技巧。而fragroute之类的工具出现,大大降低了攻击者采用某些技术的难度,使防御的一方总是处于被动。希望这些东西对大家有点用 

RAG与微调本质区别:知识时效性vs行为一致性 RAG(检索增强生成)是一种动态知识接入技术,通过向量检索实时获取外部信息,解决知识更新快、来源需可控的场景;Fine-Tuning(微调)则是对大模型认知结构的定向优化,通过领域数据重布神经突触,提升回答一致性、风格专属性和任务泛化能力。二者技术原理迥异:RAG依赖语义切块质量与检索可信度,微调成败关键在于数据意图清晰度与LoRA参数精调。在电商客服、金融投顾、医疗问答等工程实践中,RAG更适合处理‘最新政策’‘实时活动’等流动知识,而微调更适配‘标准话术’‘合规逻辑’等稳定认知。本文基于7个落地项目经验 阅读详情

相关推荐

60、入侵检测与防护:Cisco Secure IDS 全面解析

本文深入解析了 Cisco Secure IDS 的入侵检测与防护机制,详细介绍了 IDS 规避技术如泛洪、分段、加密和混淆等手段,并探讨了 Cisco 安全入侵防护的多层级架构,包括网络传感器、交换机传感器、路由器/防火墙传感器和主机传感器的协同工作。同时,文章还对 Cisco Secure IDS 的核心功能、传感器平台及其部署策略进行了全面分析,并提出了入侵防护策略建议,帮助用户构建更安全的网络环境。

tt34567的博客 79

IDS逃避技术和对策的详细介绍

在网络蓬勃发展的几天,网络安全问题日益突出。网络上的黑、白两道在网络安全的各个领域都展开了激烈的竞争。黑帽社团不断推出躲避或者越过网络入侵检测系统(Network Intrusion Detection System,NIDS)的新技术,而NIDS的开发者不断地在自己的产品中加入对这些技术的检测。但是,由于NIDS本身的局限性,胜利的天平正在向 黑帽子倾斜。本文将讨论一些基本的IDS躲避技术,以及

软体疯子专栏 3323

【信息科学与工程学】计算机科学与自动化——第六十六篇 算子篇 第一章 通用算子01 多模态数据(图形/图像/文本/语音)中推断人类内在状态、策略、动机和利益的算法算子知识库

编号领域算法/方法算子名称算子的数学方程式/表达复杂度 (示例)关联知识11量子场论正则量子化产生/湮灭算符对易关系: [â_p, â†_q] = δ⁽³⁾(p​ - q)应用于态空间,计算复杂度取决于截断福克空间,粒子数表象,二次量子化12统计力学蒙特卡洛模拟马尔可夫链转移算子T(s → s‘) :满足细致平衡条件 π(s)T(s→s’)=π(s‘)T(s’→s)收敛到平衡分布需 ~O(τ), τ为相关时间细致平衡,Metropolis-Hastings准则,重要性采样13电磁学边界元法单层势/双层势算子

weixin_49199313的博客 306

由http暗藏通道看网络安全

由http暗藏通道看网络安全 内容:什么是http暗藏通道什么是HttptunnelHttptunnel带来的安全问题一些解决思路总结参考资料关于作者宫一鸣 (yiming@securit

sonicdater的专栏 1941

VLP16:使用pointcloud_to_laserscan将三维点云转化为二维LaserScan

velodyne16线激光雷达 VLP16:使用pointcloud_to_laserscan将三维点云转化为二维LaserScan

NEUer_ljx的博客 4619

Crossbar RRAM技术解析:从1TnR架构到存储革命

非易失性存储器(NVM)是数据存储的核心技术,其原理基于物理状态的稳定改变以实现数据持久化。阻变存储器(RRAM)作为一种新兴NVM,利用导电细丝在介质层中的形成与断裂实现数据存储,具有高速、低功耗和结构简单的优势。在工程实践中,RRAM面临潜行路径电流等挑战,而Crossbar提出的1TnR架构通过引入共享晶体管有效解决了这一问题,在保证性能的同时提升了集成密度。该技术与CMOS工艺兼容,支持后端集成与多层堆叠,为高密度存储和嵌入式应用提供了新的解决方案。结合当前行业对高能效、高密度存储的需求,RRAM在

weixin_42523104的博客 317

***检测系统逃避技术和对策的介绍

【导读】在网络蓬勃发展的几天,网络安全问题日益突出。网络上的黑、白两道在网络安全的各个领域都展开了激烈的竞争。黑帽社团不断推出躲避或者越过网络***检测系统(Network Intrusion Detection System,NIDS)的新技术,而NIDS的开发者不断地在自己的产品中加入对这些技术的检测。但是,由于NIDS本身的局限性,胜利的天平正在向黑帽子倾斜。本文将讨论...

weixin_34366546的博客 296

oracle19c 无备份情况下重建ocr 和 votedisk

无备份情况下重建ocr 和 votedisk – 19c 备注:测试环境基本上都有ocr自动备份文件,建议参考有备份情况下恢复ocr和votedisk Deconfigure and reconfigure entire cluster will rebuild OCR and Voting Disk, user resources (database, instance, service, ...

fangang001的专栏 4175

评“逃避ids的50种方法” 转至赛迪网

编者注:也许IDS是可以被突破的,但不会是这么容易。 我们的一些顾客谈到Fred Cohen先生写了一篇非常优秀的关于ids系统弱点的文章”50条躲避ids的方法”。所有的50条方法都在下面列 出。原始版本可以从http://all.net得到。Cohen 先生声称ids系统对改善网络安全只能起一点点的作用。他的文章列出了50种攻击者可以躲过 ids的方法。我对这50种方法逐一进行批驳。 1.在通

FreeXploiT 2071

MOS 管驱动设计细节,波形分析

一般认为MOSFET是电压驱动的,不需要驱动电流。然而,在MOS的G S两级之间有结电容存在,这个电容会让驱动MOS变的不那么简单。 如果不考虑纹波和EMI等要求的话,MOS管开关速度越快越好,因为开关时间越短,开关损耗越小,而在开关电源中开关损耗占总损耗的很大一部分,因此MOS管驱动电路的好坏直接决定了电源的效率。 对于一个MOS管,如果把GS之间的电压从0拉到管子的开启电压所用的时间越短,那么MOS管开启的速度就会越快。与此类似,如果把MOS管的GS电压从开启电压降到0V的时间越短,那么MOS管关断的

m0_50862404的博客 1万+

告别传统RAG的痛点!Agent Skills让知识库检索更智能(本地知识库搭建新思路:用Agent Skills实现渐进式检索)

传统RAG在知识库检索中存在文档结构丢失、Token消耗大等问题 📚 Agent Skills通过分层索引、渐进式检索等设计,实现了更智能的本地知识库检索方案 🤖 本文详细介绍了Agent Skills的核心设计理念、与传统RAG的对比以及实践建议,帮助你搭建高效的知识库系统 ✅

XiaoqiangClub的博客 692

A Survey of Stealth Malware Attacks, Mitigation Measures...2016-IEEE Com.

一篇关于隐形恶意软件攻击的综述文章,缓解措施主要是基于主机的入侵检测方式,由于我的关注点是基于流量分析的网络层面的入侵检测以及开集识别,所以只翻译整理了相关的内容。

weixin_44414527的博客 1152

LLC 谐振变换器开发设计1

本文档详细介绍了基于DSP28335的LLC谐振变换器开发设计。系统采用频率调制(FM)控制方式,实现高效率、高功率密度的隔离型DC/DC变换。文档阐述了LLC拓扑结构和工作原理,给出了谐振频率、品质因数等关键参数的计算公式。硬件设计包括功率器件选型和采样电路实现,软件部分提供了DSP28335的核心控制算法和代码示例,涵盖频率转换、PI控制和PWM生成。系统还设计了启动策略和保护机制,确保可靠运行。该设计实现了主开关零电压开通和低纹波输出特性。

328

计算机网络安全期末复习(1)

💡。

northaurora1的博客 397

机器人中的数值优化(十五)——PHR增广拉格朗日乘子法

本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,下半部分介绍带约束的优化,中间会穿插一些路径规划方面的应用实例

慕羽★的博客 2001

【75】OpenCV C++实战篇——OpenCV 图像拼接、全景拼接(教程合集)

本文整理了OpenCV实现图像拼接的技术教程合集,涵盖C++和Python两种语言实现方案。图像拼接技术旨在将多张重叠图像融合为无缝全景图,既扩大视角又保持高分辨率。内容包含水平矫正等关键步骤(附对比效果图),提供多个实战案例的完整代码和详细讲解,涉及单应性矩阵、图像变换等核心技术。不同案例展示了从两张到多张图像的拼接效果,适合不同层次的学习者参考实践。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 528

学习笔记-常见安全设备渗透方法

SecDevice - Exploits 免责声明 本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关. 大纲 身份与访问控制 堡垒机 IMC 网络检测与响应 蜜罐 IDS 防火墙 WAF 网关 负载均衡 VPN 终端响应与检测 杀软 EDR 数据防泄漏系统 身份与访问控制 堡垒机 齐治堡垒机 Fofa: app...

ai agent 2434

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

解读BOT攻击,探索灵活且准确的安全之道

车票、秒杀、限量球鞋……面对这样的抢购场景,为什么总是落后于人?其实你遇到的并不是真人,而是恶意BOT。恶意的BOT进行信息数据爬取、薅羊毛等攻击行为,正损害着企业和用户的利益。在过去5 年,几乎每个企业都会遇到由于 BOT而导致的用户投诉和流失,已成为造成经济损失的最大原因之一。那么如何缓解BOT攻击,有哪些可靠灵活的方案,这篇文章为你解读。BOT攻击导致巨大经济损失攻击者冒充用户,通过Web和移动应用欺骗应用。平均而言,财富500强企业在这些攻击中损失了数千万美元。

Karka_的博客 929

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

第一章 Shell 概述

本文介绍了Shell编程的基础知识,包括Shell的起源与发展、常见Shell类型及查看方式,阐述了Shell作为命令解释器连接用户与操作系统内核的作用。强调其作为解释型脚本语言的优势,适用于系统管理自动化任务。内容涵盖Shell脚本基本结构、注释规范、编写风格、执行方法及常用命令(如echo、printf、history、管道等),并讲解了命令执行顺序、退出状态码等核心概念,为初学者提供系统学习路径。

sbjdhjd的博客 265

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

DeepAgents框架构建一个带有严格安全护栏的本地 Shell 执行环境。

核心亮点在于:通过精心设计的 System Prompt(系统提示词)强制约束大模型的行为,防止其通过操作系统底层的 Shell 命令绕过框架的虚拟沙箱,从而确保本地物理磁盘的绝对安全。DeepAgents 框架接入 DeepSeek 模型并构建一个带有严格安全护栏的本地 Shell 执行环境。

qq_42092076的博客 58

set -x 在 shell 脚本中的作用和用法详解

set -x的默认前缀由PS4控制,默认通常是。set -xecho hellohello可以显示脚本名、行号、函数名,便于定位。Bash 中PS4的第一个字符会按调用层级重复,例如可能看到+++++,用于表示嵌套层级。set -x # 开启set +x # 关闭set -xcommand1command2set +xset -x一句话:set -x用于把实际执行的命令打印到 stderr,是 shell 脚本最直接、最常用的调试开关;使用时注意局部开启、重定向日志和敏感信息泄露。

zhaominyong的专栏 75

保姆级 | CTF Shell 运算符命令注入:ping 命令后面偷偷追加 cat /flag

这一关模拟了一个常见的“在线 ping 工具”:你输入一个 IP,服务器就执行ping。但由于用户输入被直接拼接到命令里、没有任何过滤,我们可以用 Shell 运算符在 ping 后面追加任意命令,从而读出 flag。本文讲清楚四个 Shell 运算符和完整注入过程。本题完整链路:输入拼进→ 用;追加cat /flag→ 命令被拆成两条依次执行 → 读出 flag。本关是命令注入,输入是“拼进固定命令”,不是整条命令;用;可无条件追加命令,最稳;&&看成功、||看失败,依据是返回值;

YY888888_的博客 372

OpenCode v2 插件开发进阶:事件钩子、Secret 防护与审计日志

从插件加载顺序、TypeScript 结构与事件体系出发,完整实现 Secret 文件拦截、Shell 环境注入、工具调用审计、会话通知和 Compaction 上下文保留,并系统讲解脱敏、失败策略、供应链、性能与企业上线方法。

jerry764的博客 196

Linux、Shell、MySQL 测试卷逐题细讲(下篇:MySQL)

本文为Linux、Shell、MySQL测试卷下半段MySQL部分逐题讲解,包含填空、选择与SQL分析三类题型。填空题覆盖COUNT、HAVING、DISTINCT、事务、约束、索引等核心语法;选择题辨析存储过程、索引类型、ACID、存储引擎、用户管理等考点。SQL大题围绕员工、部门、职位、地点四张关联表,考察多表连接、分组聚合、自连接、相关子查询、NULL处理等高频写法,标注LEFT JOIN统计计数、NULL判断、子查询别名等易错坑点,同时梳理试卷OCR识别带来的干扰问题,重点提示SQL实操中的常见失误

dongziwen1的博客 180

CST如何通过Shell Solid or Thicken Sheet对模型进行挖空及加厚

在CST建模中,ShellSolid可对实体模型挖空,形成壁厚为指定值的封闭或开放壳体,通过选择不同面可控制开口位置;ThickenSheet则用于将无厚度二维片体加厚为三维实体。操作时需在导航树中选中模型,调用ShapeTools中的相应功能,设置厚度并预览确认。两者结合可高效实现复杂结构建模,适用于电磁仿真前处理。

a18665053298的博客 129

Create gitlab-runner

GitLab Runner 支持指定 Windows 服务账户。指定 gitlab runner 运行的 shell 为。

JQ软件前沿 169
上一篇: Linux hacking tips
下一篇: HIPS(程序动作拦截器)规则割裂防护体系
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值