ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 16480|回复: 29

[原创] Winsock 组件安装及示范代码(利用139邮箱发免费手机短信)

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2014-5-26 16:52 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖已被收录到知识树中,索引项:控件
本帖最后由 kangatang 于 2014-5-26 23:47 编辑

Windows脚本可以调用MSWinsock控件获得比较强大的网络访问能力,但那个mswinsck.ocx不是系统自带的,这使得该控件的实用性大打折扣。而且,脚本要调用MSWinsock还必须克服一个困难。
     以"MSWinsock"为关键字,使用百度搜索网页,可以获得至少3个VBS调用MSWinsock控件的例子:获取本机IP、端口扫描和发在"黑防" 的《VBS+MSWinsock打造灵巧UDP后门》。但是,当你下载并注册mswinsck.ocx,然后尝试那些代码时,却会得到一个"类别未授权使用(Class is not licensed for use)"错误,错误号0x80040112。那些代码的作者似乎都以为MSWinsock和一般的控件一样,只要用regsvr32注册就能正常使用了,没有实际测试它的可移植性。而转贴文章的人,更不会关心内容是否可靠,一味地复制粘贴而已。结果,网上所有关于VBS调用MSWinsock的例子都是"空中楼阁",没有一个跑的起来。国内如此,国外也一样。所有对该控件无法使用的质疑,都被人以"需要注册"为理由打发了。当然,也有了解"真相"的人,但其给出的解决方案竟然是用VB重新写个ocx封装MSWinsock,这实在是@#$% ^&!。
    那么,"真相"究竟是什么?搜索"类别未授权使用"和错误号,这是个好主意,但结果不理想。我们需要逆向思考,为什么原作者不会遇到错误。答案是原作者的mswinsck.ocx不是单独注册的,而是随VB一起安装的。其中的差别在于,后者会安装VB控件的设计时许可证 (design-time license)。ActiveX控件的License有两种:设计时(design-time)和运行时(run- time)。当编译调用了某个控件的exe/dll/ocx时,编译器会自动加入该控件的运行时许可证,所以"重新写个ocx封装MSWinsock"这个办法可行。使用脚本直接调用MSWinsock时没有运行时许可证,这时脚本宿主会尝试在注册表中获取设计时许可证,单独注册的MSWinsock没有相应的设计时许可证,所以就出错了。

原来单独注册这个控件后,在使用这个控件的时候需要“运行时许可”,也就是需要一个Winsock Control license key!我最开始也是因为这个问题而搞得焦头烂额,但现在找到问题的症结了,自然也就好搞了。
去网上找找这个Key。。。找到了。。。并将其加入注册表。。。OK。。。运行无问题!
为了简化大家的实际操作,特写了个集下载-注册-授权于一体的程序(见以下附件),以帮助那些需要使用Winsock的人。。。


如果你想安装WINSOCK组件,请运行下面的附件

Download & Reg Winsock.rar (1.7 KB, 下载次数: 538)



评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-5-26 16:53 | 显示全部楼层
本帖最后由 kangatang 于 2014-5-27 07:18 编辑

代码示范,以下程序用winsock多次连接服务器,完成139邮箱登录并发送免费手机短信。经测试,快速稳定,无验证码。该程序的源码没有完全公开,网上没有任何可找的线索(除了模拟登录和发送短信)。这是我是原创。也是我第一次用WINSOCK.

dim str, data, volumeRec, frag, JSESSIONID, yourid, yourpwd, relocation, w3code, RMKEY, sid
yourid="13888888888"
yourpwd = "sdfsdf"
Set socket = WScript.CreateObject("MSWinsock.Winsock","Winsock_")
frag = 1
socket.RemoteHost = "XXX.XXX.XXX.XX"
socket.RemotePort = XX
socket.Connect
Do while volumeRec=0 Or socket.State = 9
        WScript.Sleep 1000
Loop

checkreturn=Utf8ToUnicode(str)
JSESSIONID = split(split(checkreturn,"JSESSIONID=")(1), ";")(0)

volumeRec=0
frag = 2
if socket.state<> 0 then socket.close
socket.RemoteHost = "YYY.YYY.YYY.YY"
socket.RemotePort = YY
socket.Connect

Do while volumeRec=0 Or socket.State = 9
        WScript.Sleep 1000
Loop
checkreturn=Utf8ToUnicode(str)
relocation = trim(split(split(checkreturn,"Location: ")(1), vbCrLf)(0))
relocation = replace(relocation, "XXX.XXX.XXX.XX", "")
w3code = split(split(checkreturn, "__w3code=")(1), ";")(0)
RMKEY = split(split(checkreturn, "RMKEY=")(1), ";")(0)
sid = split(split(relocation, "sid=")(1), "&")(0)

