哈夫曼编码的sellcode.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
哈夫曼编码的sellcode

哈夫曼编码的shellcode初次见到“shellcode”的时候,感觉非常高大上,其实接触久了之后你会发现它实际上只是一段代码(也可以是填充数据),是一种用来发送到服务器利用特定漏洞的针对性代码,一般可以利用它获取一定的权限。今天我们将共同学习一种新的shellcode编码方式——Huffy,即基于哈夫曼编码的shellcode,这种方式利用哈夫曼树压缩数据的特性来对shellcode进行数据压缩,以达到“短小精悍”的目的。哈夫曼树因为这种方法叫做Huffy,并且最近我刚刚解决了一个有关哈夫曼树的问题,所以首先我想到的就是哈夫曼树。如果你还不知道什么是哈夫曼树,那我就在这里简单提一下。哈夫曼树是一种相当简单的数据结构,它可以用来进行数据压缩。哈夫曼树的建立是通过读取输入的内容,然后创建一棵树,出现频率最高的字符靠近树的顶部,而频率最低的字符靠近树的底部。为了压缩数据,它会遍历整个树以生成编码位(左边的编码为0,右边的编码为1)。一个字符越靠近树的顶部,那么该字符编码之后所用的位数越少,这也被称为“前缀码”,这是一种非常简洁的属性,该属性意味着没有编码的位串会作为另一个位串的前缀(换句话说,当你阅读二进制位流的时候,你就能立刻知道解码该字符何时结束)。例如下面的哈夫曼树:通过该哈夫曼树,我们就能知道它来自一个包含9个字符的文本,其中有5个字符是字母“o”,3个字符是字母“d”,1个字符是字母“g”。所以,当你用该树压缩数据时,你可以将单词“dog”作如下处理:d=00(左左)o=1(右)g=01(左右)所以,“dog”将会编码成位流“00101”。如果你看到以位流“01100”表示的字符串,你就可以按照上面哈夫曼树来解码:左右(g)、右(o)、左左(d),所以解码得到该字符串内容为“god”。如果在一个字符串中所有字符的数目都相同,并且不同字符的种类数是2的整数幂(例如:“aabbccdd”中,不同字符的种类数为4,即2的平方),你就需要通过一个平衡的哈夫曼树来表示。例如,字符串“aaabbbcccddd”的表示将会是如下形式的哈夫曼树:通过查找上图中的哈夫曼树可知,字符串“abcd”将会编码成。哈夫曼树的这种特性非常重要。程序分析当你运行程序时,它将提示你输入,在你输入相应内容之后,它将输出一堆毫无意义的东西(尽管输出使我们理解变得简单多了)。可以看下这个例子:$?echo?this?is?a?test?string?|?./huffyCWD:?/home/ron/gits2015/huffyNibble??Frequency------??---------0???????0.1136361???????0.0227272???????0.1136363???????0.0909094???????0.0909095???????0.0227276???????0.1818187???????0.2272738???????0.0227279???????0.068182a???????0.022727b???????0.000000c???????0.000000d???????0.000000e???????0.022727f???????0.000000Read?22?bytesTwo?lowest?frequencies:?0.000000?and?0.000000Two?lowest?frequencies:?0.000000?and?0.000000Two?lowest?frequencies:?0.000000?and?0.000000Two?lowest?frequencies:?0.000000?and?0.022727Two?lowest?frequencies:?0.022727?and?0.022727Two?lowest?frequencies:?0.022727?and?0.022727Two?lowest?frequencies:?0.022727?and?0.045455Two?lowest?frequencies:?0.045455?and?0.068182Two?lowest?frequencies:?0.068182?and?0.090909Two?lowest?frequencies:?0.090909?and?0.113636Two?lowest?frequencies:?0.113636?and?0.113636Two?lowest?frequencies:?0.159091?and?0.181818Two?lowest?frequencies:?0.204545?and?0.227273Two?lowest?frequencies:?0.227273?and

您可能关注的文档

文档评论(0)

pnj913 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档