NDIS5中间层驱动如何修改封包或自定义封包,抓包封包

信任大多数相恋的人都是会使用WPE的,因为此地也可以有广大好的课程,大家都艰辛了!
先说说接触WPE的情状。当时临近是二〇一二年,小编当然不驾驭WPE对游乐竟有这么大的帮带成效的。开端找WPE软件的时候,只是因为笔者找网络抓包工具,相信大家都据悉过盛名的Sniffer。有的时候之间,笔者发掘了WPE,当时对WPE通晓什么少,也不会使用,但并没急着找教程,因为对此软件,一般很轻便上手的自家,会友善先试用一下。相当多软件都很轻易上手的,WPE倒是花了非常的大的技能,遵照对抓包和发包的驾驭,一起先寻觅出了一丢丢门道来。
新生渐渐的熟悉WPE了,可是并未像各位大神那样通过系统学习,恐怕只算小偏方,只怕只是歪门邪道吧。
————————————————————————————————————————————————
<上边的话能够不看呀,哈哈哈>

     
声明:本文部分剧情出自与网络!

NDIS5中间层驱动如何修改封包或自定义封包? 10C
出于对ndis不怎熟练,所以来提问各位大神,小编依照wdk例子passthru扩充,
在PtReceivePacket与PtReceive两个函数里缴获收包,推断是或不是供给过滤,如若急需过滤,就自定义叁个数据包上传,因为不太熟习NDIS,所以本人商讨了下,笔者是那般想的:先申请一块内存用作自定义数据包的缓冲,填好自定义数据后,申请三个新的packet,将packet与缓冲区关联起来,然后上传。但如此就涌出了难题,作者申请的内部存款和储蓄器不知道应该在哪个地方释放,那样就能够导致内部存款和储蓄器泄漏。而且也会蓝屏,所以来问下各位大神,怎么着在ndis里修改数据包,恐怕本人协会二个封包

 

下边开端简易教程!
以页游为例:

   互联网的基本点不用本人说,所以关于网络的编制程序对自个儿我们来讲也是极其首要,非常实用的!

 

登陆务观戏,张开WPE鲜明是当做预备职业的,大家用的中文版也是平等的,实在不亮堂对照开关的职位就能够【下图】

   可是自个儿在互联网上却绝非看到有些有关VB互联网编制程序方面包车型客车学识,一方面是VB用的人相当少,不会用就说VB倒霉(个人感到学好VB今后C++、Java一看就能够!);另一方面是我们不情愿公开那上边的学问,自身劳顿查究的,还得靠它吃饭,怎么大概Infiniti制拿出去发表?然而社会要向上,人类要向上,为了让越来越多的人得益,为了让展现团结价值,笔者甘愿分享本身对于互连网编程的阅历。我也是刚开端学,所以那篇小说难免有不当之处,并且认知也绝对相比较通俗,只是作为入门级的稿子吧!

I P封包

图片 1

   用VB操作网页,首要有三种方法:一是模拟操作,即自行调节。二是POST,也正是发送音讯(数据包)。那三种艺术涉及到:Webbrowser控件、Inet控件、XMLHTTP对象。在那之中,Webbrowser控件首要用来模拟操作,让机器自动完毕点击、选中、填写等操作;Inet控件和XMLHTTP对象重若是用来POST,即发送数据包,在不加载网页的情况下直接与服务器交互。上面开端上课它们的使用。注:我在那边唯有商讨操作网页,像聊天、文件传输在那不作为主要,终归那么些相对来讲依旧比非常少用的。

從一向以來討論到现在﹐作者們都不斷地接觸到“封包”這個詞﹐相信你也很有興趣想领会這個“封包”毕竟是個什麼樣的東東吧﹗上边就讓我們一齐拜见一個IP封包毕竟包罗了那个內容。

 

    webbrowser,那是一个相比基础的控件,关于它的上学资料,英特网恐怕广大的。用它操作网页是一种看得见,摸得着的长河,基本的任务都能一气浑成。经过八个月的应用经验,总计一下它不可能到位的义务:1.不可能操作JS脚本。如若你操作的网页内容被放在了JS脚本里,那么就毫无用那几个控件了。2.不可能点击Flash按键。Flash开关比在网页中较新鲜,用webbrowser控件相当小概找到那个目的。小编所遭遇的正是这两条,当然料定还或然有其他。上边通过一个万能代码来看一下那一个控件:

擷取IP封包

 

For lngIndex= 1 To
WebBrowser1.Document.All.Length – 1

