国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

Win2000/XP/2003下的密碼探測器

瀏覽:81日期:2023-09-11 13:08:08

在Win98下,對于別的程序的密碼框,我們可以用SendMessage函數可以對這個密碼框下一個WM_GETTEXT 的命令獲取這個密碼框的內容。但自2000以后,微軟的安全意識似乎強了一點,用這個命令對普通的窗口管用,但對于密碼框已經不起作用了。

有不少類似的程序是通過建立動態鏈接庫的方式來獲取,但是那樣做太麻煩了,其實我們有更簡便的作法。那就是對它先下一個命令,去除它的密碼框的屬性,然后再獲取它的內容,最后恢復它密碼框的屬性。

{ 項目 :Win2000/XP/2003 下*號密碼探測器 作者 :黃濤  日期 :2004年1月18日}unit uPassWord;

interface

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;

type TfrmPassword = class(TForm)edPassword: TEdit; //顯示密碼的文本框Timer1: TTimer; //定時器procedure Timer1Timer(Sender: TObject); private{ Private declarations } public{ Public declarations } end;

var frmPassword: TfrmPassword;

implementation

{$R *.dfm}

procedure TfrmPassword.Timer1Timer(Sender: TObject);var s:pchar; i,n:integer; p:Tpoint;h:integer; c:integer;begin getcursorpos(p); //得到當前光標的位置 h:=windowfrompoint(p); //當到光標處窗口的句柄 n:=getwindowlong(h ,GWL_STYLE ); //取窗口的屬性 if (n and $20) <>0 then begin  //判斷是否為密碼框c:=sendMessage(h, EM_GETPASSWORDCHAR,0, 0);//得到密碼框當前的字符 如'*'等PostMessage(h,EM_SETPASSWORDCHAR,0,0);//設置密碼框的字符為空,即去除密碼框的密碼屬性,

//此處一定要用PostMessage,而不能用 SendMessage,用后者無效i:= sendmessage(h,WM_GETTEXTLENGTH,0,0);inc(i);//取得密碼串的長度getmem(s,i); //分配內存sendmessage(h,WM_GETTEXT,i,longint(s)); //獲取密碼字符串edPassword.Text := s;//將密碼放入文本框中postMessage(h,EM_SETPASSWORDCHAR,c,0); //恢復原來的密碼屬性freemem(s); //釋放內存 end;end;

end.

本程序在 Window Server 2003 ,Delphi 7.0 Enterprise 下編譯通過。但這個程序只對那些沒有防范的程序有效,如QQ ganme 等,但對有些防范的程序來說還是無能為力的,如QQ2004 Beta的密碼框是沒用的。可見Win2000/XP/2003密碼框的安全也是相對的,要想安全還要自己想辦法。

主站蜘蛛池模板: 天水市| 平定县| 扎兰屯市| 修水县| 北宁市| 宿松县| 宜春市| 永川市| 商河县| 神池县| 姚安县| 周口市| 霞浦县| 夹江县| 达孜县| 庆云县| 龙海市| 建水县| 铁岭市| 新河县| 巢湖市| 伊川县| 龙江县| 若羌县| 兖州市| 界首市| 双城市| 海淀区| 澄江县| 乌鲁木齐县| 米泉市| 泌阳县| 日喀则市| 革吉县| 博客| 通化县| 巴林右旗| 英山县| 沾化县| 新郑市| 贺州市|