数码冲印数码照片网上冲印
站内搜索: 分类: 关键字:
您的位置:首页网站设计.Net专栏 → 破译动网验证码的简单方法
破译动网验证码的简单方法
日期:2005-10-30 23:17:23 人气:     [ ]
数码冲印 网上冲印

Option Explicit
Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal y As Long) As Long
Private Const CF_BITMAP = 2
Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
Dim phobit(0 To 9, 0 To 9) As Integer       '标识位图的像素
Private Sub cmdGetChar_Click()
Dim X As Long
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim mintCurPos As Integer
With Picture2
    For k = 0 To 3          '表示有四个字符,
        For i = 0 To 9
            mintCurPos = InStr(txtPhoBit.Text, "数字" & i & ":") + 4  '数字字符的当前位置
            For j = 0 To 9
                X = GetPixel(.hdc, k * 10, j)        '获得它的像素值
                If (X = 15658734 And Mid(txtPhoBit.Text, mintCurPos + j, 1) = "0") _
                   Or (X <> 15658734 And Mid(txtPhoBit.Text, mintCurPos + j, 1) = "1") Then  '判断像素是否相同。
                Else    '不同则跳出
                    Exit For
                End If
            Next j
            If j = 10 Then  '在此就可以判断当前字符为 i
                txtPhoChar.Text = txtPhoChar.Text & i
                Exit For
            End If
        Next i
    Next k
End With
End Sub


Private Sub Form_Load()
    txtPhoBit.Text = "数字0:0111111110数字1:0100000001数字2:0100000011数字3:0100000010数字4:0000011000数字5:1111100010数字6:0011111110数字7:1100000000数字8:0111011110数字9:0111100000"
     If Not URLDownloadToFile(0, "http://bbs.china95.net/DV_getcode.asp", App.Path & "\pho.bmp", 0, 0) Then
        Picture2.Picture = LoadPicture(App.Path & "\pho.bmp")
     Else
        MsgBox "保存图片出错!"
     End If
    
End Sub


 


我分析了一下你的那张图片,发现在空的地方全是RGB(238,238,238)也就是15658734.
并且它的数字排列的非常的工整,也就是说在任何时候出现的相同数字它的像素图都是一样的。并且每数字都占十个像素。到这里的时假我打算比对每它们所有的相素的,也就是每一个数字要比对10*10次。我总觉得这样浪费时间,后来我也发现只要比对每个数字的第一列字即可得到你想要的数字。
所以开始就将10个数字保存在txtphobit中了,如果像素值为15658734,那么就它的字符设为"0",不等于15658734就设为"1"

这个方法只针对这个图片有效(准确率100%),像chinaren那样,就没有用。



出处:世纪开元网上冲印搜集整理 作者:佚名
评论人 评论内容摘要(共 条,查看完整内容) 得分 发表时间
本类热点
01.关于vc的mshflexgrid控件的用法(转载:原地址:..
02.用实例学:ASP.NET的include的用法
03.ListView的使用
04.ASP.NET POST方式提交数据!
05.正态分布的随机数发生器 in C#
06.在.net安装程序中部署oracle客户端全攻略
07.蛙蛙推荐:C#编码规范.doc
08.在ASP.NET中处理datetime的一些通用函数(VB)
09.用户 NT AUTHORITY\NETWORK SERVICE 登录失败解决..
10.破译动网验证码的简单方法
本类推荐
网上数码冲印专用QQ:71086443  网上数码冲印专用MSN:photo36588@hotmail.com 网上冲印热线电话:0531-82678928
http://www.36588.com.cn 世纪开元数码照片网上冲印©2001 - 2008
网站地图 | 冲印知识 | 会员利益 | 服务价格 | 质量承诺 | 服务条款 | 隐私政策 | 商业合作 | 关于我们