假设你的機器上面裝有 netxray
等封包擷取軟體﹐或采纳NT的“網路監視器”﹐作者們就能够擷取那多少个進出本機的封包了。

下边开端行动:
点击View(查看)——Option(选项)【下图】

    If InStr(1,
WebBrowser1.Document.All(lngIndex).outerhtml, “替换为你要物色的根本字”)
> 0 Then ‘查找关键字

當笔者們打開擷取功用之後﹐然後使用ping命令隨便ping一個地方﹐如﹕www.hinet.net。笔者們能够擷取到如下這些封包﹕

 

        If
UCase(WebBrowser1.Document.All(lngIndex).tagName) = “INPUT” Then
‘假如点击是超链接 把INPUT换来A

 

图片 2

           ‘
WebBrowser1.Document.All(lngIndex).Click 
‘假设是模仿点击就用这么些讲话

图片 3

将除了Send(发送)以外的任何3个选项全部撤消选用,并规定【下图】(小秘籍:此处笔者只想要截取发送的封包,别的对自个儿的话只会碍眼,也影响今后的操作,所以只留Send)

          
WebBrowser1.Document.All(lngIndex).Checked = True 
‘要是是仿照选中复选框,就用这么些讲话

 

 

            Exit For

正如作者們所見到的﹐作者們擷取到DNS和ICMP的封包了﹐因為www.hinet.net供给到DNS解釋﹐而ping是一個ICMP協定。您或許知道ICMP封包的type為“Echo
Request”和“Echo Reply”分別代表什麼意思吧﹖

图片 4

        End If

讓笔者們再深远一點﹐拜见DNS封包裡面有个别什麼東東﹕

点击Target program(目的程序),选用所玩游戏的长河(此处玩傲剑用的是单进度版的Opera浏览器,故很轻巧就挑选了,再Open(展开)【下图】,注意:现在场景上有非常多浏览器是多进程的,这些就需求我们用耐心去千家万户测量检验了,大概巧合之下第三回就当选了

    End If

 

 

Next

图片 5

图片 6

用这一个代码,能够灵活的模拟:点击开关、点击超链接、操作复选框、操作下拉式菜单、填写数据。那个代码差不离的乐趣:最外层循环遍历整个网页中的标签对象,然后用首个循环去匹配这么些指标中是否有我们意在的主要字,借使有的话,再决断这些标签对象的品种,一般意况下,超链接是A,其余的均为INPUT,注意一下早晚要大写,因为从webbrowser中拿走的网页源码全都以大写的,与诚实源码不一样。在最里面也正是操作语句了,借使是文本框输入就写成WebBrowser1.Document.All(lngIndex).Text

“期望的字符串”。借使是想点击按键大概超链接就用WebBrowser1.Document.All(lngIndex).Click。若是是选中复选框WebBrowser1.Document.All(lngIndex).Checked
= True。假设是下拉式菜单WebBrowser1.Document.All(lngIndex).Value =
“对应的值”。基本的操作就是那几个,轻易胜任。当然,用那么些万能代码是在不得已的场馆下才用的。若是网页很简短,按键,输入框等有ID,那么直接写WebBrowser1.Document.All(“开关的ID”).Click就足以点击开关了,其余同理,输入ID就可以。

     
在实际利用中,我们会遇到多个拾分脑瓜疼的主题素材:webbrowser操作网页必需等待网页加载成功,不然会找不到标签对象。网络相比盛行的做法是用webbrowser的Busy方法等待网页加载成功,但是平昔未有效果与利益。在此作者分享一下和睦的经验,想想大家人是怎么判定网页是还是不是加载成功的?因为出现了有的新的音讯,因为有浮动!我们自然也得以让程序这么去推断。大家得以在新网页中找二个永久存在的字符,用while循环不断获取webbrowser的网页源码,直到出现那一个定位字符,我们就觉着加载成功。举例,在目标网页里会油不过生123这些字符,那么:

While
Instr(WebBrowser1.Document.All(1).outerhtml,”123”) =0

      Doevents

Wnd

与此相类似写能够很好的完结等待网页加载成功的目标。这里WebBrowser1.Document.All(1).outerhtml是webbrowser中具有的价签对象,基本上能够说是获得网页源码。若是用这几个讲话无法获取就用WebBrowser1.Document.Body.InnerHtml,最棒是用第2个,第二个不保证。顺便提一下,WebBrowser1.Document.All(1).outerhtml是收获网页源码,假诺大家不想要源码,而想要网页内容,即浏览器显示给本身的文字,能够用:WebBrowser1.Document.body.innertext。

     
还或者有一个主题材料正是有个别网址点击链接时会在新的窗口中开采,那时候webbrowser会调用IE浏览器,导致网页跳出程序,那么能够用上边包车型客车代码管理NewWindow2事件:

Private Sub
WebBrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)

   Dim frmWB As Form1

   Set frmWB = New Form1

 

   frmWB.WebBrowser1.RegisterAsBrowser =
