汇编语言全接触-100.拾取密码框中的密码

概述:

其实早有所闻 Windows 的马虎,Windows打星号的密码框中的密码实际上是很容易得到的,我以前看到过的资料说是检索屏幕上的窗口,找到有 ES_PASSWORD 风格的就向它发送取消 ES_PASSWORD 的消息,然后刷新它,密码就在原来的地方显示出来了,这儿还有另一个办法,就是找到密码框,直接取得中间的文本,这里是本文中的所有的源程序。

程序的结构如下: 初始化的时候设置一个定时器,定时时间为0.1秒,然后在定时器消息中利用 GetCursorPos 取得当前鼠标的位置,再利用 WindowFromPoint 取得该位置的窗口句柄,如果成功的话,利用 GetWindowLong 取得窗口的风格,如果窗口有 ES_PASSWORD 风格的话,那么这肯定是个密码框,然后我们向它发送 WM_GETTEXT 消息取得中间的文本就万事大吉了,简单吗?下面是源程序,结合上面的介绍是很好懂的。

最后,如果你的163密码泄密了可不是我的错喔! :-)

源程序:

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

; Programmed by 罗云彬, bigluo@telekbird.com.cn

; Website: http://asm.yeah.net

; LuoYunBin's Win32 ASM page (罗云彬的编程乐园)

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

; 版本信息

; 密码查看器 - 可以查看 ES_PASSWORD 风格的编辑框中的密码

; V1.0 ------ 2000年6月18日

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

.386

.model flat, stdcall

option casemap :none ; case sensitive

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

; Include 数据

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

include windows.inc

include user32.inc

include kernel32.inc

include comctl32.inc

include comdlg32.inc

includelib user32.lib

includelib kernel32.lib

includelib comctl32.lib

includelib comdlg32.lib

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

; Equ 数据

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

DLG_MAIN equ 1000

ID_PWD equ 1001

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

; 数据段

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

.data?

hInstance dd ?

szBuffer db 256 dup (?)

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

; 子程序声明

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

_ProcDlgMain PROTO :DWORD,:DWORD,:DWORD,:DWORD

.data

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

; 代码段

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

.code

include Win.asm

;********************************************************************

_ProcDlgMain proc uses ebx edi esi, \

hWnd:DWORD,wMsg:DWORD,wParam:DWORD,lParam:DWORD

local @stPoint:POINT

local @hWindow

mov eax,wMsg

.if eax == WM_CLOSE

invoke EndDialog,hWnd,NULL

invoke KillTimer,hWnd,1

.elseif eax == WM_INITDIALOG

invoke _CenterWindow,hWnd

invoke SendDlgItemMessage,hWnd,ID_PWD,EM_SETREADONLY,TRUE,NULL

invoke SetWindowPos,hWnd,HWND_TOPMOST,0,0,0,0,\

SWP_NOMOVE or SWP_NOSIZE

invoke SetTimer,hWnd,1,100,NULL

.elseif eax == WM_TIMER

invoke GetCursorPos,addr @stPoint

invoke WindowFromPoint,@stPoint.x,@stPoint.y

mov @hWindow,eax

.if eax != NULL

invoke GetWindowLong,@hWindow,GWL_STYLE

.if (eax & ES_PASSWORD)

invoke SendMessage,@hWindow,WM_GETTEXT,255,offset szBuffer

invoke SetDlgItemText,hWnd,ID_PWD,offset szBuffer

.endif

.endif

.else

;********************************************************************

; 注意:对话框的消息处理后,要返回 TRUE,对没有处理的消息

; 要返回 FALSE

;********************************************************************

mov eax,FALSE

ret

.endif

mov eax,TRUE

ret

_ProcDlgMain endp

;********************************************************************

start:

invoke GetModuleHandle,NULL

mov hInstance,eax

invoke DialogBoxParam,hInstance,DLG_MAIN,NULL,offset _ProcDlgMain,0

invoke ExitProcess,NULL

end start

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1191346.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

拒绝尬聊死循环:开发者视角下的“社交冷启动”算法优化

为什么你的社交“冷启动”总是 Timeout?做开发的同学都知道,系统初始化最怕的就是死循环。很多兄弟在面对刚加上的微信好友时,聊天逻辑极其简陋:While(true) { Send("在吗"); Wait(86400); }这种低效的请求不仅拿不到正…

ARM体系结构

一、嵌入式系统的本质与层级嵌入式系统的官方定义是:以应用为中心,以计算机技术为基础,软硬件可剪裁的专用计算机系统。它与通用计算机最大的不同,在于完全围绕具体应用场景设计,可根据需求对功耗、体积、环境适应性、…

RPA 自动化推送中的多任务调度与并发控制

​ QiWe开放平台 个人名片 API驱动企微自动化,让开发更高效 核心能力:为开发者提供标准化接口、快速集成工具,助力产品高效拓展功能场景 官方站点:https://www.qiweapi.com 团队定位:专注企微API生态…

opencv基础(轮廓检测、绘制与特征)

一、轮廓检测轮廓定义:图像中具有相同颜色 / 灰度的连续像素点连接形成的闭合曲线,代表前景与背景的边界,与边缘(单像素灰度突变)不同,轮廓更强调整体外形与连通性。cv2.findContours 是 OpenCV 用于从二值…

Leetcode—3314. 构造最小位运算数组 I【简单】

2025每日刷题&#xff08;240&#xff09; Leetcode—3314. 构造最小位运算数组 I实现代码 func minBitwiseArray(nums []int) []int {ans : make([]int, 0)for _, x : range nums {if x 2 {ans append(ans, -1)} else {for i : 1; i < 32; i {if x >> i & 1 0…

集成运放加法器电路原理验证的实战案例(含Multisim仿真)

