Python调用易语言动态链接库,实现验证码通杀例子
csdh11 2025-01-07 11:55 5 浏览
今天成功把易语言调用验证码通杀的DLL在Python中成功调用了
特此共享出来,下面是识别截图:
识别方法1:
私信小编01即可获取大量Python学习资源
# 来源:http://www.sanye.cx/?id=12022
# 优点:载入快、识别速度高、识别精度较高
# 缺点:仅在32位Python环境中成功运行
# 获取上级目录
path = os.path.abspath(os.path.dirname(os.getcwd()))
# 获取验证码文件夹
img_list = os.listdir(path + r"\captcha")
# 载入识别库
dll = cdll.LoadLibrary(path + r"\ocr1\ocr.dll")
# 初始化识别库
dll.init()
# 遍历图片并识别
for i in img_list:
# 读入图片
with open(path + r"\captcha\{0}".format(i), "rb") as file:
# 读入图片
image = file.read()
# 利用dll中的ocr函数进行识别
Str = dll.ocr(image, len(image))
# 返回的是指针,所以此处将指针转换为字符串,然后再编码即可得到字符串类型
text = string_at(Str).decode("utf-8")
print(f"识别返回:{text},类型:{type(text)},ID地址:{id(text)}")
识别方法2:
# 来源:[url=https://www.52pojie.cn/thread-1072587-1-1.html]https://www.52pojie.cn/thread-1072587-1-1.html[/url]
# 优点:识别速度高、识别精度高
# 缺点:仅在32位Python环境中成功运行、载入时间较长
# 获取上级目录
path = os.path.abspath(os.path.dirname(os.getcwd()))
# 载入识别库
dll = cdll.LoadLibrary(path + r"\ocr2\OCRS.dll")
# 载入字库与建立字库索引
with open(path + r"\ocr2\通杀英文数字库.cnn", "rb") as file:
# 载入字库
word_bank = file.read()
# 建立字库索引
work_index = dll.INIT(path, word_bank, len(word_bank), -1, 1)
# 读入待识别图片列表
img_list = os.listdir(path + "\captcha")
# 循环识别图片并输出
for i in img_list:
# 打开指定图片
with open(path + "\captcha\{0}".format(i), "rb") as file_img:
# 读入图片
image = file_img.read()
Str = create_string_buffer(100) # 创建文本缓冲区
dll.OCR(work_index, image, len(image), Str) # 利用DLL中的识别函数进行识别
text = Str.raw.decode("utf-8") # 对识别的返回值进行编码
print(f"识别返回:{text},类型:{type(text)},ID地址:{id(text)}")
1.自己弄了一个类,下载下来直接使用,调用方法:
dll = Ver_code_1(DLL文件所在的文件夹目录)
#或者
dll = Ver_code_2(DLL文件所在的文件夹目录)
#识别图片:
dll.ocr(图片)
2.修正了识别库2空白字符未消除,无法正确判断长度的问题(可以利用固定长度判断是否符合,进行初步筛选,避免提交后网页返回验证码错误)
import os
from ctypes import *
class Ver_code_1:
# 启动时需要传入ocr.dll
def __init__(self, path):
# 载入识别库
self.dll = cdll.LoadLibrary(path + r"\ocr.dll")
# 初始化识别库
self.dll.init()
def ocr(self, image):
Str = self.dll.ocr(image, len(image))
# 返回的是指针,所以此处将指针转换为字符串,然后再编码即可得到字符串类型
return string_at(Str).decode("utf-8")
class Ver_code_2:
def __init__(self, path):
# 载入识别库
self.dll = cdll.LoadLibrary(path + r"\OCRS.dll")
# 载入字库与建立字库索引
with open(path + r"\通杀英文数字库.cnn", "rb") as file:
# 载入字库
self.word_bank = file.read()
# 建立字库索引
self.word_index = self.dll.INIT(path, self.word_bank, len(self.word_bank), -1, 1)
def ocr(self, image):
Str = create_string_buffer(100) # 创建文本缓冲区
self.dll.OCR(self.word_index, image, len(image), Str) # 利用DLL中的识别函数进行识别
return Str.raw.decode("utf-8").rstrip('\x00') # 对识别的返回值进行编码后返回,这里的\x00是删除缓冲区的空白符
注意!测试环境为:
Python 3.9.2 (tags/v3.9.2:1a79785, Feb 19 2021, 13:30:23) [MSC v.1928 32 bit (Intel)] on win32
经测试,无法在64位环境下调用,如有大佬能实现,烦请告知一下
关于DLL改64位的思路:
我找到了论坛中的IDA pro,成功将DLL进行了反编译,如图:
其实最关键的就是以上的init以及ocr两个函数,但是后续如何将IDA pro项目转换为64位,然后进行编译,目前没有找到合适的方法,如果有大佬麻烦告知一下。
相关推荐
- 史上最全的 Python 学习资料,PDF 电子书大合集(免费)
-
史上最全的Python学习资料最近一直有读者问我有没有好的Python学习资料,有没有好的PDF电子书。小白学习Python也有很长的时间了,搜集的资料也有非常多。今天整理了下,全部免...
- 16 款最佳免费开源 PDF 开发库 | OpenSSH 9.9 发布,默认禁用 DSA 算法
-
16款最佳免费开源PDF开发库便携式文档格式(PDF)由AdobeSystems于1993年创建,用于文档交换。这种格式包括PostScript页面描述编程语言的子集、字体嵌...
- ?? 盘点Python入门必备神仙书籍|附pdf
-
Python编程从入门到实践整本书内容非常丰富,包含python相关基础知识和项目实践部分,基础知识部分基本上讲解了所有python相关的基础知识,实践部分选择了三个案例。非常适合初学者学习Pyth...
- Python 3.9.0 官方中文PDF文档,建议收藏,拿走不谢
-
最新版的Python官方文档!整理好了。领取方式见文末...
- Python趣味打怪:60秒学会一个例子,147段代码助你从入门到大师
-
鱼羊发自凹非寺量子位报道|公众号QbitAI人生苦短,编程苦手,不妨学起Python,感受一飞冲天的快乐。不要害怕学习的过程枯燥无味,这里有程序员jackzhenguo打造的一份中文Pyt...
- 咸鱼疯传3.6W次!Python16本高清版 PDF初学者的极佳教材荐
-
【文末有获取方式】【文末有获取方式】...
- 史上最详细python学习路线-从入门到精通,只需5个月时间
-
Python是一种功能很强大的语言,对于零基础学习Python还是有难度的,但只要学习方法对,入门还是很快哒。针对Python的初学者,从无到有的Python语言如何入门,主要包括了:Python的简...
- 硬核!288页Python核心知识笔记(附思维导图,建议收藏)
-
今天就给大家分享一份288页Python核心知识笔记,相较于部分朋友乱糟糟的笔记,这份笔记更够系统地总结相关知识,巩固Python知识体系。文末获取完整版PDF...
- 这张思维导图,涵盖Python所有核心知识点,PDF赶快拿走
-
这张Python思维导图,涵盖了所有的核心知识点,包括基础知识、爬虫、函数、模块、类和对象等,从以往假大空的知识堆砌转变为清晰实用的知识体系...
- 顶级黑客用5分钟爬的python教程!整整400集,建议收藏
-
兄弟!毫无套路!!福利分享:1、本套视频一共400集,本套视频共分4季第一季Python基础。...
- 《Python知识手册》,高清全彩pdf版开放下载
-
Python编程还不懂?今天我要把我参与编写的这套《Python知识手册》免费分享出来,看完文末有惊喜哦。文末惊喜,记得看完哦!...
- 1张思维导图,告诉你Python核心知识体系,高清PDF拿走不谢
-
这张思维导图按顺序依次展示了以下内容的核心知识:基础知识、函数、文件、类和对象、魔方方法、模块、爬虫等内容。每一部分都细致展开解读,化复杂为具体,化零散为整体,尤其适合Python初学者参考学习。Py...
- 清华教授熬夜开发的《Python王者归来》高清版PDF开放下载
-
相信通过这本资料你可以轻松学会Python语法与应用,并逐步向Python高手之路迈进!...
- 一周热门
-
-
一文读懂关于MySQL Datetime字段允许插入0000-00-00无效日期
-
MySQL数据库关于表的一系列操作 mysql 表操作
-
新版腾讯QQ更新Windows 9.9.7、Mac 6.9.25、Linux 3.2.5版本
-
一款全能的看图软件,速度快、功能强、免费用
-
IDC机房服务器托管可提供的服务
-
一文看懂mysql时间函数now()、current_timestamp() 和sysdate()
-
深度测评:Pixave 和图片管理之间的距离(二)
-
查看 CAD文件,电脑上又没装AutoCAD?这款CAD快速看图工具能帮你
-
Boston Dynamics Founder to Attend the 2024 T-EDGE Conference
-
Serv-u 提权
-
- 最近发表
-
- 史上最全的 Python 学习资料,PDF 电子书大合集(免费)
- 16 款最佳免费开源 PDF 开发库 | OpenSSH 9.9 发布,默认禁用 DSA 算法
- ?? 盘点Python入门必备神仙书籍|附pdf
- Python 3.9.0 官方中文PDF文档,建议收藏,拿走不谢
- Python趣味打怪:60秒学会一个例子,147段代码助你从入门到大师
- 咸鱼疯传3.6W次!Python16本高清版 PDF初学者的极佳教材荐
- 史上最详细python学习路线-从入门到精通,只需5个月时间
- 硬核!288页Python核心知识笔记(附思维导图,建议收藏)
- 这张思维导图,涵盖Python所有核心知识点,PDF赶快拿走
- 顶级黑客用5分钟爬的python教程!整整400集,建议收藏
- 标签列表
-
- huaweiupdateextractor (27)
- mysql 时间索引 (31)
- mydisktest_v298 (34)
- document.appendchild (35)
- 头像打包下载 (61)
- acmecadconverter_8.52绿色版 (39)
- oracle timestamp比较大小 (28)
- word文档批量处理大师破解版 (36)
- server2016安装密钥 (33)
- mysql 昨天的日期 (37)
- 加密与解密第四版pdf (30)
- jemeter官网 (31)
- parsevideo (33)
- 个人网站源码 (37)
- ckeditor4中文文档 (27)
- exe4j_java_home (30)
- centos7.4下载 (33)
- xlsx.full.min.js下载 (32)
- 深度学习 pdf (28)
- mysql 查询今天的数据 (34)
- intouch2014r2sp1永久授权 (36)
- 先锋影音源资2019 (35)
- usb2.0-serial驱动下载 (30)
- vs2010官网 (31)
- python核心编程第四版pdf (32)