当前位置: 首页 > news >正文

汇编语言全接触-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.jsqmd.com/news/275542/

相关文章:

  • 拒绝尬聊死循环:开发者视角下的“社交冷启动”算法优化
  • RPA 自动化推送中的多任务调度与并发控制
  • opencv基础(轮廓检测、绘制与特征)
  • Leetcode—3314. 构造最小位运算数组 I【简单】
  • 集成运放加法器电路原理验证的实战案例(含Multisim仿真)
  • 词根词缀拆解|dict- = 说/断言!用兜兜英语快速记牢高频词
  • 计算机毕业设计springboot少儿编程教培机构教务管理系统 基于SpringBoot的青少年编程培训中心教务运营平台 少儿编程教育机构教学事务一体化管理系统
  • 基于多目标粒子群优化算法的冷热电联供型综合能源系统运行优化(Matlab代码实现)
  • ‌如何测试AI的“推理深度”?我设计了“五层追问”测试
  • GC-IP201 驱动
  • ‌大模型测试的“监控体系”:实时检测幻觉、偏见、泄露
  • 每10年一次的“开发者淘汰战”,自1969年就已开局!
  • 智能窗户防撬报警系统仿真:proteus蜂鸣器实战
  • 055.多层图最短路(扩点)
  • Vivado License节点锁定设置:项目环境配置说明
  • ‌AI模拟用户情绪波动:软件测试从业者的新测试范式
  • 记一次经典的反序列化漏洞(CVE-2017-10271)
  • Multisim14使用教程:快速理解直流电路搭建步骤
  • Authentication is required but no CredentialsProvider has been registered 报错已解决
  • 大模型测试的“冷启动评估”:新模型上线前怎么测?
  • 解决vscode中文输入法输入没有候选框问题
  • 2026中国智慧养老行业:老龄化浪潮下的刚性需求爆发
  • Error creating bean with name ‘xxxxxxxController‘: Injection of resource dependencies failed报错已解决
  • 如何测试AI生成的邮件是否符合商务礼仪:软件测试从业者指南
  • 通过agentscope在EKS部署远程沙盒和代理应用
  • IDEA_pom.xml_spring-boot-maven-plugin爆红问题解决
  • 全国现代物业管理人才培养赋能新质生产力发展研讨会 (MPMTT 2026)
  • 跨境电商防关联:从“单点隔离”到“系统化风控”一套打穿
  • 玩转Synbo|为什么说质押是进入Club的关键动作
  • Galaxy比数平台功能介绍及实现原理|得物技术