True

 

   Set ppDisp =
frmWB.WebBrowser1.Object

   frmWB.Visible = True

   Unload Me

End Sub

留神这里的Form1是窗体名称,要依靠你的实际情状修改。

     
其他,注意一下Silent属性,把它设为Ture,幸免弹出一部分脚本错误的唤起。

     
好了,提起那这么些控件也就没怎么了。常用的都说了,一些瞩指标主题材料也说了,其余的将要靠大家温馨拼命了!多练!(参照他事他说加以考察资料:webbrowser控件属性、方法大全。)

     
Inet控件。相信大家早就认识到了Webbrowser的不足之处:慢!因为它要等待网页加载成功,每一个图形,每三个本子都要加载出来,不止数据量大,并且导致速度太慢,轻易的例证,假诺要暴力破解密码,鲜明webbrowser是无法的!。Inet控件的POST成效恰好弥补了这一个毛病。POST是一直以数据包的花样,直接与服务器对话,例如你想登录QQ空间,根本无须过去打开那贰个网页,直接POST给QQ服务器登入数据,符合条件就登入成功,就足以扩充下一步操作了。这几个操作由于都以在无形之中的,所以难度比webbrowser控件大。笔者不知情读那篇文章的人是哪些水平,由于这么些涉及的学识太多太杂,继续往下看前边您不能够不先学会抓包工具HTTPWATCH的施用(点击下载教程以及软件)。假设你对那一个软件具有精晓,就足以进来下一步了!作者重新表达,关于封包发包那有个别文化很乱很杂,你倘诺跟着本人走,不会的就停下来多花点武术,权且不懂也没事,等您把笔者那篇文章看完了自个儿童卫生保健你会!

 

    什么是数据包?

 

    
数据包,又称作封包。一句话来说,你上网张开网页,那些轻易的动作,正是您头阵送数据包给网址,它接受到了后来,依照你发送的数据包的IP地址,再次回到给您网页的数据包,也正是说,网页的浏览,实际上就是数据包的交流。以上威尼斯红部分是百度健全下面对数据包的笺注,有朋友或许看不晓得,那么本身就顺着这么些解释,来举贰个特出的“老王借钱”例子:

 

     1、隔壁的老王向你借钱。

     2、接收到老王借钱的伏乞。

     3、检查自身的腰包是或不是有钱。

     4、是借依旧不借?

    
5、把结果报告老王。老王就能够作出有关的反应(借的话他就爽,不借她自然就不得劲了~)。

 

    
其实上边只是二个再也差不离可是的借钱作为,然则即使大家把它套用在顾客端与网页服务端的通信流程的话,会意识实际上互相兼有异途同归之妙:

 

    
1、老王约等于顾客端,而借钱也就相当于二个伸手。钱的多寡,就一定于须求中的参数。老王向您借钱,大家能够把这一步称为POST,便是把借钱那一个央浼传递给您(服务端)。

    
2、你,就相当于服务端,而这几个钱,说白了,正是顾客端传递过来的参数。你接到老王发出的借钱央求,这一步叫做响应。

    
3、检查本身的钱包是还是不是有钱,就一定于服务器验证客户的央求是还是不是合法。举个例子一个英特网支付系统,客户乞请要开销一千块钱,然后客户就能够把1000块钱这一个参数传递到服务端,服务端当然就得验证一下顾客的卡包里面是还是不是有一千块钱,要是有的话就透过,未有的话当然就回来错误新闻了。那是印证/校验数据。

    
4、当第四步过后,借使腰包有钱,而你又情愿借给老王,此时,就约等于服务端给顾客端重回贰个音信,是借(True)。反之,正是不借(False)。这一步叫做重临/反馈。

    
5、老王接到你给他回的新闻,就能依照结果的不及而产生响应的动作。响应你动作的这一格局称为GET。

 

    
那样一来,相信你对服务端和客商端的主导通信进度大家都知晓了。不过,形成这一进程的来源是吗?是钱!作者只好说钱是作恶多端的(那也让笔者说得通,YY下)

    
服务端和顾客端之间重要的报道条件当然正是必需可以联网。你说假设老王是尸体的话,怎么向您借钱,对啊?可是即便实在有死人向你借钱的话……离自身远点。其实这一个“借钱”的历程,钱充当着相比关键的剧中人物,贰个数据包里面满含了重重参数,参数也是有相应的值。而“钱”,在那边就出任着三个数据包参数的剧中人物,钱的多寡,正是那一个数量包参数的值。

 

    
到那边,大家就从头本课题的追究吧,因个人水平有限,文中难免会有不妥之处,招待大腕拍砖。

 

    
经过前面包车型大巴注明(纯属胡扯),相信大家对数据包也会有叁个歪曲的定义了,当然,那只是相对于尚未接触过这一面内容的新手来说。下一章我们来斟酌一下怎么去抓包,并来编排一个QQ空间的留言工具来完结那叁个课题的读书。

 

     数据包有如何用?

 

    
