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

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>
            国产精品一区二区你懂的| 亚洲一区二区三区精品视频 | 亚洲欧美国产va在线影院| 日韩一区二区高清| 日韩一区二区电影网| 亚洲天堂男人| 欧美在线播放一区二区| 美女精品在线观看| 欧美性开放视频| 国产真实乱子伦精品视频| 狠狠色2019综合网| 日韩亚洲精品视频| 午夜精品久久久久久久久| 久久久久这里只有精品| 欧美成人免费网| 中日韩视频在线观看| 久久久av网站| 欧美三级电影大全| 激情成人综合网| 亚洲专区一二三| 欧美成人午夜| 亚洲午夜性刺激影院| 久久综合九色综合欧美狠狠| 欧美日韩精品一区二区天天拍小说| 国产精品日韩专区| 亚洲毛片网站| 久久一二三区| 亚洲无亚洲人成网站77777| 久久久久久婷| 国产精品一二三视频| 日韩午夜在线观看视频| 久久狠狠久久综合桃花| 日韩一区二区免费高清| 裸体一区二区| 国产夜色精品一区二区av| 亚洲最黄网站| 欧美黄色片免费观看| 久久激情网站| 国产欧美日韩综合一区在线观看| 日韩一级二级三级| 欧美大片免费观看在线观看网站推荐 | 欧美精品系列| 亚洲人成网在线播放| 久久蜜桃香蕉精品一区二区三区| 999亚洲国产精| 欧美激情四色| 亚洲麻豆av| 亚洲成人在线网站| 久久国产视频网| 国产女精品视频网站免费| 久久综合伊人77777蜜臀| 欧美激情按摩| 欧美一区二区三区免费在线看| 欧美激情第8页| 亚洲人成亚洲人成在线观看| 裸体女人亚洲精品一区| 久久国产精品久久久| 国产一区二区三区久久| 欧美在线网址| 久久成人综合视频| 在线观看亚洲视频| 欧美国产精品v| 欧美激情中文字幕乱码免费| 亚洲精品久久久一区二区三区| 欧美成人一品| 欧美激情一区二区| 中文久久精品| 亚洲男同1069视频| 国产一区二区三区免费观看| 久久久久久国产精品mv| 久久久久久999| 亚洲激情小视频| 91久久精品日日躁夜夜躁欧美| 欧美国产亚洲视频| 亚洲综合二区| 久久爱另类一区二区小说| 激情久久综合| 亚洲人成在线观看一区二区| 欧美日韩二区三区| 香蕉成人啪国产精品视频综合网| 亚洲欧美精品在线| 在线播放亚洲| 日韩一级免费| 狠狠88综合久久久久综合网| 欧美国产另类| 国产精品美女久久久久久久| 久久免费的精品国产v∧| 欧美激情第二页| 久久国产欧美| 欧美大片91| 欧美在线在线| 欧美久久久久| 久久亚洲欧美国产精品乐播| 欧美成人性生活| 久久成人精品电影| 欧美人与禽猛交乱配视频| 亚洲欧美一区二区三区极速播放 | 老**午夜毛片一区二区三区| 欧美精品激情在线| 久久av一区二区三区| 欧美高清不卡| 久久久久久久久岛国免费| 欧美激情一区二区三区在线视频 | 欧美电影资源| 国产精品视频网站| 亚洲精美视频| 一区二区三区自拍| 亚洲婷婷综合色高清在线| 亚洲最黄网站| 国产精品一区二区你懂得| 亚洲二区三区四区| 国内精品99| 亚洲欧美日韩在线观看a三区| 亚洲黄色av| 久久九九免费视频| 欧美在线免费观看| 国产精品欧美在线| 日韩午夜剧场| 99re8这里有精品热视频免费| 久久蜜桃精品| 六月天综合网| 韩国三级在线一区| 午夜精品美女自拍福到在线| 亚洲午夜在线| 欧美日韩国产色视频| 欧美激情中文字幕在线| 激情久久影院| 久久久伊人欧美| 久久综合中文字幕| 一区精品在线播放| 久久精品国产96久久久香蕉| 欧美在线观看视频在线| 国产精品综合不卡av| 亚洲免费在线观看视频| 午夜精品一区二区三区电影天堂 | 亚洲福利视频一区| 亚洲国内高清视频| 久热精品在线视频| 欧美大片专区| 亚洲精品美女在线观看播放| 欧美高清在线视频| 最近看过的日韩成人| 一二美女精品欧洲| 国产精品成人aaaaa网站| 亚洲视频欧洲视频| 久久激情婷婷| 亚洲国产精品成人一区二区| 嫩草伊人久久精品少妇av杨幂| 亚洲第一福利视频| 宅男精品导航| 国产欧美一二三区| 久久尤物电影视频在线观看| 亚洲国产高清aⅴ视频| 9色国产精品| 国产精品一区二区在线观看网站 | 亚洲精品国产精品国自产观看| 欧美国产日韩一区| 亚洲视频1区| 久久久999成人| 99re6热只有精品免费观看| 国产精品久久福利| 欧美在线免费视屏| 亚洲激情六月丁香| 欧美一区二区三区四区在线 | 伊人成人网在线看| 久久午夜电影网| 亚洲激情影院| 午夜综合激情| 亚洲大胆人体在线| 国产精品麻豆va在线播放| 久久久久免费| 在线综合欧美| 欧美成人精精品一区二区频| 亚洲一区二区免费| 亚洲国产成人91精品| 国产精品国产三级欧美二区 | 亚洲欧美激情诱惑| 欧美国产另类| 久久精品99国产精品酒店日本| 亚洲激情一区| 国产在线欧美日韩| 欧美性大战久久久久久久| 老司机免费视频一区二区| 亚洲一二三四久久| 亚洲国产日韩欧美| 久久亚洲精品中文字幕冲田杏梨 | 亚洲精品免费网站| 国产欧美91| 欧美日韩一区自拍| 另类专区欧美制服同性| 亚洲字幕在线观看| 亚洲剧情一区二区| 欧美国产一区二区| 久久久综合香蕉尹人综合网| 亚洲一品av免费观看| 亚洲免费观看在线视频| 亚洲国产成人精品视频| 国语精品中文字幕| 国产日韩欧美中文| 国产伦理精品不卡|