Unicode,GBK和UTF-8
看到题目,你也许会说,“又是这种月经帖,这问题我早弄清楚了”. 但如果有人问你,“Unicode,GBK和UTF-8有什么区别?”, 你能自信地给他一句简短清晰的回答吗? 如果不能的话, 那还是看一下这篇文章吧.
看到题目,你也许会说,“又是这种月经帖,这问题我早弄清楚了”. 但如果有人问你,“Unicode,GBK和UTF-8有什么区别?”, 你能自信地给他一句简短清晰的回答吗? 如果不能的话, 那还是看一下这篇文章吧.
什么? linux? 内核?! 也许你会说,“拜托,这种一看就让人头大的字眼, 我真的需要了解吗?” 有句流行语说得好,没有买卖,就没有杀害. 如果在日常中需要和流量打交道,那么为了不让 自己在面对来往的海量数据时手足无措, 最好还是了解一下如何管理,过滤和转发这些数据, 让信息能被传递到该去的地方. 哪怕自己不去亲自参与管理, 也可以通过简单的了解, 让自己在围观时多一份自信,少一点懵逼.
相信很多人对"Hook"都不会陌生,其中文翻译为"钩子".在编程中, 钩子表示一个可以允许编程者插入自定义程序的地方,通常是打包好的程序中提供的接口. 比如,我们想要提供一段代码来分析程序中某段逻辑路径被执行的频率,或者想要在其中 插入更多功能时就会用到钩子. 钩子都是以固定的目的提供给用户的,并且一般都有文档说明. 通过Hook,我们可以暂停系统调用,或者通过改变系统调用的参数来改变正常的输出结果, 甚至可以中止一个当前运行中的进程并且将控制权转移到自己手上.
Good people all, of every sort,
Give ear unto my song;
And if you find it wondrous short,
It cannot hold you long.
在前面几篇文章中我们介绍了建立p2p通信的一般协议(簇),以及一种完整的NAT传输解决方案ICE, 但是对于多用户的通信情况,还有一些通用协议来实现标准化的管理,如之前讲过的SDP和SIP等,SIP(Session Initiation Protocol), 是属于应用层的控制协议,主要用于在一个或多个参与者之间创建,修改和中止会话(sessions).会话的类型包括IP电话, 多媒体流分发和多媒体会议等.
在P2P通信标准协议(二)中,介绍了TURN的基本交互流程,在上篇结束部分也有说到,TURN作为STUN协议的一个拓展,保持了STUN的工具性质,而不作为完整的NAT传输解决方案,只提供穿透NAT的功能, 并且由具体的应用程序来使用.虽然TURN也可以独立工作,但其本身就是被设计为ICE/RFC5245的一部分,本章就来介绍一下ICE协议的具体内容.
上一篇P2P通信标准协议(一)介绍了在NAT上进行端口绑定的通用规则,应用程序可以根据这个协议来设计网络以外的通信。但是,STUN/RFC5389协议里能处理的也只有市面上大多数的Cone NAT
(关于NAT类型可以参照P2P通信原理与实现),对于Symmetric NAT
,传统的P2P打洞方法是不适用的。因此为了保证通信能够建立,我们可以在没办法的情况下用保证成功的中继方法(Relaying),虽然使用中继会对服务器负担加重,而且也算不上P2P,但是至少保证了最坏情况下信道的通畅,从而不至于受NAT类型的限制。TURN/RFC5766就是为此目的而进行的拓展。
前一段时间在P2P通信原理与实现中介绍了P2P打洞的基本原理和方法,我们可以根据其原理为自己的网络程序设计一套通信规则,当然如果这套程序只有自己在使用是没什么问题的。可是在现实生活中,我们的程序往往还需要和第三方的协议(如SDP,SIP)进行对接,因此使用标准化的通用规则来进行P2P链接建立是很有必要的。本文就来介绍一下当前主要应用于P2P通信的几个标准协议,主要有STUN/RFC3489,STUN/RFC5389,TURN/RFC5766以及ICE/RFC5245。
最近无意间发现一个基于ArchLinux的发行版——BlackArch,主题十分炫酷(中二)。当然渗透类的Linux发行版已经有BackTrack和Kali了,不过都是源于Debian的,使用者众多,随波逐流无法突显我们的逼格,要论小众,ArchLinux算是个中翘楚。呵呵开个玩笑,其实ArchLinux的亮点在于“小”,不同于其他发行版的“最小化安装”,ArchLinux的安装过程需要手动分区,手动配置bootloader,然后从网络源下载必要的包安装到指定的分区中。
安装完必备的软件(如gcc)后其余一概自己去添加,包括图形界面。对于喜欢定制而又不怕折腾的朋友来说,Arch系列确实是一个不错的选择。正好我还没有用过Arch系的发行版,因此就在虚拟机装一个体验一回,顺便把其中遇到的坑记录一下。
前面几篇文章已经介绍了常见的中间人攻击方式,即窃听、修改和重定向(钓鱼)。当然这都是建立在我们完全掌握了局域网的所有流量的前提下的。在ARP欺骗与中间人攻击中就已经介绍了一种最简单的一种控制流量的方法,即ARP欺骗。但是ARP的方式往往对网络的负载造成较大压力,从而对别人的网速造成影响不说,如果目标稍微有点意识,也能很容易发现和防御ARP攻击。因此我们需要其他更多的选择来成为中间人,本文就来介绍一下各种不同的中间人方式。