数据包的相互是最尾巴部分的互连网合同通信,利用数据包,大家全然能够画虎类犬客商机和服务端通信的长河。比方大家要求编写制定三个帐号注册器,假诺用守旧的效仿网页表填写的格局去贯彻的话,那样固然比人手工业操作的方法要快,但也还亟需载入一个网页,速度依然比不上的。但借使用多少包去完结的话,就一定于只把一多级的字符串传递到对象服务器就可以。载入一个网页,包蕴了图片、表单等因素,大学一年级点的话起码得要下载几百KB的多少,但数据包,最多也就几KB,假如客商机和服务器的互连网都经常的话,提交数据包到服务器差相当少便是一下子的工作。

NDIS5中间层驱动如何修改封包或自定义封包,抓包封包。 

     如何抓包?

 

    
相信大家对抓包这么些概念并不目生。从字面上很好精通,抓包便是一个捕获数据包的经过。大家近日说了,顾客机和网页服务器之间的报道都会时有产生数据包,假设大家想模仿它那个通信进程的话,就必需要把它们之间通信所产生的数目包捕捉下来,再拓宽分析。

    
可能大家都闻讯过WEP,Sniffer等工具,其实它们都以抓包工具。然则多少包有区别类型,TCP包,平日是软件商讨所发生的数据包,我们玩网游的时候和服务器所发生的便是TCP包。而作者辈在网页通信的时候,所发生的正是HTTP包了。TCP包是以二进制的点子展开传输的,HTTP却是以公开的主意举办传输的。

    
在那些科目中,大家统一接纳HTTPWATCH这么些软件来实行抓包。

     HTTPWATCH
是一个IE插件,也是多少个精锐的HTTP捕捉工具。

 

    
安装完HTTPWATCH之后,要开荒IE浏览器,在浏览器工具栏处张开才行(第三方浏览器诸如
360 都不帮忙IE插件)。大家先来看看HTTPWATCH的强硬分界面:

HTTPWATCH 界面:

图片 7

①工具栏

        
Record:开首监听网页数据包。

         Stop:结束监听。

         Clear:清空结果列表。

 

     ②数目包监听列表

     ③数据包详细音讯       

        
基本信息(Overview):突显数据包的目的地址,重临结果等新闻。

         时间图表(Time
Chart):显示数据包在通信状态中 连接、等待、接收 的占一时间。

        
头音讯(Headers):HTTP的基本头消息。

         Cookie:百度完善

        
缓存(Cache):在地方有的时候文件夹暂存的多少。

         查询字符串(Query
String):表单位面积产量生的查询动作的机要查询参数。

         传递参数(POST
Data):POST数据包的主要参数,相当于传递到服务器的参数。

        
重回音信(Content):重临的页面源码。

        
数据流(Stream):提交到服务器的多少包参数以及HTTP头新闻。

 

    
以上正是HTTPWATCH的大致结构。在展开IE浏览器,启用那几个插件之后,点击“Record”就能够张开数据包的监听了。在监听状态下,你所做的每一步网页操作都会有相关的数量流动,HTTPWATCH差不离上得以抓三种展现:

 

     1.POST行为

     2.GET行为

     3.CACHE

 

    
POST我们都很纯熟的了,正是向服务器传递参数。通常大家提交二个网页表单的时候,产生的也是POST方法。GET大家也不会面生,当POST完结之后,服务器一般都会再次回到一些音讯给顾客,那就是争辩于客户来说的GET。轻便通俗点的话,大家能够把POST明白为上载数据,把GET领会为下载数据。至于CACHE,那些就是缓存操作,直接从地面缓存里面抽取来的能源。

    
在这里我们学习的便是POST数据,我们将会因此二个QQ空间的留言工具来带咱们入门这么些课题的原委。

    
首先大家张开

    
无人不知,若无在网站上登入自身的QQ,是没办法留言的,因为QQ空间不扶助佚名留言。大家步向网址的时候,它也会先唤醒登陆,然后才方可承袭操作。所以,大家假诺要做如此贰个留言工具以来,就必供给具有以下步骤:

 

     1.登录QQ

     2.出殡和埋葬数据包

     3.拿到重回新闻

 

    
