NAT的四种类型及类型检测

考 虑到UDP的无状态特性,目前针对其的NAT实现大致可分为Full Cone、Restricted Cone、Port Restricted Cone和Symmetric NAT四种。值得指出的是,对于TCP协议而言,一般来说,目前NAT中针对TCP的实现基本上是一致的,其间并不存在太大差异,这是因为TCP协议本身 便是面向连接的,因此无需考虑网络连接无状态所带来复杂性。 用语定义 1.内部Tuple:指内部主机的私有地址和端口号所构成的二元组,即内部主机所发送报文的源地址、端口所构成的二元组 2.外部… Read More »

虚拟网卡 TUN/TAP 驱动程序设计原理

简介 虚拟网卡Tun/tap驱动是一个开源项目,支持很多的类UNIX平台,OpenVPN和Vtun都是基于它实现隧道包封装。本文将介绍tun/tap驱动的使用并分析虚拟网卡tun/tap驱动程序在linux环境下的设计思路。 tun/tap驱动程序实现了虚拟网卡的功能,tun表示虚拟的是点对点设备,tap表示虚拟的是以太网设备,这两种设备针对网络包实施不同的封装。利用tun/tap驱动,可以将tcp/ip协议栈处理好的网络分包传给任何一个使用tun/tap驱动的进程,由进程重新处理后再发到物理链路中。开源… Read More »

开发者福利:史上最全Android 开发和安全系列工具

作者:阿里聚安全 链接:https://zhuanlan.zhihu.com/p/25261296 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 取证工具 bandicoot – 一个Python工具箱,用于分析手机元数据。它提供了一个完整,易于使用的环境,数据科学家分析手机元数据。只需几行代码,加载数据集,可视化数据,执行分析和导出结果。 Android Connections Forensics– 使法庭调查员能够连接到其原始进程 Andro… Read More »

pdf 转html工具

https://github.com/coolwanglu/pdf2htmlEX git clone git://github.com/coolwanglu/pdf2htmlEX.git cd pdf2htmlEX cmake . && make && sudo make install 在ubuntu 12.04虚拟机中编译用了不少时间。首先可能需要稍微改改build_for_ppa.py文件,然后安装这几个包:cmake,libspiro-dev fontforge l… Read More »

opengl bug 一则

这是个老问题,但是公司不同的同学先后被坑,所以必须记录一笔。这样可以增加事后被 google 到的概率,千万别来第三次了。 我原本以为 opengl 在 bind VBO 后,如果修改了 VBO 的数据,是不需要重新 bind VBO 对象的。所以早先的 ejoy2d 在这里的处理就做了一点优化,并没有重复 bind ,可以减少一些 API 调用。 大约在 2015 年 6 月左右,由于需要跟进 mac osx 的系统更新,ejoy2d 增加了对 VAO 的支持。我再修改相关实现的时候发现在某些设备上,出… Read More »

从12306.cn谈大网站架构与性能优化

12306.cn网站挂了,被全国人民骂了。我这两天也在思考这个事,我想以这个事来粗略地和大家讨论一下网站性能的问题。因为仓促,而且完全基于本人有限的经验和了解,所以,如果有什么问题还请大家一起讨论和指正。(这又是一篇长文,只讨论性能问题,不讨论那些UI,用户体验,或是是否把支付和购票下单环节分开的功能性的东西) 业务 任何技术都离不开业务需求,所以,要说明性能问题,首先还是想先说说业务问题。 其一,有人可能把这个东西和QQ或是网游相比。但我觉得这两者是不一样的,网游和QQ在线或是登录时访问的更多的是用户自… Read More »

字符串匹配算法

前缀匹配 KMP算法 KMP算法与蛮力算法的不同之处在于蛮力算法模式串每次向前+1,而KMP每次向前+K。 jump K中的K可以通过预先计算模式串得出。jump[j]=k表示满足P[0,K] = P[J-K,J]的最大K值 那么kmp算法大致便是: int j=0; for (int i=0;i<n;i++){      while(j>0&&P[j+1]!=T[i]){           j = jump[j];      }      if(P[j+1]==T[i]) … Read More »

把Java转成Javascript的工具

最近项目中需要将Java程序移植到新系统中,团队采用了HTML5的方式,通过将Java程序自动转化成HTML5的Javascript程序,实现快速移植和部署。其中使用了最核心的工具是Java2Script(传送门:Java2script),极大地提高了团队的工作效率。  

通过PHP反序列化进行远程代码执行

0×00 前言 在NotSoSecure,我们每日都会进行渗透测试或代码审查,不过最近我们遇到了一段有趣的PHP代码,它可能会导致远程代码执行(RCE)漏洞,但对它进行利用却有点棘手。 在经历了几个试图破解这段代码的不眠之夜后,我们确信利用这个漏洞可以同时进行应用级和系统级别的代码执行。这篇来自Rahul Sasi的博文将讲解关于该漏洞的一些信息,以及如何对其进行利用。 0×01 包含漏洞的代码 在上面的代码中,用户控制的值可能会被传递给PHP的反序列化函数。在用户提供的输入未进行适当处理就传递给函数un… Read More »