51ak 发表于 2010-12-9 11:23:25

这个验证码应该很好识别啊。

xwlzx 发表于 2010-12-10 14:54:54

回复 8# netegg
高手如云啊,学习!

kiss2003 发表于 2010-12-11 08:54:13

看到标题,想来学习一下,不过没看到。。。期待高人出场

piaorou 发表于 2010-12-11 09:32:21

我晕,这么简单问题没人能回答啊?
uxtheme.dll+1C3B其实就是DLL的入口地址+1C3B
你不是用CE吗?或者用CE监视谁访问这个地址,然后刷新验证码,
监视到的信息里有1个值类似mov   eax, dword ptr
esi的值就是uxtheme.dll+1C3B

manlty 发表于 2010-12-11 16:23:44

本帖最后由 manlty 于 2010-12-11 16:46 编辑

回复 34# piaorou


这位朋友,本来就是通过比如你说的 才找到上一级指针uxtheme.dll+1C3B 而这也是CE最终能找到的了。现在就是想知道怎么计算dll的入口地址,因为能确定esi这个值的内存地址是每次运行都会不同的

manlty 发表于 2010-12-11 16:54:08

有没有朋友有现成的OCR代码能读取这个验证码,能给出一段吗?
附件是这个验证码的训练图片,各位能提供全套的识别吗

smartzbs 发表于 2010-12-20 14:26:43

有没有朋友有现成的OCR代码能读取这个验证码,能给出一段吗?
附件是这个验证码的训练图片,各位能提供全套 ...
manlty 发表于 2010-12-11 16:54 http://www.autoitx.com/images/common/back.gif
#include <GDIPlus.au3>

_GDIPlus_Startup ()

$sBmpFile = @ScriptDir & "\031.bmp";要识别的文件
$hBitmap = _GDIPlus_BitmapCreateFromFile($sBmpFile)

$sOcr = ""
For $i=1 To 4
        $hClone = _GDIPlus_BitmapCloneArea($hBitmap, 8+($i-1)*7, 4, 6, 11, $GDIP_PXF24RGB)
        ;_GDIPlus_ImageSaveToFile($hCLone,@ScriptDir&"\"&$i&".bmp")
        $aBmpData = _myReadBitmapMsg($hClone)
        ;ConsoleWrite($aBmpData&@crlf)
        Switch $aBmpData
        Case "F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0C86400C86400C86400C86400F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400C86400F5F3F0F5F3F0F5F3F0C86400C86400F5F3F0C86400C86400C86400F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0C86400C86400F5F3F0F5F3F0F5F3F0C86400F5F3F0F5F3F0C86400C86400C86400F5F3F0F5F3F0"
                $sOcr &= "9"
        Case "F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0C86400C86400C86400C86400C86400F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0C86400C86400C86400C86400C86400F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0C86400C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0C86400C86400C86400C86400F5F3F0"
                $sOcr &= "5"
        Case "F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0C86400C86400C86400C86400F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400C86400F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0C86400C86400C86400F5F3F0C86400C86400F5F3F0F5F3F0F5F3F0C86400C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0C86400C86400C86400C86400F5F3F0"
                $sOcr &= "6"
        Case "F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0C86400C86400C86400C86400F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0F5F3F0C86400C86400C86400F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0C86400C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0C86400C86400C86400C86400F5F3F0"
                $sOcr &= "3"
        Case "F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400C86400F5F3F0F5F3F0F5F3F0C86400F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0F5F3F0"
                $sOcr &= "1"
        Case "F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0C86400C86400C86400C86400F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0C86400C86400C86400C86400F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0C86400C86400C86400C86400F5F3F0"
                $sOcr &= "8"
        Case "F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0C86400C86400C86400C86400F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0C86400C86400C86400C86400F5F3F0"
                $sOcr &= "0"
        Case "F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400C86400F5F3F0F5F3F0F5F3F0C86400F5F3F0C86400F5F3F0F5F3F0F5F3F0C86400F5F3F0C86400F5F3F0F5F3F0C86400F5F3F0F5F3F0C86400F5F3F0F5F3F0C86400F5F3F0F5F3F0C86400F5F3F0C86400C86400C86400C86400C86400C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0"
                $sOcr &= "4"
        Case "F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0C86400C86400C86400C86400F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400C86400C86400C86400C86400C86400"
                $sOcr &= "2"
        Case "F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0C86400C86400C86400C86400C86400C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0F5F3F0C86400F5F3F0F5F3F0F5F3F0F5F3F0"
                $sOcr &= "7"
        EndSwitch
Next
ConsoleWrite("识别结果:" & $sOcr & @crlf)

_GDIPlus_ImageDispose ($hClone)
_WinAPI_DeleteObject ($hClone)
_GDIPlus_ImageDispose ($hBitmap)
_WinAPI_DeleteObject ($hBitmap)
_GDIPlus_ShutDown ()

Func _myReadBitmapMsg($hBitmap);
        Local $aBmpData
    $aBmpData = _GDIPlus_ImageGetWidth ($hBitmap)
    $aBmpData = _GDIPlus_ImageGetHeight ($hBitmap)
        Local $BitmapData = _GDIPlus_BitmapLockBits($hBitmap, 0, 0, $aBmpData, $aBmpData, $GDIP_ILMREAD, $GDIP_PXF24RGB);$aGdip);
        $aBmpData = Abs(DllStructGetData($BitmapData, "Stride"))
        Local $Scan0 = DllStructGetData($BitmapData, "Scan0");
        Local $pixelData = DllStructCreate("ubyte lData[" & ($aBmpData * $aBmpData) & "]", $Scan0)
        $aBmpData = DllStructGetData($pixelData, "lData")
        _GDIPlus_BitmapUnlockBits($hBitmap, $BitmapData)
        $aBmpData = StringRegExpReplace($aBmpData, "(?:0x)?({"&$aBmpData*6&"}).{"&$aBmpData*2-$aBmpData*6&"}", "$1")
        Return $aBmpData
EndFunc

manlty 发表于 2010-12-21 07:57:15

谢谢楼上大大

flight 发表于 2010-12-21 11:04:59

等高人给出答案

foboy 发表于 2011-1-4 02:29:22

回复 8# netegg


    这个函数是找不到DLL的入口地址的, 得需要用和他类似的一个函数,哈哈。

manlty 发表于 2011-1-4 09:27:18

希望楼上不吝赐教
页: 1 2 [3]
查看完整版本: 内存读写的难题,请高手解惑