QQ的报到数据包小编在此地就不演示抓包了,因为Tencent一度改了新的记名接口,不过旧的还是能用,小编那边如故用旧的QQ登陆数据包。在此以前,大家先来给亲密的朋友的QQ空间留言,抓包,小编在有钱哥的上空里面留言“测验测验”,大家能够看看,列表中就生出看多个新的类别。其Method属性正是POST!这正是传递到QQ空间服务器的数量包了,大家能够看看深蓝框框的内容,是否感到很熟知?

 

con=%E6%B5%8B%E8%AF%95%E6%B5%8B%E8%AF%95%7E%7E&uin=298096110&suin=542464221

 

    
没有错,那水晶绿字体部分就是轶闻中的HTTP数据包!

    
大家能够看看,这些数据包里面唯有多个参数,分别是con,uin,suin,那多个参数一眼看上去就很轻便领会它的乐趣了,大家深入分析数据包的时候一般都以依据其参数名称的字面意思以及参数的值来剖断那是贰个什么的参数。

    
小编刚才在比你·有钱的QQ空间留言了,作者的QQ就是542464221,而有钱的QQ是298096110。除外,还应该有二个最要害的参数,那正是con,那也是大家留言的从头到尾的经过!我们恐怕会意外,下边包车型客车留言内容不是“测验测量试验~~”吗?怎么以后望着形成了一群乱码?

    
其实这不是乱码,而是网页编码。至于转换的方法,我们会在底下讲到。

    
相信大家都清楚抓包了,自个儿多实施五回,你也足以找一些网址上的挂号页面,自个儿尝尝着注册三个帐号,然后提交四个表单,抓包看看,尝试着去分析叁个数据包,弄明白各样参数的野趣。

 

 

     如何发送数据包?

    
这一节是本学科的主导部分。既然大家早就捕捉到了QQ空间留言的数据包,那么大家完全能够效仿这么些进程了。VB对于网络的操控性能依旧很不错的。在VB中封装了inet,winsock等控件,能够很自在的调用种种措施去发HTTP数据包。在本教程例子当中,我们用inet作为例子去教授一下什么发送数据包。

 

     我们先来寻访Inet的execute方法

     InetObject.Execute
“[POST页面URL]”, “POST”, “要发送的多少包内容”, “封大庆消息”

 

    
我们在出殡和埋葬数据包的时候须要注意,二个整机的数据包,应该是由报头和封包内容结合的。比如上边大家抓出来的数据包之中:

 

     那是数码包内容:

    
con=%E6%B5%8B%E8%AF%95%E6%B5%8B%E8%AF%95%7E%7E&uin=298096110&suin=542464221

 

     那是多少珠海音讯:

     POST /cgi-bin/mobile_update_msg
HTTP/1.1

     Accept: image/jpeg,