volumeRec=0
frag = 4
if socket.state<> 0 then socket.close
socket.RemoteHost = "YYY.YYY.YYY.YY"
socket.RemotePort = YY
socket.Connect

Do while volumeRec=0 Or socket.State = 9
        WScript.Sleep 1000
Loop

Set socket = nothing
WScript.Quit

Sub Winsock_Connect()
select case frag
case 1
        data=  "GET / HTTP/1.1" & vbCrLf &_
        "Host: XXX.XXX.XXX.XX" & vbCrLf &_
        "DNT: 1" & vbCrLf & vbCrLf
        socket.SendData data
case 2
        postdata = "ur=" & yourid & "&pw=" & yourpwd & "&apc=0&_swv=4&switch_ver=3%2C4&adapt_ver=3&client_type=3&_fv=3&clt=3"
        data =  "POST /index.htm HTTP/1.1" & vbCrLf &_
        "Host: XXX.XXX.XXX.XX" & vbCrLf &_
        "Connection: keep-alive" & vbCrLf &_
        "Cache-Control: max-age=0" & vbCrLf &_
        "Content-Length: " & len(postdata) & vbCrLf &_
        "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" & vbCrLf &_
        "Content-Type: application/x-www-form-urlencoded" & vbCrLf &_
        "DNT: 1" & vbCrLf &_
        "Origin:XXX.XXX.XXX.XX" & vbCrLf &_
        "Referer: XXX.XXX.XXX.XX/" & vbCrLf &_
        "Accept-Encoding: gzip,deflate,sdch" & vbCrLf &_
        "Accept-Language: zh-CN,zh;q=0.8,en;q=0.6" & vbCrLf &_
        "Cookie: JSESSIONID=" & JSESSIONID & vbCrLf & vbCrLf & postdata
        socket.SendData data
case 4
        postdata = "&&sid=" & sid & "&vn=306&cmd=2&content=abc!%40%23&reciever=NNNNNNN&__randomNumber=" & randnumber()
        data =  "POST /ws12/w3/w3smsend HTTP/1.1" & vbCrLf &_
        "Host: XXX.XXX.XXX.XX" & vbCrLf &_
        "Connection: Keep-Alive" & vbCrLf &_
        "Content-Length: " & len(postdata) & vbCrLf &_
        "Origin: XXX.XXX.XXX.XX" & vbCrLf &_
        "Content-Type: application/x-www-form-urlencoded;charset=UTF-8" & vbCrLf &_
        "Accept: */*" & vbCrLf &_
        "DNT: 1" & vbCrLf &_
        "Referer: XXX.XXX.XXX.XX/bv12/sendsms.html?&sid=" & sid & "&vn=306&vid=&cmd=40" & vbCrLf &_
        "Accept-Encoding: gzip,deflate,sdch" & vbCrLf &_
        "Accept-Language: zh-CN,zh;q=0.8,en;q=0.6" & vbCrLf &_
        "Cache-Control: no-cache" & vbCrLf &_
        "Cookie: __w3code=" & wb3code & "; __wurtype=1;  footer_cookie_v_hasv=0; footer_cookies_v_list=3%2C4; footer_cookie_v_clienttype=31 footer_cookie_v_isfromHtml5=0; smsreferurl=" & encodeURI("XXX.XXX.XXX.XX" &lsihv ) & vbCrLf & postdata
        socket.SendData data
end select

End Sub

Sub Winsock_DataArrival(bytesTotal)
volumeRec=0
socket.GetData str,,bytesTotal
volumeRec = bytesTotal
End Sub


TA的精华主题

TA的得分主题

 楼主| 发表于 2014-5-26 21:17 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 kangatang 于 2014-5-26 23:56 编辑

139邮箱发送免费短信 - using winsock API. 介绍:
我尝试过xmlhttp和winhttp,由于该网站将cookie设置为 httponly,无法靠xmlhttp和winhttp来获取COOKIE,更谈不上继承了。
WINSOCK是非常底层的东西。所有xmlhttp和winhttp能干的事情,他基本上都能胜任。虽然他不能自动继承COOKIES,但可以将上一个会话的cookies写进将要发送的header里面。除此之外,伪造referer也他是轻而易举的事情。

不过用winsock访问https网页有巨大的技术障碍。另外,你在公司上外网,一般用的是代理服务器,如果需要Proxy-Authorization,那么用WINSOCK也是非常困难的。

如果用winsock做一般网页采集,那是一种牛刀晃过的感觉。总之,当出现xmlhttp和winhttp解决不了的问题,,,牛刀才会出现。



TA的精华主题

TA的得分主题

