青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

S.l.e!ep.¢%

像打了激速一樣,以四倍的速度運轉,開心的工作
簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

Get IM's Pwd

Posted on 2009-12-15 20:37 S.l.e!ep.¢% 閱讀(342) 評論(0)  編輯 收藏 引用 所屬分類: RootKit

搞出來很久了,看到看雪上不少同學都很期待,干脆發出來。

本文大部分研究成果歸功于mentaldease,欲讀此文,請遵守以下約定:
1. 絕不可利用本文所揭示的技術編寫或者輔助編寫盜號木馬,危害中國網民。
2. 也不可將本文所揭示的技術直接或間接傳授給寫盜號木馬的敗類。
3. 違背以上兩點約定者,天打雷劈,斷子絕孫...(以下省略2000字)。

**********************************************************

?? 不能遵守以上三點約定者,請立即離開!

**********************************************************
在分析某著名IM軟件之前,嘗試直接用低級鍵盤鉤子截獲密碼。
筆者發現可以獲取正確的某著名IM軟件號,但是截獲的某著名IM軟件密碼里面卻有很多虛假按鍵:

事實上,只要將鼠標焦點放在密碼輸入框里,某著名IM軟件就自動產生虛假按鍵。所以,靠低級鍵盤鉤子不能截獲正確的某著名IM軟件密碼。

用XueTr查看系統中的消息鉤子。筆者發現只要用戶雙擊打開某著名IM軟件2009登錄窗口,某著名IM軟件就會創建一個WH_KEYBOARD_LL低級鍵盤鉤子,如圖2

我們知道WH_KEYBOARD_LL鉤子的優先級高于WH_KEYBOARD和WH_GETMESSAGE鉤子。顯然某著名IM軟件2009的低級鍵盤鉤子會比其他類型的鉤子先執行,某著名IM軟件獲取用戶的真實按鍵后再偽造虛假按鍵。

筆者在成功截獲某著名IM軟件2009密碼之后,掛鉤了SetWindowHookEx觀察某著名IM軟件創建WH_KEYBOARD_LL鉤子的過程:


由上圖可見某著名IM軟件2009每隔不到0.2秒就創建一個低級鍵盤鉤子,這樣確保自己的鉤子始終在鉤子隊列的最頂層。

我們對SetWindowHookEx函數下斷,但是斷不下來,顯然是某著名IM軟件在這里有反調試。刪除剛才的斷點,下一個硬件斷點,程序斷下,執行到返回:

來到042437C5處,tssafeed模塊中看到如下指令:
042437BB??? 56????????????? push??? esi
042437BC??? 50????????????? push??? eax
042437BD??? FF75 0C???????? push??? dword ptr [ebp+C]
042437C0??? E8 AB550000???? call??? 04248D70???????????????????????? ; jmp 到 MSVCRT.memcmp
042437C5??? 8B3D 28A02404?? mov???? edi, dword ptr [424A028]???????? ; KERNEL32.GetCurrentProcess
042437CB??? 83C4 0C???????? add???? esp, 0C
042437CE??? 85C0??????????? test??? eax, eax
042437D0??? 0F84 8F000000?? je????? 04243865

猜測這里很可能就是用memcmp 函數校驗SetWindowsHookExA(可能還有其他函數)的代碼。在042437BB 處F2,再F9讓程序運行,把鼠標焦點移到密碼輸入框時,斷下來了:

單步執行到042437C0,看堆棧信息:

果然是對SetWindowsHookExA初的內存進行校驗。memcmp返回0則認為該處內存沒有改變。

在77D311D1處下硬件執行斷點,成功斷下后,堆棧信息如圖:


HookType為13,即是WH_KEYBOARD_LL鉤子,其HookProc為 04260F1B,轉到該地址看看某著名IM軟件的鉤子回調例程:
04260F1B??? 55????????????? push??? ebp
04260F1C??? 8BEC??????????? mov???? ebp, esp
04260F1E??? 83EC 30???????? sub???? esp, 30
04260F21??? 56????????????? push??? esi
04260F22??? 57????????????? push??? edi
04260F23??? C745 FC F00C260>mov???? dword ptr [ebp-4], 4260CF0
04260F2A??? 8D7D D0???????? lea???? edi, dword ptr [ebp-30]
04260F2D??? B9 07000000???? mov???? ecx, 7
04260F32??? 33C0??????????? xor???? eax, eax
04260F34??? FC????????????? cld
04260F35??? F3:AB?????????? rep???? stos dword ptr es:[edi]
04260F37??? 8B45 10???????? mov???? eax, dword ptr [ebp+10]
04260F3A??? 8945 F8???????? mov???? dword ptr [ebp-8], eax
04260F3D??? C745 F4 0000000>mov???? dword ptr [ebp-C], 0
04260F44??? E8 20000000???? call??? 04260F69?????????????????????? ; 跟進
… …