application/x-ms-application, image/gif, application/xaml+xml,
image/pjpeg, application/x-ms-xbap, application/x-shockwave-flash,
application/QVOD, application/QVOD, application/vnd.ms-excel,
application/vnd.ms-     powerpoint, application/msword, */*

     Referer:

     Accept-Language: zh-CN

     User-Agent: Mozilla/4.0 (compatible;
MSIE 8.0; Windows NT 6.1; Trident/4.0; QQDownload 646; SLCC2; .NET
CLR      2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center
PC 6.0; CIBA)

     Content-Type:
application/x-www-form-urlencoded

     Accept-Encoding: gzip,
deflate

     Host: qz.qq.com

     Content-Length: 75

     Connection: Keep-Alive

     Cache-Control: no-cache

     Cookie: pgv_pvid=5935155721;
pgv_flv=10.0;
ptcz=711d7cb1ddde86208f1cefa14aeef570559b7327db1e1500853742cd7ff607b7;
pvid=5935155721; icache=GDGGMM@LM; pgv_r_cookie=107649076403;
o_cookie=542464221; suid=5538977674; adid=542464221;
adSP=irZ4SlVL95zhdFpg5bULoRAhsvy9F4wI/hgQDREbzJc=_4400_326830_1278923685_;
adVer=2839; ac=1,030,006; showModel=list; tips-share=1;
aq_displaybubble=542464221; pt2gguin=o0542464221; uin=o0542464221;
skey=@cKMj7aqRM; speed=1; browsertype=4; inbox=0

 

 

    
一般的话,大家在inet之中并不要求把数据包的具备头信息都增大进去。不过有一句是必须求的,那正是:

     Content-Type:
application/x-www-form-urlencoded

 

    
这钦定了数据包网页所协理的连串。借使是在winsock里面包车型客车话,则供给附带全体的头音信。头音讯钦点了二个数据包的习性等新闻。通过地方的头消息,相信大家也足以识破非常多内容。

    
大家再回到地方一小节所提到的难点,数据包里面包车型地铁con参数为啥是通过转换了的字符?因为大家在访谈三个网页,或许在HTTP数据传输的时候,服务器并不能够向来识别普通话字符,由此必要转移。分歧编码格局的改造格局也是有差异。

          
QQ空间留言工具的例程作者一度写好了,里面包车型大巴注脚很详细,小编在这里就非常少说了。我们下载例子看看就一清二楚。这几个事例真的注释很详细,一看就能够!(点击下载QQ留言工具)

 

     
好了,看到这相信你对抓包、封包已经有了必然了然,並且尝试了!上面的事例是来源于互联网的,这个留言工具的代码也比较复杂,为了让读者越来越明显,笔者再举叁个例证,简化一下代码。

     
作者就拿博客园开刀吧!登陆和讯博客!首先展开本人的和讯博客,然后点击登陆,再点击HTTPWATCH的Record,输完帐号密码,点击登入,可爱的小马鞍包都被大家抓到了,上边是stream(流)

POST /logins.jsp HTTP/1.1

Accept: text/html, application/xhtml+xml,
*/*

Referer:

Accept-Language: zh-CN

User-Agent: Mozilla/5.0 (compatible; MSIE
9.0; Windows NT 6.1; Trident/5.0)

Content-Type:
application/x-www-form-urlencoded

Accept-Encoding: gzip, deflate

Host: reg.163.com

Content-Length: 205

Connection: Keep-Alive

Cache-Control: no-cache

Cookie: MAIL163_SSN=yangyuankp;
vjuids=b46ab8d61.12dc620ae36.0.8235534c19532;
vjlast=1296109187.1307365009.22;
_ntes_nnid=174bb1179a0306265cd30352879cecbd,0;
_ntes_nuid=174bb1179a0306265cd30352879cecbd;
P_INFO=yangyuankp@163.com|1306890848|2|blog|11&15|heb&1306846208&blog#heb&131000#10|189147&1;
ALLYESID4=00110324074458898832678; NTES_LOGINED=true;
__utma=187553192.944603223.1301881124.1301881124.1301887705.2;
__utmz=187553192.1301881124.1.1.utmcsr=blog.163.com|utmccn=(referral)|utmcmd=referral|utmcct=/error.do;
USERTRACK=219.243.79.67.1306393576113082;
SID=16552eab-8fda-403b-874f-b199b2b23626;
JSESSIONID=dacwhOfantSjj6j2TM8bt

 

password=123456&type=1&url=http%3A%2F%2Fblog.163.com%2FloginGate.do%3Ftarget%3Dhttp%253A%252F%252Fyangyuankp.blog.163.com%252F%26blogActivation%3Dtrue&product=blog&savelogin=0&username=18932624147@163.com

诚如景观下,在流里面已经包涵了供给的头新闻,POSTDATA等等,所以就直接看这一个了!

大家来看Content-Type:
application/x-www-form-urlencoded,那是个必备的头消息,告诉服务器怎么解码。在VB中写对应的:Const
POST_HEADE冠道 =
“CONTENT-TYPE:application/x-www-form-urlencoded”。然后大家去找POST地址:

图片 8

在这几个POST消息最终是地点,在VB中写:Const
POST_URL =

= “password=123456&type=1&product=blog&savelogin=0&username=18932624147@163.com”那样是或不是很清晰啊(参数直间用&连接)。。。万事具备只欠POST了!大家写Inet1.Execute
POST_URL, “POST”, POST_DATA, POST_HEADE奥德赛。然后等待数据接收达成 

Do While Inet1.StillExecuting

    DoEvents

  Loop

成就现在得到登陆后的主页

Inet1.Execute
“”, “GET”

再等待。。。

    Do While Inet1.StillExecuting

    DoEvents

  Loop

  获取二进制数据,给字节数组

BinBuff() = Inet1.GetChunk(0,
icByteArray)

