破译动网验证码的简单方法 http://blog.csdn.net/wwqna/archive/2004/11/13/A1.aspx

原创 2005年02月27日 20:47:00
转载至 http://blog.csdn.net/wwqna/archive/2004/11/13/A1.aspx

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那样,就没有用。

get,post数据长度的限制

这个问题在我的开发中也遇到,所以在此贴出来(也是在网上搜出来的,呵呵) 这是原贴地址http://blog.csdn.net/somat/archive/2004/10/29/158707.aspx...
  • u011220648
  • u011220648
  • 2018年01月04日 15:53
  • 17

系统文件目录显示程序JFolder.jsp

这个版本主要是兼容了Unix、Linux等操作系统,真正的不再受系统平台的限制。 在0.9测试版发布以后,很多朋友都给了我很好的意见和建议, 对于日常的应用,这个版本应该足够了 在下一个版本中,...
  • getchance
  • getchance
  • 2014年07月14日 10:14
  • 2146

JDBC连接mysql数据库简单案例

JDBC?Java Data Base Connectivity,java?????????????SQL???Java API???????????????????????Java????????...
  • cx19910829
  • cx19910829
  • 2016年08月01日 15:29
  • 1347

Android图形系统之libui

转自: http://hi.baidu.com/aokikyon/item/061db04c46d42d0c6dc2f00e 1 libui简介  libui是Android图形库...
  • tdstds
  • tdstds
  • 2014年01月24日 09:34
  • 1726

hdu 3461 Code Lock(并查集+二分求幂)

点击打开链接 1、题目大意: 给定由N个字母组成的密码锁,如【abcdef】每一位字母都可以转动,转动该字母时,将变成它的下一个字母,如‘a'转动后是b,x转动后是y, 接着给定M个区间,每次转...
  • sdjzping
  • sdjzping
  • 2013年01月29日 12:22
  • 1576

2016级ACM寒假训练(二)

第一题 单词排序 Problem:A Time Limit:1000ms Memory Limit:65535K Description 给定一组单词,对单词进行自...
  • zhou_yujia
  • zhou_yujia
  • 2017年02月08日 15:12
  • 408

简单的js验证码

.code { background-image: url(code.jpg); font-family: Arial; font-style: italic; color: Red; bo...
  • kouwoo
  • kouwoo
  • 2015年01月13日 09:40
  • 832

动网论坛8.2经典注入漏洞利用

一、实验目的理解动网论坛8.2原理二、实验原理动网论坛用户登录过程中,过滤不严,导致注入,提升权限。漏洞存在源文件的login.asp中。三、实验环境本机:192.168.1.2 目标机:192.1...
  • lijia111111
  • lijia111111
  • 2017年01月23日 21:16
  • 1435

程序员是这样炼成的(13)-学会“抄袭” 收藏 (转载http://blog.csdn.net/GODYAD/archive/2011/04/17/6329925.aspx)

上一篇文章跟大家分享了如何面对失败 ,今天的题目乍一看,有点离经叛道,哪有唆使别人与抄袭代码的?上一篇说过开发的过程中,不可能没有失败。随着互联网,专家博客的兴起,新一代程序员的成 长已经变的更加轻松...
  • wangdk789
  • wangdk789
  • 2013年12月17日 13:51
  • 309

java 验证码 gif 验证码 动图 验证码

以下代码来源于网络 普通验证码: package net.loyin.util; import java.io.IOException; import javax.servlet.ServletEx...
  • qq_34875064
  • qq_34875064
  • 2016年05月04日 09:04
  • 977
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:破译动网验证码的简单方法 http://blog.csdn.net/wwqna/archive/2004/11/13/A1.aspx
举报原因:
原因补充:

(最多只允许输入30个字)