04260F69 處的call:
04260F69??? 5F????????????? pop???? edi
04260F6A??? 8B4D F4???????? mov???? ecx, dword ptr [ebp-C]
04260F6D??? 833C8F 00?????? cmp???? dword ptr [edi+ecx*4], 0
04260F71??? 74 1D?????????? je????? short 04260F90
04260F73??? 8B55 F4???????? mov???? edx, dword ptr [ebp-C]
04260F76??? 8B0497????????? mov???? eax, dword ptr [edi+edx*4]
04260F79??? 50????????????? push??? eax
04260F7A??? 8B4D FC???????? mov???? ecx, dword ptr [ebp-4]
04260F7D??? FF51 50???????? call??? dword ptr [ecx+50]???????????? ; USER32.GetAsyncKeyState
04260F80??? 0FBFD0????????? movsx?? edx, ax
04260F83??? 81E2 00800000?? and???? edx, 8000
04260F89??? 75 05?????????? jnz???? short 04260F90
04260F8B??? FF45 F4???????? inc???? dword ptr [ebp-C]
04260F8E? ^ EB DA?????????? jmp???? short 04260F6A
04260F90??? 8B55 F8???????? mov???? edx, dword ptr [ebp-8]
04260F93??? 8B02??????????? mov???? eax, dword ptr [edx]
04260F95??? C745 F0 0000000>mov???? dword ptr [ebp-10], 0
04260F9C??? E8 3C000000???? call??? 04260FDD????????? ;跟進
… …

這個函數中有很多花指令,這里就不仔細分析了,對GetForegroundWindow下斷,只要將鼠標焦點移到某著名IM軟件登錄窗口,就會斷下,再對CallNextHookEx下斷觀察。它的大概功能猜也猜得出來:某著名IM軟件自己獲取按鍵之后,發送虛假按鍵,然后直接返回。現在就是找出某著名IM軟件2009到底是用什么函數發送虛假按鍵。對keybd_event下硬件執行斷點,沒有斷下,對sendInput下硬件斷點,斷下了:

Sendinput函數原型:
UINT SendInput(
? UINT nInputs,???? // count of input events
? LPINPUT pInputs,? // array of input events
? int cbSize??????? // size of structure
);
typedef struct tagINPUT {
? DWORD?? type;
? union {
????? MOUSEINPUT????? mi;
????? KEYBDINPUT????? ki;
????? HARDWAREINPUT?? hi;
? };
} INPUT, *PINPUT;
觀察堆棧:

數據窗口跟隨到0012FA94:

如圖所示 01表示的是輸入類型INPUT_KEYBOARD,pInouts的結構如下:
typedef struct tagKEYBDINPUT {
? WORD????? wVk;
? WORD????? wScan;
? DWORD???? dwFlags;
? DWORD???? time;
? ULONG_PTR dwExtraInfo;
} KEYBDINPUT, *PKEYBDINPUT;
如圖所示0x38對應的虛擬按鍵是數字8,用我們剛才寫的那個低級鍵盤鉤子可以看到,所接收到的虛假按鍵正是8.

現在我們能夠寫出某著名IM軟件的低級鍵盤鉤子處理例程:
HWND hwnd = GetForegroundWindow();
If( hWnd == hPassEditWnd)
{
? MapVirtualKey();
? SendInput();
? return? 1;
}
else
{
? return? CallNextHookEx(ncode,…);
}
現在2009登錄窗口保護的原理已經分析清楚,獲取某著名IM軟件密碼的方法也就有了。其關鍵就是繞過某著名IM軟件對SetWindowsHookExA等函數的內存校驗,然后hook SetWindowsHookExA,判斷如果是某著名IM軟件的WH_KEYBOARD_LL鉤子,就替換其回調函數,然后在my_KeyboardllProc中截獲密碼,下圖是截獲密碼的效果圖:

PS:某著名IM軟件2009的軟鍵盤也被我和mentaldease兄突破,并成功截獲密碼:


演示程序:GetXXPass.rar

