自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 wpcap过滤器后端代码解读

  wpcap是windows平台下著名的数据包嗅探库,在linux下叫libpcap,数据包嗅探软件wireshark就是用来这个库,其中实现了十分高效的数据包过滤算法。很久以前就想看一下他具体的过滤机制,不过那时候没看懂。这两天看到一篇文章提到了winpcap的中间码是SSA格式的,所以又提起兴趣看了一下,发现很多地方都已经能看懂了。(好像新下的源码比以前多了很多注释?很多源码可能维护者也没看...

2019-03-26 14:10:56 551

原创 llvm中的Tarjan强连通分量算法

  llvm中的强连通算法使用的也是Tarjan算法,与我自己实现的那种粗糙的算法不同,llvm使用栈代替递归实现dfs,一方面防止栈空间不足的问题,另一方面借助这个栈,可以记住当前遍历的状态,从而实现了强连通分量上的迭代器。总之实现的十分的优雅。  代码文件在include\llvm\ADT\SCCIterator.h中。  现在我们来看一下具体实现。  首先定义了两个静态成员函数begi...

2019-03-23 11:36:45 357

原创 流图中的强联通分量

在有向图G中,如果两个顶点vi,vj间(vi>vj)有一条从vi到vj的有向路径,同时还有一条从vj到vi的有向路径,则称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。有向图的极大强连通子图,称为强连通分量(strongly connected components)。  网上关于强联通分量的理论与分析十分的多,这里不再赘...

2019-03-22 17:01:41 332

原创 对流图的遍历

  正常的图遍历有DFS和BFS,CFG作为图的一种自然也是如此,不过在CFG中,BFS的应用貌似并不多。1,深度优先生成树,树边,前向边,后向边,横边。  在DFS的过程中,按照如下规则标记图中的所有边:存在一条边从一个节点指向其后代,并且之前没有被标记过,则将该边标记为树边(tree edge)。存在一条边从一个节点指向其祖先或自身,将改边标记为后向边(back edge)。存在...

2019-03-22 10:51:56 535

原创 流图的分类与识别

源代码的结构在编译器中往往会在某个环节被转换成CFG,不同的控制语句会生成形形色色的控制流结构,而在后端转换的过程中又会生成许多前端语法无法描述的结构出来,在控制流分析的过程中需要去识别这些结构。这篇文章简单的介绍一些基本结构。1,基本块(basic block)。基本块是一个执行时连续的语句序列,往往最后会跟一个终结语句,比如跳转,条件跳转或者返回,除了最后一个语句外没有任何的分支或跳转命令。...

2019-03-21 12:37:43 943

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除