发表于 2014-5-26 22:49 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 liucqa 于 2014-5-26 22:51 编辑

http://blog.csdn.net/turejackon/article/details/3658155

http://shiseidogg.blog.sohu.com/35363269.html


VB6.0部分控件的授权密钥
分类:VB | 标签: 授权密钥
2007-02-26 11:58 阅读(218)评论(0)
如果用regsvr32注册后仍然无法使用控件,解决方法:将下列控件对应的license key写入到注册表中。

//   Masked   Edit   Control   6.0   license   key   
  HKEY_CLASSES_ROOT\Licenses\BC96F860-9928-11cf-8AFA-00AA00C00905   =   mmimfflflmqmlfffrlnmofhfkgrlmmfmqkqj   

  //   Chart   Control   6.0   (OLEDB)   license   key   
  HKEY_CLASSES_ROOT\Licenses\12B142A4-BD51-11d1-8C08-0000F8754DA1   =   aadhgafabafajhchnbchehfambfbbachmfmb   

  //   Common   Dialog   Control   6.0   license   key   
  HKEY_CLASSES_ROOT\Licenses\4D553650-6ABE-11cf-8ADB-00AA00C00905   =   gfjmrfkfifkmkfffrlmmgmhmnlulkmfmqkqj   

  //   ADO   Data   Control   6.0   (OLEDB)   license   key   
  HKEY_CLASSES_ROOT\Licenses\C4145310-469C-11d1-B182-00A0C922E820   =   konhqhioohihphkouimonhqhvnwiqhhhnjti   

  //   Common   Controls-3   6.0   license   key   
  HKEY_CLASSES_ROOT\Licenses\38911DA0-E448-11D0-84A3-00DD01104159   =   mcpckchcdchjcjcclidcgcgchdqdcjhcojpd   

  //   Windows   Common   Controls-2   5.0   (SP2)   license   key   
  HKEY_CLASSES_ROOT\Licenses\9E799BF1-8817-11cf-958F-0020AFC28C3B   =   uqpqnqkjujkjjjjqwktjrjkjtkupsjnjtoun   

  //   Windows   Common   Controls   license   key   
  HKEY_CLASSES_ROOT\Licenses\57CBF9E0-6AA7-11cf-8ADB-00AA00C00905   =   aahakhchghkhfhaamghhbhbhkbpgfhahlfle   

  //   Data   Bound   Grid   Control   5.0(SP3)   license   key   
  HKEY_CLASSES_ROOT\Licenses\556C75F1-EFBC-11CF-B9F3-00A0247033C4   =   xybiedobrqsprbijaegcbislrsiucfjdhisl   

  //   Data   Bound   List   Controls   6.0   license   key   
  HKEY_CLASSES_ROOT\Licenses\096EFC40-6ABF-11cf-850C-08002B30345D   =   knsgigmnmngnmnigthmgpninrmumhgkgrlrk   

  //   Internet   Transfer   Control   6.0   license   key   
  HKEY_CLASSES_ROOT\Licenses\78E1BDD1-9941-11cf-9756-00AA00C00908   =   yjrjvqkjlqqjnqkjvprqsjnjvkuknjpjtoun   

  //   Multimedia   Control   6.0   license   key   
  HKEY_CLASSES_ROOT\Licenses\B1EFCCF0-6AC1-11cf-8ADB-00AA00C00905   =   qqkjvqpqmqjjpqjjvpqqkqmqvkypoqjquoun   

  //   Chart   Control   6.0   license   key   
  HKEY_CLASSES_ROOT\Licenses\7C35CA30-D112-11cf-8E72-00A0C90F26F8   =   whmhmhohmhiorhkouimhihihwiwinhlosmsl   

  //   Windows   Common   Controls-2   6.0   license   key   
  HKEY_CLASSES_ROOT\Licenses\4F86BADF-9F77-11d1-B1B7-0000F8753F5D   =   iplpwpnippopupiivjrioppisjsjlpiiokuj   

  //   Windows   Common   Controls   6.0   license   key   
  HKEY_CLASSES_ROOT\Licenses\ED4B87C4-9F76-11d1-8BF7-0000F8754DA1   =   knlggnmntgggrninthpgmnngrhqhnnjnslsh   

  //   Comm   Control   6.0   license   key   
  HKEY_CLASSES_ROOT\Licenses\4250E830-6AC2-11cf-8ADB-00AA00C00905   =   kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun   

  //   DataGrid   Control   6.0   (OLEDB)   license   key   
  HKEY_CLASSES_ROOT\Licenses\CDE57A55-8B86-11D0-b3C6-00A0C90AEA82   =   ekpkhddkjkekpdjkqemkfkldoeoefkfdjfqe   

  //   DataList   Control   6.0   (OLEDB)   license   key   
  HKEY_CLASSES_ROOT\Licenses\A133F000-CCB0-11d0-A316-00AA00688B10   =   cibbcimbpihbbbbbnhdbeidiocmcbbdbgdoc   

  //   DBWin   license   key   
  HKEY_CLASSES_ROOT\Licenses\D015B071-D2ED-11d0-A31A-00AA00688B10   =   gjdcfjpcmjicjcdcoihcechjlioiccechepd   

  //   MSDBRPT   license   key   
  HKEY_CLASSES_ROOT\Licenses\9DF1A470-BA8E-11D0-849C-00A0C90DC8A9   =   cchcqjejhcgcqcfjpdfcdjkckiqikchcojpd   

  //   FlexGrid   Control   6.0   license   key   
  HKEY_CLASSES_ROOT\Licenses\72E67120-5959-11cf-91F6-C2863C385E30   =   ibcbbbebqbdbciebmcobmbhifcmciibblgmf   

  //   MAPI   Controls   6.0   license   key   
  HKEY_CLASSES_ROOT\Licenses\899B3E80-6AC6-11cf-8ADB-00AA00C00905   =   wjsjjjlqmjpjrjjjvpqqkqmqukypoqjquoun   

  //   MSRDO   2.0   license   key   
  HKEY_CLASSES_ROOT\Licenses\B1692F60-23B0-11D0-8E95-00A0C90F26F8   =   mjjjccncgjijrcfjpdfjfcejpdkdkcgjojpd   

  //   RemoteData   Control   6.0   license   key   
  HKEY_CLASSES_ROOT\Licenses\43478d75-78e0-11cf-8e78-00a0d100038e   =   imshohohphlmnhimuinmphmmuiminhlmsmsl   

  //   Windowless   Controls   6.0   license   key   
  HKEY_CLASSES_ROOT\Licenses\80E80EF0-DBBE-11D0-BCE2-00A0C90DCA10   =   qijimitpmpnpxplpvjnikpkpqoxjmpkpoivj   

  //   PictureClip   Control   6.0   license   key   
  HKEY_CLASSES_ROOT\Licenses\6FB38640-6AC7-11cf-8ADB-00AA00C00905   =   gdjkokgdldikhdddpjkkekgknesjikdkoioh   

  //   Rich   TextBox   Control   6.0   license   key   
  HKEY_CLASSES_ROOT\Licenses\DC4D7920-6AC8-11cf-8ADB-00AA00C00905   =   iokouhloohrojhhhtnooiokomiwnmohosmsl   

  //   Sheridan   Tab   Control   license   key   
  HKEY_CLASSES_ROOT\Licenses\190B7910-992A-11cf-8AFA-00AA00C00905   =   gclclcejjcmjdcccoikjlcecoioijjcjnhng   

  //   SysInfo   Control   6.0   license   key   
  HKEY_CLASSES_ROOT\Licenses\E32E2733-1BC5-11d0-B8C3-00A0C90DCA10   =   kmhfimlflmmfpffmsgfmhmimngtghmoflhsg   

  //   Winsock   Control   6.0   license   key   
  HKEY_CLASSES_ROOT\Licenses\2c49f800-c2dd-11cf-9ad6-0080c7e7b78d   =   mlrljgrlhltlngjlthrligklpkrhllglqlrk  

TA的精华主题

TA的得分主题

发表于 2014-5-27 00:33 | 显示全部楼层
kangatang 发表于 2014-5-26 21:17
139邮箱发送免费短信 - using winsock API. 介绍:
我尝试过xmlhttp和winhttp,由于该网站将cookie设置为  ...

winhttp据说可以获取 httponly的cookie,你可以再研究研究

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-5-27 09:38 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
liucqa 发表于 2014-5-26 22:49
http://blog.csdn.net/turejackon/article/details/3658155

http://shiseidogg.blog.sohu.com/35363269. ...

学导不但技术过硬,搜索能力也超强,佩服。。。

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-5-27 09:57 | 显示全部楼层
liucqa 发表于 2014-5-27 00:33
winhttp据说可以获取 httponly的cookie,你可以再研究研究

那个不行。。。。。谢谢。winsock的速度很快,就用这个了。

TA的精华主题

TA的得分主题

发表于 2014-5-27 11:45 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2014-5-27 11:52 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
老师,那个附件怎么打开呀?

点评

请把附件后缀名改成 “.cab”  发表于 2014-5-27 12:53

TA的精华主题

TA的得分主题

发表于 2014-5-27 11:59 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-22 10:02 , Processed in 0.055221 second(s), 16 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表