上一篇:SDK实现分隔条(续) >>
图形识别技术与网上安全
|
鉴于很多朋友的意思,再补充说一下,
希望大家参考一下有关神经网络的技术资料,模式识别的文章。 我的网站已经服务到期,程序在 最近实在太忙,没时间写完。大家凑合着看吧。希望大家给我建议。谢谢。
(关键字:图形识别 安全 黑客 破解 OICQ 登陆)
作者:主 人
版
权
所
有
金
葵
花
工
作
室
2004-1-4 V1.0
申明:
1、 本文章并不怂恿大家做什么有害计算机网络安全的任何活动!仅作研究讨论使用。
2、 写得不好,望大家指正。
如今,太多的网站使用了图形附加码,如,以求Internet的安全,然而,真是如此吗?
每个程序员、每个系统架构师、每个IT人,谁没有梦想,谁没有作为的梦?我,就是这样的一个人,这个图形附加码的识别就算是我踏出图形识别之路的第一步吧,同时也希望专家们把网上的图形附加码做得更好。
§1.4.1.1. 常规图形的识别常规图形是指图形附加码没有经过任何特殊的处理,如7564. 这中图形一般每个数字占的宽度、高度都一致。因此,其识别是很容易的,只要先采集0 ~ 9的数字特征码存于数据库,用的时候拿出来作一个扫描比较,取出最接近的一个就是了。特征码的采集见[]
不同颜色、背景色、随机杂点,通常只用了两种颜色:前景色、背景色两种。如: ,这种图形的识别分析原理是,先扫描一遍整个图形,统计出颜色最多的一种:就是背景色,定义为待去除的背景色。然后在扫描一遍,把背景色还原为白色,以便识别方便,同时去除杂点,去除杂点的原理是,用GetPixel取出一点与背景色比较,如果不同,然后取其附近的点比较,如果没有连续的点,证明是杂点,所以就用SetPixel设置他。最后在用方法处理他。就是采用这样的方法。(样例图来自:)
这样的图形通常有不同的背景色、背景点、背景图、渐变背景色、网格背景等等,而前景图形(通常是数字、字符、汉字等)则采用倾斜、膨化、波浪化、风化、背景图形凹凸、球状扭曲等等效果来形成。如:(以下图形来自,每刷新一次变一次)
如上的图形,通常用解决,但是,在识别之前应该用用还原由背景色网格分隔开的前景图形。
§1.4.2 识别原理§1.4.2.1. 特征码法特征码就是统计单个图形字显示时占的宽、高度像数,在统计每横行、竖行像数占的比例数,当然,也可以把宽高平分为n等份来记录,以减少特征码数据库的体积。如:
去除多余的部分后,各数字宽为6 Pix,高 9 Pix,0数字图形的横向统计是:0, 1, 2, 2, 2, 2, 2, 2, 1。也就是说比例为:0,1/6,1/3,1/3,1/3,1/3,1/3,1/3,1/6;竖向统计:4, 2, 2, 2, 4, 0,比例:4/9,2/9,2/9,2/9,4/9,0。下为C/C++描述
// 横向Pix统计( 0 ~ 9)
int narrNumCharacterH[10][9] = {
{0, 1, 2, 2, 2, 2, 2, 2, 1},
{0, 1, 2, 2, 1, 1, 1, 1, 5},
{0, 3, 2, 1, 1, 1, 1, 1, 5},
{0, 3, 2, 1, 2, 1, 1, 2, 3},
{0, 1, 2, 2, 2, 2, 5, 1, 1},
{0, 5, 1, 4, 2, 1, 1, 2, 3},
{0, 3, 1, 1, 4, 2, 2, 2, 3},
{0, 5, 1, 1, 1, 1, 1, 1, 1},
{0, 3, 2, 2, 3, 2, 2, 2, 3},
{0, 3, 2, 2, 2, 4, 1, 1, 3}
};
// 竖向Pix统计( 0 ~ 9)
int narrNumCharacterS[10][6] = {
{4, 2, 2, 2, 4, 0},
{2, 2, 8, 1, 1, 0},
{3, 3, 3, 3, 3, 0},
{2, 2, 3, 3, 5, 0},
{3, 2, 2, 8, 1, 0},
{5, 3, 3, 3, 5, 1},
{5, 3, 3, 3, 4, 0},
{1, 3, 3, 3, 2, 0},
{5, 3, 3, 3, 5, 0},
{4, 3, 3, 3, 5, 0}
};
§1.4.2.2. 笔迹流向法笔记流向法就是当GetPixel取出一个点后,想四周漫游出7 ~ 8 个点,寻找正确的流向,如果四周都没有
§1.4.2.3. 水流还原法sgfdg
§1.5 样例程序运行后,点击[取得图片]按钮,程序会自动从下载类似 这样的图片,并在当前目录保存为dl.gif,然后在点击[分析]按钮,就会在[这里将显示分析的结果]的Edit中得到图形识别后的结果。 |
||||||||
下一篇:编写完成端口网络服务器的一些说明 (1) >>
相关文章:
- · 跨进程API Hook
- · COM指南 (Step by Step COM Tutorial)-上
- · COM指南 (Step by Step COM Tutorial)-中
- · COM指南 (Step by Step COM Tutorial)-下(1)
- · COM指南 (Step by Step COM Tutorial)-下(2)
- · 通过middlebox实施P2P通讯
- · Type Traits 实例,提高效率
- · SMART POINTER(智能指针)
- · 通用ShellCode深入剖析
- · 全局共享变量的困惑
- · 程序员吐血而死系列:VC+图形处理=聊斋志异?
- · 王迪兴答汪成为院士的十二个问题
- · 代码格式化脚本CodeFormat
- · The Cryptography API, or How to Keep a Secret(三)
- · The Cryptography API, or How to Keep a Secret(四)
- · The Cryptography API, or How to Keep a Secret(五)
- · 谈static在MFC中的运用
- · 重载函数的应用与深入剖析
- · 数据结构学习(C++)续——查找(搜索)【2】
- · com之套间(Apartment)
- · “QQ尾巴病毒”核心技术的实现
- · 在对话框显示图片的多种方法(上)
- · 在对话框显示图片的多种方法(下)
- · 串口通信
- · 使用Windows API和多线程进行串口通信[1]
- · 使用WindowsAPI和多线程进行串口通信[2]
- · 关于"建立空文档失败"的问题的分析!
- · ODBC & ACCESS
- · 糟糕界面集锦(补遗)(1)
- · 糟糕界面集锦(补遗)(2)
- · Win32下对多个的线程句柄的关闭的控制(上)
- · Win32下对多个的线程句柄的关闭的控制(下)
- · 在C++Builder里创建可以被Visual C++使用的DLL
- · 关于foxmail的研究2----找到帐户邮件箱的指定路径篇
- · 如何开发OPC Server
- · 为图形软件的开发添一新工具
- · VC入门宝典十一(xml)
- · MFC的 CString 学习笔记 -1