解析为Unicode 并在text中显示:

Text1.Text = StrConv(BinBuff(),
vbUnicode)

大工造成!那是大家会在text中见到登陆成功的源码。。。是或不是很简短????有未有自豪感??是否认为温馨会了比非常多东西?? 

XMLHTTP用法一模二样,在此就非常少说了。(点击下载参谋资料以及XMLHTTPQQ申请器源码)

  

看到那,相信你也算一个一把手了!笔者再给读者介绍一些经验和注意事项,就更周详了!

以下是脑子经验!!!!!!!!!!!

要注意网页的编码。在用Inet控件传送数据时,直接写就能够(若无特殊供给的景观下,像QQ密码,是要加密后再发送的),可是接受时要分处境,假设网页是UTF-8,将在用UTF-8解析二进制数组,这几个函数上边QQ留言代码里有。若是是GB2312,就用StrConv(“二进制数组”,VBUnicode)函数来深入分析,不然中文乱码。

要精晓Inet和webbrowser都足以记录cookic,所以不要你管cookic,产生比异常的大低价啊!其他,Inet控件和webbrowser控件的cookic是能够互相利用的,比方您用Inet控件登录成功,在用同三个主次里的webbrowser展开那个网址时,也是登入的情景,反之亦然。在此笔者相当多谢新乡师范给了本身此次练习的空子!为啥?因为本人首先次试验就让作者超越了并未有cookie的网址!!!小编不过个新手啊!!就无法让自家顺手的操作二遍嘛??对于未有cookie的网址,登入成功后只可以GET主页,倘若GET其余的网页立即退出(有cookie的网址直接GET有个别存在的页面就足以,不管那些页面在哪),笔者也想过用webbrowser登入,让它保持对话,然后用Inet举办POST,但是没用,因为一贯未曾cookie,这四个控件是维系不上的!经过许数十次试验,因为互联网未有那上边的篇章,所以独有实验!终于成功了!下边讲授一下不能够GET其余页面包车型地铁开始和结果!我们得以剖判,为啥在真实际操作作中点击链接是登陆的,而笔者辈模拟GET便是没用的呢?既然那一个网站未有cookie,那么它剖断大家登入身份的举世无双路径正是判别来源页面,如若大家凭空而来,直接GET,断定是被驳回的!但如若大家在GET的时候加点参数:在HTTP头里拉长referre:xxx(xxx是指登陆成功的网页,例子:Inet1.Execute
“”,
“GET”, , “Referer
:”),也正是报告服务器本人是从哪来的,服务器发掘你来自于登陆成功的页面,也就表明了您的地点。那几个猜度最棒的验证是你把随意多个记名成功的页面ULacrosseL复制到叁个新的浏览器窗口的地址栏里,点击转到你会开采本身已经退出登入了。。所以,要留神深入分析参数,少了就不可相信。。。那些将在靠多施行了。。。

还可能有需求留意的是假如您登入的页面有跳转,约等于有在那之中等网页,像loading什么的,登陆后,不得以一贯去POST别的网页,必得GET一下它自动跳转到的主页,不然你POST别的网页也得不到客户新闻,获得的只是叁个空架子。或者是那类网址必得通过主页加载贰个数目,如若跳过会变成登入成功但未有数据的场景。

要留神POST与GET的分歧(假设您曾经有其一难点表达你是由衷学习了!):

1、HTTP 独有POST和GET
二种命令形式;

2、POST是被设计用来向上放东西的,而GET是被设计用来从劳动器取东西的,GET也能够向服务器传送相当少的多少,而Get之所以也能传送数据,只是用来统一计划报告服务器,你终究要求什么的数据.POST的消息作为HTTP
央求的剧情,而GET是在HTTP
尾部传输的;所以GET可知但不安全,POST不可知,安全!

3、POST与GET在HTTP
中传递的主意不相同,GET的参数是在HTTP 的底部传送的,而Post的数目则是在HTTP
央求的内容里传递;

4、POST传输数据时,没有需求在UXC90L中显得出来,而GET方法要在ULX570L中展示;

5、GET方法由于饱受U奇骏L长度的限制,只可以传递大致1024字节;POST传输的数据量大,可以达成2M,而据说微软方面包车型地铁布道,微软对用
Request.Form() 可抽取的最大数目有限制,IIS 4 中为 80 KB 字节,IIS 5 中为
100 KB 字节;

6、SOAP是借助于HTTP
POST格局完毕的;