以下是对您提供的博文内容进行 深度润色与结构重构后的技术博客正文 。本次优化严格遵循您的全部要求&#xff1a; ✅ 彻底去除AI痕迹&#xff0c;语言自然、专业、有“人味”&#xff1b; ✅ 打破模板化标题体系&#xff0c;以逻辑流驱动章节演进&#xff1b; ✅ 将原理、…

词根词缀拆解|dict- = 说/断言!用兜兜英语快速记牢高频词

喽英语学习者们&#x1f44b;&#xff01;今天用「兜兜英语词根词缀拆解工具」带大家吃透一个超实用前缀——dict-&#xff0c;它的核心含义是「说、断言」&#xff0c;衍生出的单词遍布阅读、写作、口语场景&#xff0c;掌握它能批量解锁高频词&#xff0c;记忆效率直接翻倍✨…

基于多目标粒子群优化算法的冷热电联供型综合能源系统运行优化(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1…

计算机毕业设计springboot少儿编程教培机构教务管理系统 基于SpringBoot的青少年编程培训中心教务运营平台 少儿编程教育机构教学事务一体化管理系统

计算机毕业设计springboot少儿编程教培机构教务管理系统g0q16b8i &#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。当“双减”把学科类培训推向边缘&#xff0c;编程却凭借信息学奥…

‌如何测试AI的“推理深度”?我设计了“五层追问”测试

五层追问不是提问技巧&#xff0c;而是一套可度量、可复用的AI推理测试框架‌ 在AI辅助测试用例生成、缺陷根因分析、自动化决策等场景中&#xff0c;AI的“推理深度”直接决定测试质量的下限。传统评估仅关注输出结果是否正确&#xff0c;而‌“五层追问”测试法‌通过结构化…

GC-IP201 驱动

数据手册官网上面 https://amac-chemnitz.com/index.php/en/products/interpolationsschaltkreise/93-gc-ip201b-en STM32F103C8T6翻译后的是通信协议&#xff1a;每个数据传输都通过主机处理器发送一个SPI字来启动。一个SPI字由4位操作码、4位硬件地址和最多8位数据组成。 只有…

‌大模型测试的“监控体系”:实时检测幻觉、偏见、泄露

一、监控体系是大模型测试的“生命线”‌ 在传统软件测试中&#xff0c;我们验证的是‌确定性逻辑‌&#xff1a;输入 → 执行 → 输出 → 断言。 而在大语言模型&#xff08;LLM&#xff09;时代&#xff0c;测试对象变为‌概率性生成系统‌&#xff1a;输入 → 概率分布 → …

智能窗户防撬报警系统仿真:proteus蜂鸣器实战

智能窗户防撬报警系统仿真&#xff1a;从干簧管到蜂鸣器的实战设计你有没有想过&#xff0c;家里的窗户其实是最容易被入侵的地方&#xff1f;防盗窗虽然结实&#xff0c;但影响美观、阻碍逃生。那有没有一种方式&#xff0c;既不破坏装修风格&#xff0c;又能实时感知“有人撬…

每10年一次的“开发者淘汰战”,自1969年就已开局!

每十年&#xff0c;总有人信心满满地宣称&#xff1a;“这次&#xff0c;我们终于可以让软件开发变得简单&#xff0c;不再需要那么多开发者了。”但现实是&#xff0c;我们真的不再需要开发者了吗&#xff1f;近日&#xff0c;资深开发者 Stephan Schwab 在《Why We’ve Tried…

055.多层图最短路(扩点)

扩点最短路,也叫分层图最短路建图的节点不是真实的位置,而是真实位置+在此处的状态一般还要用到状态压缩技巧核心在于如何扩点,如何到达,如何算距离习题 获取所有钥匙的最短路 leetcode 864节点表示状态 : 真实位…

Vivado License节点锁定设置:项目环境配置说明

Vivado 节点锁定许可配置实战指南&#xff1a;让 FPGA 开发环境稳如磐石你有没有遇到过这样的场景&#xff1f;早上刚打开电脑准备调试关键模块&#xff0c;Vivado 启动失败&#xff0c;弹出一串红色警告&#xff1a;“License checkout failed”。一查日志才发现&#xff0c;许…

‌AI模拟用户情绪波动:软件测试从业者的新测试范式

在当今以用户体验为核心的产品开发逻辑中&#xff0c;软件测试早已超越“功能正确性”的单一维度&#xff0c;逐步向‌情感可用性‌&#xff08;Emotional Usability&#xff09;和‌心理韧性测试‌&#xff08;Psychological Resilience Testing&#xff09;延伸。‌一、为什么…

记一次经典的反序列化漏洞(CVE-2017-10271)

关于WebLogic ​ WebLogic 是由 Oracle 公司开发的一款企业级 Java EE(现 Jakarta EE)应用服务器,广泛用于构建、部署和管理大型分布式企业应用。它提供高可用性、可扩展性和安全性,支持诸如 EJB、JMS、JTA、JDBC、…

Authentication is required but no CredentialsProvider has been registered 报错已解决

文章目录 Authentication is required but no CredentialsProvider has been registered 报错已解决项目场景问题描述原因分析1️⃣ Git 仓库是私有仓库2️⃣ Git 仓库地址&#xff08;uri&#xff09;配置错误3️⃣ 未配置 CredentialsProvider 解决方案方案一&#xff1a;配置…

Multisim14使用教程:快速理解直流电路搭建步骤

Multisim14实战入门&#xff1a;手把手教你搭出第一个直流电路你有没有过这样的经历&#xff1f;在模电实验课上&#xff0c;接了一堆导线&#xff0c;万用表一测——电压不对&#xff1b;反复检查&#xff0c;发现是电源正负极接反了。更糟的是&#xff0c;某个电阻还因为电流…