news 2026/10/26 3:57:18

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
汇编语言全接触-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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/19 18:35:45

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

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

作者头像 李华
网站建设 2026/10/17 21:36:32

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…

作者头像 李华
网站建设 2026/10/10 17:19:57

USB-Serial Controller D驱动下载工具推荐(初学者适用)

为什么你的开发板连不上电脑&#xff1f;一文搞懂 USB转串口驱动安装&#xff08;新手避坑指南&#xff09; 你有没有遇到过这样的场景&#xff1a; 刚买回来一块 Arduino Nano&#xff0c;兴冲冲插上电脑&#xff0c;打开 IDE 准备烧程序——结果提示“找不到串口”。 设备…

作者头像 李华
网站建设 2026/10/19 5:33:58

阿里云渠道商:弹性伸缩爬虫实战 智能应对流量高峰的 3 步方案

引言&#xff1a;当爬虫任务遭遇数据洪峰&#xff0c;传统服务器常因资源不足崩溃。通过阿里云弹性伸缩&#xff08;Auto Scaling&#xff09;&#xff0c;可自动调整计算资源&#xff0c;实现&#xff1a;爬虫高峰期自动扩容任务低谷期自动缩容成本降低 40%&#xff08;实测案…

作者头像 李华
网站建设 2026/10/21 1:27:47

ERROR. pos 145, line 2, column 21, token COMMA 报错已解决

ERROR. pos 145, line 2, column 21, token COMMA 报错已解决 在软件开发过程中&#xff0c;尤其是 Java、C 以及基于模板的配置文件中&#xff0c;偶尔会遇到编译器或 IDE 报出的类似如下错误&#xff1a; ERROR. pos 145, line 2, column 21, token COMMA虽然错误提示看起来枯…

作者头像 李华