摘要: 和大家分享一个极速的轻量级C协程库 - libaco 🚀,它拥有极致的内存使用效率、极致的性能和详细的文档(10 ns/ctxsw + 一千万协程并发仅耗内存2.8GB + Github Trending),除此之外还包含了一份严格的数学证明。希望它能够对大家有用处,Cheers 🎉🎉🎉 阅读全文
posted @ 2018-07-19 18:53 燕云 阅读(3454) 评论(2) 推荐(2) 编辑
摘要: 本文介绍了一个CC自动防御系统的原理和代码,并部署在了一个试验网站上,可供读者进行测试。 阅读全文
posted @ 2014-12-02 16:11 燕云 阅读(3514) 评论(1) 推荐(6) 编辑
摘要: 为了抵御来自应用层的DDoS攻击,我们的防御体系需要一个能做在短时间内进行大量的数据项增删的ip黑白名单防火墙,笔者使用双哈希表缓冲的方法实现了一个防火墙开源实例——frdev,本文将重点阐述其实现原理,以及简单介绍雅虎公司用于防护应用层DDoS攻击的系统Detecting System Abuse 阅读全文
posted @ 2014-07-04 20:07 燕云 阅读(7201) 评论(41) 推荐(18) 编辑
摘要: 我们将要实现一个进行应用层DDoS攻击的工具,综合考虑,CC攻击是最佳选择。使用bash shell脚本来快速实现并验证这一工具。在最后,将花费大量的笔墨来讨论如何防御来自应用层的DDoS攻击,描述了一个应对应用层DDoS攻击的防御状态机。访问 http://eecs.cc:8080/ 查看靶机状态。 阅读全文
posted @ 2014-06-04 13:13 燕云 阅读(5028) 评论(1) 推荐(5) 编辑
摘要: DDoS,即 Distributed Denial of Service ,可译为分散式阻断服务攻击。本文从整体的角度阐述了现代网络DDoS的大体情况,阐述了各常见攻击原理与其对应防御策略,并介绍了淘宝的位于内核层的开源软件lvs,在软件防火墙方面应对此类攻击的一些数据实例。文章内容如篇名所言,即为针对DDoS的攻击原理与防御策略之概述。 阅读全文
posted @ 2014-06-04 00:56 燕云 阅读(5035) 评论(6) 推荐(10) 编辑
摘要: pcap文件格式解析、IP流量重放的C语言实现; 并指出了tcpreplay-2.3.5中的一处bug,libpcap-1.5.3中一处严重bug。 阅读全文
posted @ 2014-05-20 23:25 燕云 阅读(3756) 评论(0) 推荐(1) 编辑
摘要: 计算机网络中的中间人攻击,旨在篡改与截获网络中的数据信息,而非直接破坏主机之间的链路连接。 本文将重点以图形的方式描述中间人攻击的原理模型,并使用C语言结合libnet、libpcap库在应用层实现这种工具。 阅读全文
posted @ 2014-05-08 00:15 燕云 阅读(6918) 评论(9) 推荐(3) 编辑
摘要: 本图整理了一些bash编程常用的语法、特殊变量,遗忘之时可快速查找,不用再去翻书了。 阅读全文
posted @ 2014-04-29 22:26 燕云 阅读(1069) 评论(2) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2014-04-29 22:25 燕云 阅读(491) 评论(0) 推荐(0) 编辑
摘要: 在目前的网络协议体系中,ARP占据重要的位置,但由于其本身的工作特点亦导致了局域网络中不安全因素的存在。 本文将使用libpcap与libnet库,实现一个能在局域网中将指定IP重新定向到另一个指定MAC地址的C共享库,这是在局域网中发起中间人攻击的第一步。 理解这些常见的网络攻击方法有助于我们更好的防护网络系统。 阅读全文
posted @ 2014-04-26 11:44 燕云 阅读(2860) 评论(0) 推荐(1) 编辑
摘要: 最近笔者获得了一台公网服务器的root权限,按耐不住要做一些好玩的事情了。在这篇文章中,我们将构建一个诱惑骇客的ssh蜜罐,并使用Web.py构建一个Web服务器将攻击者的登录信息通过Web服务发布出去. 访问http://211.149.212.142:8080/secure测试本文最终的结果,您也可以使用ssh客户端尝试登陆并刷新页面进行验证。 阅读全文
posted @ 2014-04-24 23:57 燕云 阅读(2498) 评论(2) 推荐(1) 编辑
摘要: 语义分析较困难的根本原因在于语法的可递归性,深层次的递归使得问题的分解看起来变得相当地复杂。但是如果能将递归问题转化为迭代问题,便能很大程度地简化此问题模型。递归转化为迭代的关键在于——找到最深层递归结构的全部特征,迭代化之,问题便迎刃而解。 一般情况下,人们在面对复杂的递归问题时时,亦是依据其语法规则,找到其递归深层的结构,化解之,步步迭代,如此,问题便得到解决。人类的思维很是擅长将递归问题转化为迭代问题,而学习知识的过程,则可以看成是对各种各样语法规则的理解与掌握。 阅读全文
posted @ 2014-04-10 00:12 燕云 阅读(7525) 评论(0) 推荐(0) 编辑
摘要: 在编译原理的众多书籍中,陈述了很多生成语法树的经典算法,它们大多是基于递归的方式进行工作的。在本文中,将与大家分享一种基于迭代方式的、易于理解的语法树生成算法,由于其一次成功迭代仅生成一个语法“树枝”的处理特点,可称之为单步算法。 我们将通过对中缀表达式的语法树生成实验进行算法细节的初步阐述与验证。 阅读全文
posted @ 2014-04-05 20:57 燕云 阅读(13519) 评论(1) 推荐(1) 编辑
摘要: 一台网络中的计算机,其传递到网络中的数据包的内容是完全由其软硬件逻辑决定的,软件可以操控硬件,硬件亦是一种特殊的软件,所以,接收者只根据数据包的内容,绝不可能判定此数据包的真正来源,一切都是可以伪造的。静态arp表项轻松破解ARP伪造报文的攻击。我们研究伪造报文的目的在于深刻理解系统以更好地防御,而非攻击。 阅读全文
posted @ 2014-04-02 12:32 燕云 阅读(3437) 评论(0) 推荐(2) 编辑
摘要: 当我们需要控制一个局域网中的很多台服务器时,一个简单的全局操作可能会被放大地异常繁琐,这时我们就会需要新的工具来快速完成这种工作。 我们将使用bash脚本与ssh客户端提供的一些工具来完成这一工作,我们的实验平台是GNU/Linux。 下面即是我们整个系统的鸟瞰图: 阅读全文
posted @ 2014-03-20 08:59 燕云 阅读(1803) 评论(4) 推荐(2) 编辑
摘要: 我们的目标很明了——构建一个具有根的、私有的DNS(Domain Name System)。 上图便是我们整个DNS系统的鸟瞰,您需要特别注意,由于我们整个过程需要启动6个相互关联的、位于GNU/Linux操作系统上的DNS服务器,一个小小的失误,极可能导致最终的失败,所以,在接下来的“游戏”里,您应该时刻知道我们目前处于系统的哪个位置。 此次实验共有6台服务器参与,他们皆位于VMnet2:192.168.31.0/24网络中,当然,如果加上Host主机,就是7台。 阅读全文
posted @ 2014-03-14 21:17 燕云 阅读(2689) 评论(1) 推荐(4) 编辑
摘要: 调度场算法(Shunting Yard Algorithm)是一个用于将中缀表达式转换为后缀表达式的经典算法,由Edsger WybeDijkstra引入,因其操作类似于火车编组场而得名。 ——维基百科目标阐述: 将中缀表达式转换为后缀表达式(Reverse Polish Notation:RPN 逆波兰式) 参与运算的数据的正则表示为:[0-9]{1,}形式的十进制数运算符优先级:(从高到低)————————————————————————( ) 括号/ * % 除乘余+ - 加减————————————————————————解: 第一步:使用正则词法分析... 阅读全文
posted @ 2014-02-28 22:43 燕云 阅读(1536) 评论(0) 推荐(0) 编辑
摘要: grep 正则表达式规则:^ 行首定位符,表示从行首开始进行模式匹配. 一个非换行符的字符[ ] 匹配属于此集合的任意一个字符[^ ] 匹配不属于此集合的任意一个字符[a-z] (其指定的集合包含从a到z的所有小写字母,)\ 转义控制符,用来转义元字符或者转义普通字符\(...\) 标记此模式为一个分组\ 单词末尾定位符x\{m\} 字符x重复匹配m次x\{m,\} 字符x至少重复匹配m次,贪婪匹配原则x\{m,n\} 字符x重复匹配m次至n次,贪婪匹配原则* 等价于 \{0... 阅读全文
posted @ 2014-02-24 22:01 燕云 阅读(630) 评论(0) 推荐(0) 编辑
摘要: 佛家有言:万法无常 严格意义上,没有真正的安全,一切只是概率问题。 公钥密码学: 在公钥系统之中,由公开钥匙推算出配对的私密钥匙于计算上是不可行的。 公钥密码体系其加密与解密算法是公开的。 柯克霍夫原则,香农公理,“敌人知道系统”。 Shannon's Maxim—'the enemy knows  阅读全文
posted @ 2014-02-21 22:03 燕云 阅读(305) 评论(0) 推荐(0) 编辑
摘要: 逻辑卷管理器(英语:Logical Volume Manager,缩写为LVM),又译为逻辑卷宗管理器、逻辑扇区管理器、逻辑磁盘管理器,是Linux核心所提供的逻辑卷管理(Logical volume management)功能。它在硬盘的硬盘分区之上,又创建一个逻辑层,以方便系统管理硬盘分区系统。 最先由IBM开发,在AIX系统上实现,OS/2 操作系统与 HP-UX也支持这个功能。在1998年,Heinz Mauelshagen 根据在 HP-UX 上的逻辑卷管理器,写作出第一个 Linux 版本的逻辑卷管理器。 ——维基百科逻辑卷管理器 阅读全文
posted @ 2014-02-21 21:23 燕云 阅读(504) 评论(0) 推荐(0) 编辑
摘要: 一、进程控制:fork创建一个新进程clone按指定条件创建子进程execve运行可执行文件exit中止进程_exit立即中止当前进程getdtablesize进程所能打开的最大文件数getpgid获取指定进程组标识号setpgid设置指定进程组标志号getpgrp获取当前进程组标识号setpgrp设置当前进程组标志号getpid获取进程标识号getppid获取父进程标识号getpriority获取调度优先级setpriority设置调度优先级modify_ldt读写进程的本地描述表nanosleep使进程睡眠指定的时间nice改变分时进程的优先级pause挂起进程,等待信号personali 阅读全文
posted @ 2014-02-12 22:06 燕云 阅读(753) 评论(0) 推荐(0) 编辑
摘要: 计算机科学本科的专业课包括高等数学、离散数学、模拟电子技术、数字电子技术、微机原理、汇编语言原理、高级程序语言、操作系统原理、高级编译原理、嵌入式原理、网络原理、计算机组成与结构等诸多科目。GNU计算机操作系统深受全球计算机科学家与学者们的喜爱。学习使用GNU操作系统对计算机理论的理解与掌握有极大... 阅读全文
posted @ 2014-02-12 18:27 燕云 阅读(640) 评论(0) 推荐(0) 编辑
摘要: BSD: 自由:可以自由的使用、修改源代码,可以将修改后的代码作为开源或者专有软件再次发布。 限制: 若发布的产品中包含产品源代码,则须在源代码之中带有原有的BSD协议; 若发布的产品只是二进制库或者软件,则须在其文档与版权声明之中包含原代码中的BSD协议; 不可以用开源软件的名字、其作者的名字或者机构的名字做市场推广。Apache: 自由:可以自由的使用、修改源代码,可以将修改后的代码作为开源或者专有软件再次发布。 限制: 须给代码的用户一份Apache License; 若你修改了源代码,则需要在该源码文件之中注明; 由Apache协议下的源码修... 阅读全文
posted @ 2014-02-12 17:43 燕云 阅读(385) 评论(0) 推荐(0) 编辑