先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip204888 (备注网络安全)
正文
#<name\_of\_function>(<list of parameters>)
例如:
(#em\_is\_search\_engine( http.user_agent ) == true)
其中http是协议名称,user_agent是属性名称(即数据包元数据)。
请参阅此处获取协议和属性的完整列表。(注释:这里非常类似wireshark里面的过滤器语法规则)
xml规则中使用的协议和属性名称区分大小写。它们通常是小写的。
为了避免混淆,新的嵌入函数名应该以前缀em_开头。
1. 特殊条款
true将被数字1代替。
例如:
#em\_check(tcp.src\_port)== true
false将替换为数字0。
例如:
#em\_check(tcp.src\_port)== false
2.实现一个新的嵌入式函数
在每个规则文件中,都有一个允许用户添加嵌入式功能的部分。
<embedded_functions><![CDATA[
//code C
static inline bool em\_check( double port ){
if( port == 80 || port == 8080 )
return true;
return false;
}
]]></embedded_functions>
除了这个标签之外,还可以实现如下两个其他功能:
(1)void on_load(){ … }当xml文件中的规则被加载到5Greplay时被调用
(2)void on_unload(){ … }退出5Greplay时被调用
3.预安装嵌入式函数
在规则的布尔表达式中,可以使用一个或多个嵌入函数
(1)is_exist( proto.att ) 检查一个事件是否具有协议属性,例如is_exist( http.method ) 如果当前事件包含协议HTTP并且属性方法具有非空值,将会返回true,否则返回false
通常情况下,5Greplay 有一个过滤器,只有在其布尔表达式中使用的任何 proto.att 包含值时,才允许验证规则中的事件。如果其中一个不包含值,则不会验证该规则。这样可以减少布尔表达式的验证次数,从而提高性能。
例如,给定的事件具有以下布尔表达式:
((ip.src != ip.dst) && (#em_check_URI(http.uri) == 1))
只有当 ip.src 和 ip.dst 以及 http.uri 不为空时,才会验证该事件,因此只验证 HTTP 数据包(不会验证每个 IP 数据包)。
但是,如果使用下面的表达式,则与前一个表达式的含义完全相同:
((ip.src != ip.dst) && ((#is_exist(http.uri) == true ) && (#em_check_URI(http.uri) == 1)))
5Greplay 需要针对任何 IP 数据包验证该表达式, is_exist 会