宝峰科技

 找回密码
 注册

QQ登录

只需一步,快速开始

智能终端设备维修查询系统注册会员邮箱认证须知!
查看: 6254|回复: 5

[页游辅助图文教程] 易语言+HttpWatch分析并编写Discuz! X1.51论坛管理器第六课

[复制链接]
  • TA的每日心情
    奋斗
    2020-6-5 22:18
  • 签到天数: 22 天

    [LV.4]偶尔看看III

    潇潇 发表于 2012-3-25 21:45:40 | 显示全部楼层 |阅读模式
    本课主要讲述刷新的验证码和校验验证码的HttpWatch操作数据及在易语言中的编写方法。
    一、刷新的验证码的HttpWatch操作数据及在易语言中的编写方法。
    经常在技术论坛上的朋友应该会发现登陆时验证码在一段时间内就会不显示,说明验证码过期,出现下图的情况:

    那我们应该重新“刷新验证码”以便登陆论坛,此时在HttpWatch所截取到的数据如图所示:

    我们先看下在HttpWatch中所获取新的验证码的数据:

    + 0.000                0.254        706        632        GET        200        text/xml; charset=gbk        http://demo.wgbcw.com/dzx151gbk/ ... arget=seccode_Ssg3x
    + 0.140                0.114        622        0        GET        (Aborted)        *        http://demo.wgbcw.com/dzx151gbk/static/image/common/loading.gif
    + 0.255                2.153        637        91629        GET        200        image/gif        http://demo.wgbcw.com/dzx151gbk/ ... =84822&idhash=Ssg3x
                    2.409        1965        92261        3 requests        

    根据前面所讲知识,我们的关键数据就是第一条和第三条,那分别把第一条和第三条数据的Headers 、Query String 、Content复制出来:
    1、第一条数据
    Headers:
    (Request-Line)        GET /dzx151gbk/misc.php?mod=seccode&action=update&idhash=Ssg3x&inajax=1&ajaxtarget=seccode_Ssg3x HTTP/1.1
    Accept        */*
    Accept-Encoding        gzip, deflate
    Accept-Language        zh-cn
    Connection        Keep-Alive
    Cookie        6Qvx_2132_lastvisit=1332656974; 6Qvx_2132_sid=bornjC; 6Qvx_2132_lastact=1332678574%09misc.php%09seccode; _D_SID=DD3778A4; 6Qvx_2132_seccodeSsg3x=f576zw7kFeYPHiOX39XMIJV%2FMzKE5YoxnxHlv%2B5qyFXfw147BuPknSr014hUECFR6%2B%2FD%2F7qzNYYlVXE
    Host        demo.wgbcw.com
    Referer        http://demo.wgbcw.com/dzx151gbk/forum.php
    User-Agent        Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 1.1.4322)
    x-requested-with        XMLHttpRequest

    Query String:
    action        update
    ajaxtarget        seccode_Ssg3x
    idhash        Ssg3x
    inajax        1
    mod        seccode

    Content:
    1. <?xml version="1.0" encoding="gbk"?>
    2. <root><![CDATA[输入下面动画图片中最大的字符<br /><img onclick="updateseccode('Ssg3x')" width="150" height="60" src="misc.php?mod=seccode&update=84822&idhash=Ssg3x" class="vm" alt="" />]]></root>
    复制代码
    2、第三条数据
    Headers:
    (Request-Line)        GET /dzx151gbk/misc.php?mod=seccode&update=84822&idhash=Ssg3x HTTP/1.1
    Accept        */*
    Accept-Encoding        gzip, deflate
    Accept-Language        zh-cn
    Connection        Keep-Alive
    Cookie        6Qvx_2132_lastvisit=1332656974; 6Qvx_2132_sid=bornjC; 6Qvx_2132_lastact=1332679016%09misc.php%09seccode; _D_SID=DD3778A4; 6Qvx_2132_seccodeSsg3x=f576zw7kFeYPHiOX39XMIJV%2FMzKE5YoxnxHlv%2B5qyFXfw147BuPknSr014hUECFR6%2B%2FD%2F7qzNYYlVXE
    Host        demo.wgbcw.com
    Referer        http://demo.wgbcw.com/dzx151gbk/forum.php
    User-Agent        Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 1.1.4322)

    Query String:
    idhash        Ssg3x
    mod        seccode
    update        84822

    Content:返回验证码图片。


    从上面的数据不难看出重新刷新验证码的数据实际和第三课中的内容一样了(对比时请仔细点哦),那我们就把第三课的易语言代码中的局部变量“验证码链接文本”定义为全局变量就行了,写代码中……

    经编写易语言代码发现我们只要增加两段代码就实现了鼠标按下“图片框”就会刷新验证码:
    1. .版本 2

    2. .程序集 自定义函数

    3. .子程序 刷新验证码
    4. .局部变量 URL, 文本型
    5. .局部变量 临时文本, 文本型

    6. .如果 (验证码链接文本 ≠ “”)
    7.     URL = “/dzx151gbk/” + 验证码链接文本
    8.     _启动窗口.图片框1.图片 = GET (URL, 临时文本)
    9.     _启动窗口.图片框1.显示方式 = 2  ' 防止有些验证码字符看不全
    10. .否则

    11. .如果结束
    复制代码
    1. .版本 2

    2. .子程序 _图片框1_鼠标左键被按下, 逻辑型, , 刷新验证码
    3. .参数 横向位置, 整数型
    4. .参数 纵向位置, 整数型
    5. .参数 功能键状态, 整数型

    6. 刷新验证码 ()
    复制代码
    二、校验的验证码的HttpWatch操作数据及在易语言中的编写方法。
    先看个截图:

    从上面的图中看出校验验证码的关键数据就只有一条:
    + 0.000                0.259        798        470        GET        200        text/xml; charset=gbk        http://demo.wgbcw.com/dzx151gbk/ ... sh=SXsAS&secverify=xpgh

    我们同样把这条数据的Headers 、Query String 、Content复制出来:
    Headers:
    (Request-Line)        GET /dzx151gbk/misc.php?mod=seccode&action=check&inajax=1&&idhash=SXsAS&secverify=xpgh HTTP/1.1
    Accept        */*
    Accept-Encoding        gzip, deflate
    Accept-Language        zh-cn
    Connection        Keep-Alive
    Cookie        6Qvx_2132_lastvisit=1332656974; 6Qvx_2132_sid=3Q2V6y; 6Qvx_2132_lastact=1332684075%09misc.php%09seccode; _D_SID=DD3778A4; 6Qvx_2132_seccodeSsg3x=7d46rfoXYPnszj6L2%2B9SomnXbcHAYbQsoCRg0FX3tpIzk6hG9yNbMvtTULEGCjARxPeA9bfWLm5MfVE; 6Qvx_2132_seccodeSXsAS=8833R7UxXpgBZxo7svWS2a5h5E%2FCGcRlc99wk%2BGkl2DJqdi7FfXDCLssn%2F939wiYs1Rjm4L5raKW6Sc
    Host        demo.wgbcw.com
    Referer        http://demo.wgbcw.com/dzx151gbk/forum.php
    User-Agent        Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 1.1.4322)
    x-requested-with        XMLHttpRequest

    Query String:
    action        check
    idhash        SXsAS
    inajax        1
    mod        seccode
    secverify        xpgh

    Content:
    1. <?xml version="1.0" encoding="gbk"?>
    2. <root><![CDATA[succeed]]></root>
    复制代码
    从上面的Headers中蓝色部分不难看出我们的关键值有两个“idhash”和“secverify”验证码,而idhash就是我们第三课中所取得“后五个字符文”,那我们就把这局部变量定义为全局变量,同时为了方便我们把它更名为“idhash”。“idhash”和“secverify”两个值都知道了,那我们只需用HTTP的GET方法把“/dzx151gbk/misc.php?mod=seccode&action=check&inajax=1&&idhash=SXsAS&secverify=xpgh”发送给服务器就行了。另外验证码校验成功时的Content数据中有“succeed”字样说明成功校验。那我们现在可以写代码了:
    1. .版本 2

    2. .子程序 校验验证码, , , 第六课增加的代码
    3. .参数 验证码, 文本型
    4. .局部变量 URL, 文本型
    5. .局部变量 临时文本, 文本型

    6. .如果 (idhash ≠ “” 且 验证码 ≠ “”)
    7.     URL = “/dzx151gbk/misc.php?mod=seccode&action=check&inajax=1&&idhash=” + idhash + “&secverify=” + 验证码
    8.     GET (URL, 临时文本)
    9.     .如果 (寻找文本 (临时文本, “succeed”, , 假) ≠ -1)
    10.         ' http://demo.wgbcw.com/dzx151gbk/static/image/common/check_right.gif
    11.         URL = “/dzx151gbk/static/image/common/check_right.gif”
    12.         _启动窗口.图片框2.图片 = GET (URL, 临时文本)
    13.     .否则
    14.         ' http://demo.wgbcw.com/dzx151gbk/static/image/common/check_error.gif
    15.         URL = “/dzx151gbk/static/image/common/check_error.gif”
    16.         _启动窗口.图片框2.图片 = GET (URL, 临时文本)
    17.     .如果结束

    18. .否则

    19. .如果结束
    复制代码
    1. .版本 2

    2. .子程序 _按钮4_被单击

    3. 校验验证码 (验证码校验.内容)
    复制代码
    经测试出现下面的两种情况:
    1、验证码校验成功

    2、验证码校验失败


    另外把HttpWatch的数据文件也上传上来:
    好了本次课就到这里,我们下次课分析并编写账号登陆论坛部分……

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?注册

    x

    该用户从未签到

    漏网之鱼 发表于 2012-4-17 14:56:15 | 显示全部楼层
    谢谢老大 分享 呵呵

    该用户从未签到

    南水无鱼 发表于 2012-5-3 23:40:58 | 显示全部楼层
    不知道提不提供源码下载?

    该用户从未签到

    南水无鱼 发表于 2012-5-7 20:20:43 | 显示全部楼层
    请教楼主,在刷新验证码这个子程序中 “验证码链接文本” 此时这个变量是如何获取的?

    该用户从未签到

    南水无鱼 发表于 2012-5-7 20:26:21 | 显示全部楼层
    是不是说API取验证码这个按钮时获取的那个验证码地址,然后赋给了一个全局变量?

    该用户从未签到

    扯起嘴捔丶強顏 发表于 2012-6-10 14:17:00 | 显示全部楼层
    请教楼主,在刷新验证码这个子程序中 “验证码链接文本” 此时这个变量是如何获取的?
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    免责声明

    本站中所有被研究的素材与信息全部来源于互联网,版权争议与本站无关。本站所发布的任何软件编程开发或软件的逆向分析文章、逆向分析视频、补丁、注册机和注册信息,仅限用于学习和研究软件安全的目的。全体用户必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。学习编程开发技术或逆向分析技术是为了更好的完善软件可能存在的不安全因素,提升软件安全意识。所以您如果喜欢某程序,请购买注册正版软件,获得正版优质服务!不得将上述内容私自传播、销售或者用于商业用途!否则,一切后果请用户自负!

    QQ|Archiver|手机版|小黑屋|联系我们|宝峰科技 ( 滇公网安备 53050202000040号 | 滇ICP备09007156号-2 )

    Copyright © 2001-2023 Discuz! Team. GMT+8, 2025-5-7 21:49 , File On Powered by Discuz! X3.49

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