实质上那几个经验就与本文非亲非故了,不知道我们有未有在意丰硕QQ留言的源码里用到了Scriptcontrol控件(控件具体用法表达下载),这一个控件是用来在VB运转脚本的,有如何用捏?很有用!举例您在登陆三个网页时,人家要求传送的密码用他们的算法加密,可是你哪有这一个算法啊。。。。。。别急,去他们网页的JS脚本里边去找这几个算法,然后复制到VB中,把代码赋给Scriptcontrol控件就能够运行加密了。

好了,写了这么多。。。。。。真是累啊。。。。。能或不能够学会,照旧在于你和谐!努力呢!为了祖国美好的昨天!为了社会的开发进取!加油!

 

 

进而点击Send(发送)分界面,如下图,接着按图中古铜黑按键就能够抓包了【下图】

倘令你往上卷回有關“DNS”的稿子﹐看看作者們用
nslookup 的 debug 格局寻觅 www.hinet.ne
t這個網址時候﹐引證一下那裡的內容﹐您就知晓這個封包說些什麼了。

 

下边讓小编們再看看ICMP封包裡面包车型地铁內容﹕

图片 9

 

点击乳白开关开头记录后,将鼠标转移到娱乐,在游玩界面按了弹指间X键(傲剑的打坐快捷键,至于为什么选拔那个开关,也是因而数次施用的一点小心得,使用X键,点击一下就能够来看人物打坐,大概站出发,特别直观)立刻按深橙按键结束,看吗,只抓到三个包,太棒了!【下图】不用麻烦找包了(那也是干吗在安装的时候只留下Send的原故了)

图片 10

 

 

图片 11

其實小编們真正擷取到的封包內容應該是紅圈的範圍﹐在上头和右邊的欄目裡面包车型客车資料是經過程式整理出來的結果。在第一行裡面﹐小编們看到“00
80 c7 47 8c 9a 48 54 e8 27 75
77”這串數字﹐所表示的分別是指标地和來源地的MAC地址﹔然後“08
00”代表的是一個Ethernet II的IP協定類型。Ethernet
II能够說是IEEE802.3的改進版本。(還記得“網路概論”裡面關於“邏輯形態”的敘述麼﹖)。這裡能够說是Datalink網路層所要追蹤的資料。

 

然後﹐接下來的是屬於IP封包的內容﹕

 

 

入选刚才抓到的打坐(X)的包,按鼠标右键,选拔Set
Send List with this socket
id(设置用那么些封包ID到追踪器)后,并无直观表象【下图】

图片 12

图片 13

 

 

請先記著上圖的內容﹐笔者筹划在下一節裡面在詳細討論每一行的情趣。

上面以后天的封包为例来行使一下WPE
点击导入以下封包,选中一个,再点击张开【下图】

IP封包格式

 

率先﹐讓作者們看看IP封包的格式是怎樣的﹐和其組成都部队份﹐以及各部份的長度如何﹕

图片 14

Version (4)

导入后选中3个小勾,接着就能够按金色按键进行Send
Settings(发送设置)了,因为是3条,实际正是3个包,所以设置3Time(s),便是3次,Time(定期):100ms(100纳秒),设置完后按入手莲灰按键发送封包就能够【下图】

Internet Header Length
(4)

图片 15

Type of Service
(8)

 

Total Length (16)

可以看出从【邢台城】传送到了【圆月山庄第三层】【下图】

Identification
(16)

 

Flags (3)

 

Fragment Offset
(13)

好了,基本上就完工了,每一回登陆务观戏都要拓宽此般操作,或者也会有智能工具能够帮忙大家更便于的操作封包,在此就不商讨了。当然有意思味的吧友恐怕还要本人营造封包,那么大家以地方打坐封包为例吧【下图】

Time To Live (8)

 

Protocol (8)

图片 16

Header checksum
(16)

为了不受怪物的熏陶,首先回到【曲靖城】
好,在此包上点击鼠标右键,再点击Add to Send List(增多到追踪器)【下图】

Source Address
(32)

 

Destination Address
(32)

图片 17

Options (Variable)

大家选中那些封包,双击还足以更换名字哦,最终Ok(明显)【下图】

Padding (0-24)

 

  
Data
…. 

图片 18

在上圖中﹐括號之內的數字便是各部件的長度(bit)﹐假如您夠細心﹐就會計算得出每一列的總長度都是32bit。下边小编們分別對各部件名稱解釋一下﹕

修改名字随后,按鲜青按键进行Send
Settings(发送设置),本来是3次,这里改1次,Time(定期):100ms(100纳秒),设置完后按下手浅水草绿开关发送封包【下图】

Version

图片 19