?

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美精品粉嫩高潮一区二区| 黄色欧美日韩| 亚洲在线一区| 亚洲精品视频在线播放| 欧美成人综合一区| 久久午夜羞羞影院免费观看| 久久久精品一品道一区| 夜夜精品视频| 亚洲视频1区| 亚洲一区二区三区影院| 亚洲巨乳在线| 亚洲精品一品区二品区三品区| 亚洲一区二区三区四区五区黄| 国产精品丝袜久久久久久app| 欧美岛国激情| 欧美高清影院| 久久理论片午夜琪琪电影网| 亚洲一区免费在线观看| 日韩一区二区电影网| 亚洲国产裸拍裸体视频在线观看乱了中文 | 亚洲天堂成人在线视频| 精品二区视频| 激情懂色av一区av二区av| 欧美成人a视频| 久久九九精品99国产精品| 欧美一区二区三区的| 久久精品国产77777蜜臀| 欧美一区二区三区精品| 亚洲国产精品久久久久秋霞蜜臀| 99亚洲一区二区| 亚洲一区二区在线视频| 一区二区在线视频观看| 国产精品一区二区三区久久久| 中国亚洲黄色| 亚洲自拍另类| 久久国产精品99国产| 老司机精品视频一区二区三区| 免费视频亚洲| 亚洲午夜免费视频| 久久视频在线视频| 久久久久久久久岛国免费| 麻豆精品视频| 国产乱码精品一区二区三区五月婷 | 欧美亚洲视频| 免费一级欧美片在线播放| 99视频精品全部免费在线| 午夜精品福利视频| 欧美国产日韩一区二区三区| 欧美午夜精品久久久久免费视| 伊人激情综合| 久久激情婷婷| 亚洲午夜久久久久久尤物| 欧美精品v日韩精品v韩国精品v| 欧美日韩精品久久| 亚洲欧洲日产国产综合网| 欧美怡红院视频| 亚洲一区二区黄色| 亚洲午夜久久久久久久久电影院| 欧美刺激性大交免费视频| 国产亚洲毛片在线| 美国十次成人| 久久久伊人欧美| 亚洲在线观看视频网站| 免费一区视频| 亚洲电影在线| 亚洲国产影院| 国产精品草莓在线免费观看| 亚洲一区精品视频| 亚洲永久免费| 久久久久久久高潮| 久久精品成人欧美大片古装| 国产精品扒开腿做爽爽爽软件| 亚洲网址在线| 久久国产精品久久久久久久久久| 激情久久中文字幕| 久久欧美中文字幕| 欧美日韩成人综合在线一区二区 | 国产精品久久久久久五月尺| 在线日本高清免费不卡| 亚洲精品一级| 极品尤物av久久免费看 | 亚洲黄色尤物视频| 国产精品毛片a∨一区二区三区| 玖玖精品视频| 国产日韩精品一区| 日韩一级不卡| 国内精品国语自产拍在线观看| 亚洲人成网站777色婷婷| 一区二区三区在线观看国产| 中文欧美在线视频| 日韩系列欧美系列| 免费成人你懂的| 欧美国产第一页| 国产免费成人| 亚洲老司机av| 欧美一区二区成人| 午夜在线一区二区| 欧美三区美女| 午夜久久tv| 久久精品亚洲精品| 在线一区二区视频| 日韩亚洲精品在线| 久久久久**毛片大全| 欧美粗暴jizz性欧美20| 最新日韩在线| 欧美视频一区二区在线观看| 亚洲最新色图| 欧美主播一区二区三区| 精品av久久707| 欧美在线黄色| 亚洲网站视频福利| 国产精品人人做人人爽| 亚洲欧洲中文日韩久久av乱码| 在线观看亚洲视频| 欧美精品福利视频| 亚洲淫性视频| 亚洲人成在线播放| 久久精品国产一区二区三区免费看 | 久久手机免费观看| 亚洲美洲欧洲综合国产一区| 国产精品日日摸夜夜添夜夜av | 久久xxxx| 久久深夜福利| 男女精品视频| 欧美日韩亚洲一区二区| 亚洲国产精品黑人久久久| 久久影视精品| 亚洲高清免费在线| 亚洲视频图片小说| 久久精品中文| 美女精品视频一区| 国产精品丝袜xxxxxxx| 国内综合精品午夜久久资源| 亚洲第一在线视频| 亚洲午夜精品久久| 久久综合综合久久综合| 亚洲国产激情| 性做久久久久久久久| 蜜臀av一级做a爰片久久| 欧美三级视频在线| 亚洲第一福利社区| 亚洲欧美日韩在线高清直播| 久久久在线视频| 亚洲综合色网站| 欧美美女bb生活片| 伊人久久久大香线蕉综合直播 | 国产精品第一区| 国内激情久久| 亚洲男女自偷自拍| 亚洲毛片一区二区| 欧美激情精品久久久久久| 一区二区三区中文在线观看| 久久久久久久尹人综合网亚洲| 亚洲国产一区在线| 亚洲视频精品在线| 欧美激情中文字幕在线| 久久久久网址| 亚洲日本中文| 亚洲精品黄色| 国产精品久久久91| 久久九九免费视频| 久久精品一本| 日韩午夜剧场| 亚洲一区二区毛片| 亚洲大片在线| 亚洲一区一卡| 亚洲国产精品成人| 欧美日韩国产综合视频在线观看中文 | 亚洲电影第三页| 六月婷婷久久| 一区二区三区四区五区在线| 欧美一二三区精品| 影音先锋亚洲电影| 欧美不卡激情三级在线观看| 亚洲视频网在线直播| 欧美xx69| 欧美一区二区观看视频| 在线免费高清一区二区三区| 欧美日本中文| 久久国产婷婷国产香蕉| 99re在线精品| 蜜月aⅴ免费一区二区三区| 亚洲视频一二区| 亚洲国产天堂网精品网站| 欧美日韩你懂的| 久久影院午夜片一区| 亚洲日本乱码在线观看| 久久亚洲影院| 欧美一区二区三区久久精品| 99综合视频| 亚洲激情在线观看| 国产亚洲免费的视频看| 欧美体内she精视频| 久久影院亚洲| 欧美有码在线视频| 亚洲一区二区在线播放| 91久久精品一区| 欧美v日韩v国产v| 久久人人97超碰人人澡爱香蕉| 午夜激情综合网|