民初思韻網

加入收藏   設為首頁
選擇語言   簡體中文
你好,請 登陸 或 注冊
首頁 人文思韻 傳奇人物 歷史思潮 時代作品 話題討論 國民思韻 民初捐助 賬戶管理
  搜索  
    人文精神 >>> 技術的天空 溫和的思緒
字體    

星號密碼查看工具
星號密碼查看工具
樂杰軟件     阅读简体中文版

星號密碼查看工具大家都用過吧,現在我們自己來寫個超級簡單的。其實密碼框是一個Windows的一個子窗口,顯示星號是因為密碼框設置了EM_SETPASSWORDCHAR屬性,只要我們把密碼框的EM_SETPASSWORDCHAR屬性給去掉那么密碼就會以明文顯示了,我們可以給程序發送消息去掉EM_SETPASSWORDCHAR屬性。通過安裝鼠標鉤子監視鼠標動作,如果用戶單擊的是密碼框那么就發送一個去除密碼屬性的消息。

本文使用的編程工具為VC6.0,具體實現步驟和代碼如下:
1.生成一個基于對話框的程序pass。打開passDlg.cpp,加入下面的全局變量和鼠標鉤子函數。
HHOOK g_hHook = NULL;//全局鉤子函數句柄
//鼠標鉤子函數
LRESULT CALLBACK HookProc( int code, WPARAM wParam,LPARAM lParam )
{
HWND hwnd;
POINT point;
GetCursorPos(&point);//得到鼠標位置
hwnd=::WindowFromPoint(point);//得到包含鼠標的窗口句柄
long nStyle=::GetWindowLong(hwnd,GWL_STYLE);// 得到窗口風格

EVENTMSG *event=(EVENTMSG *)lParam;
if(event->message==WM_LBUTTONDOWN)//是否為鼠標左鍵
{
if(nStyle & ES_PASSWORD)//是否為密碼框
{
::PostMessage(hwnd, EM_SETPASSWORDCHAR,0,0);//去掉密碼屬性
}
}
return CallNextHookEx(g_hHook,code,wParam,lParam);
}
需要注意的是,程序中::PostMessage(hwnd, EM_SETPASSWORDCHAR,0,0);
只能是PostMessage而不能用SendMessage代替。
2.添加“開始探測”按鈕及響應函數OnOK()在函數中安裝鉤子
void CPassDlg::OnOK()
{
g_hHook=SetWindowsHookEx(WH_JOURNALRECORD,HookProc,GetModuleHandle(NULL),0);
//安裝鉤子
}
鉤子的第三部分使用GetModuleHandle(NULL)意為把自己做為保存鉤子的DLL
3.添加“取消退出”按鈕及響應函數OnExit() 在函數中卸載鉤子
void CPassDlg::OnExit()
{

if(g_hHook)
UnhookWindowsHookEx(g_hHook);//卸載鉤子
exit(0);
}
現在就完工了,打開我們的程序,按下“開始探測”再打開需要輸入密碼的程序試試,是不是以明文顯示了?用這個小程序可以搞定系統的密碼設置,outlook或防范不嚴的程序密碼,但對有專門防范的程序就不行了比如新版QQ。

http://hi.baidu.com/ajdo/blog/item/2b6bf122216cdee1d7cae2cb.html

2012-07-14 18:30

歡迎訂閱我們的微信公眾賬號!
春秋茶館訂閱號
微信號 season-tea(春秋茶館)
每天分享一篇科技/遊戲/人文類的資訊,點綴生活,啟迪思想,探討古典韻味。
  清末民初歷史人物  民初人物
民族主義思想大師
章太炎(1869年1月12日-1936年6月14日),原名學乘,字枚叔。嗣因反清意識濃厚,慕顧炎武的為人行事而改名為絳,號太炎。中國浙江餘杭人,清末民初思想家,史學家,樸....
學貫中西品讀東西文化
林語堂(1895年10月10日-1976年3月26日),中國文學家、發明家。福建省龍溪(現為漳州市平和縣)坂仔鎮人,乳名和樂,名玉堂,後改為語堂。美國哈佛大學比較文學碩士....
資助民初精神網
        回頂部     寫評論

 
評論集
暫無評論!
發表評論歡迎你的評論
昵稱:     登陸  註冊
主頁:  
郵箱:  (僅管理員可見)

驗證:   验证码(不區分大小寫)  
© 2011   民初思韻網-清末民初傳奇時代的發現與復興   版權所有   加入收藏    設為首頁    聯繫我們    1616導航