jjf 发表于 2013-5-13 23:09:53

关于AU3能否伪装网页Referer的问题 [已解决]

本帖最后由 jjf 于 2013-5-16 23:15 编辑

很想在程序中内嵌一个网页,但是经过抓包分析发现网页会检查Referer,防盗链。

找遍了论坛也没发现伪装Referer的有效例子,也看了帮助,貌似只有 _WinHttpOpenRequest里面有“$sReferrer”的参数,但是能力有限,确实没看懂
希望各路高手能够指点一二…感激不尽{:face (461):}

sanmoking 发表于 2013-5-14 13:22:11

同求嵌入ie如何伪装Referer

jjf 发表于 2013-5-14 18:35:56

求网络大神指点

ceoguang 发表于 2013-5-15 00:12:06

如果是主动调用,可以直接在IWebBrowser2接口的Navigate函数的最后一个参数指定Referer.
如果是被动调用,只能进行HOOK,例如hook Ws2_32中的send来直接修改数据包

jjf 发表于 2013-5-15 08:34:37

回复 4# ceoguang


    ceoguang大神技术太高,这个IWebBrowser2我找不到任何帮助实例,有相关的帖子吗?{:face (198):}

ceoguang 发表于 2013-5-15 10:17:02

回复 5# jjf #include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt('GUIOnEventMode', 1)

Main()
Func Main()
        Local $oIE = ObjCreate('Shell.Explorer.2')
        Local $hGui = GUICreate('', 600, 400)
        GUICtrlCreateObj($oIE, 0, 0, 600, 400)
        GUISetOnEvent(-3, 'GuiEvent')
        $oIE.navigate('about:blank')
        GUISetState()
        $oIE.navigate('http://www.autoitx.com/', 2, '', '', StringFormat('Referer:http://www.baidu.com/\r\nUser-Agent:MyAgent'));
        While 1
                Sleep(100)
        WEnd
EndFunc   ;==>Main

Func GuiEvent()
        Switch @GUI_CtrlId
                Case -3
                        GUIDelete()
                        Exit
        EndSwitch
EndFunc   ;==>GuiEvent

whitehead 发表于 2013-5-15 18:31:50

能伪装Referer,要是再能伪装IP就更好了

ceoguang 发表于 2013-5-15 21:02:33

回复 7# whitehead
伪装IP是可以的,只要建立一个原生SOCKET,你就可以自己构造数据包头,你想改成谁的都可以。
但,http是居于TCP协议,TCP是可靠传输,会话的建立需要三次握手才能通讯,而且TCP的初始系列号是随机生成的.一旦你使用了伪装的IP来通讯,即使你能猜中系列号,服务端发给你的数据你还有可能收到么
?所以,在真实的HTTP应用中,伪装IP是没有必要的,除非用于攻击或数据截获.

whitehead 发表于 2013-5-15 21:16:30

回复 8# ceoguang
ceoguang真是高手

jjf 发表于 2013-5-15 21:47:06

回复 8# ceoguang


   我搜索遍了论坛没找到任何的信息,居然完美解决了!

完全赞同楼上的话 ceoguang确实是高手,在此膜拜啊!!!{:face (198):}

chamlien 发表于 2016-6-12 15:02:29

无意看到本帖,回复收藏
页: [1]
查看完整版本: 关于AU3能否伪装网页Referer的问题 [已解决]