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

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>
            亚洲国产一区二区三区在线播| 国产精品一卡二卡| 欧美午夜久久| 亚洲精品国产品国语在线app| 午夜影院日韩| 一本色道久久综合亚洲精品小说| 免费高清在线视频一区·| 国产一区自拍视频| 久久精品视频一| 香蕉乱码成人久久天堂爱免费| 欧美三级电影一区| 一区二区三区四区国产| 亚洲黄网站在线观看| 欧美影院在线| 黄色成人免费网站| 美女网站久久| 狂野欧美一区| 亚洲成色精品| 久久www成人_看片免费不卡| 国产精品成人一区二区| 亚洲制服欧美中文字幕中文字幕| 日韩亚洲欧美高清| 国产精品一区二区久久精品| 欧美在线欧美在线| 久久国产精品黑丝| 一区在线播放| 亚洲国产精品日韩| 欧美三级电影精品| 小黄鸭精品aⅴ导航网站入口| 亚洲欧美日本视频在线观看| 国产视频一区三区| 蜜臀久久99精品久久久画质超高清| 久久免费视频在线观看| 亚洲精品一区二区在线观看| 亚洲精品小视频| 国产麻豆精品视频| 欧美激情2020午夜免费观看| 欧美精品福利| 午夜精品久久久久久久99水蜜桃| 亚洲摸下面视频| 亚洲高清一区二区三区| 99精品免费| 伊人久久男人天堂| 99视频精品| 韩国成人精品a∨在线观看| 亚洲国产成人tv| 国产精品中文在线| 亚洲欧洲综合另类在线| 国产亚洲人成网站在线观看| 亚洲国产人成综合网站| 国产精品一区二区你懂得| 欧美mv日韩mv国产网站| 国产精品久久久久久久久果冻传媒| 久久亚洲综合色一区二区三区| 欧美福利视频在线观看| 久久久www免费人成黑人精品| 欧美成人综合| 久久漫画官网| 欧美性天天影院| 亚洲国产精品久久| 海角社区69精品视频| 一区二区高清视频| 最近中文字幕mv在线一区二区三区四区| 正在播放亚洲一区| 日韩视频免费观看高清在线视频| 亚洲欧美日韩中文在线制服| 亚洲看片网站| 久久久久久久久久久久久女国产乱| 这里只有精品在线播放| 久久人人九九| 久久久精品国产免费观看同学| 欧美日韩视频免费播放| 欧美福利一区| 一区久久精品| 久久精品国产亚洲一区二区三区 | 亚洲一区在线直播| 国产精品每日更新| 日韩视频专区| 蜜桃久久av一区| 久久天堂av综合合色| 国产精品日韩欧美综合| 亚洲免费观看| 99热这里只有成人精品国产| 久热精品视频在线观看一区| 久久经典综合| 国产欧美日韩视频在线观看| 一区二区三区高清不卡| 一本色道久久综合亚洲精品小说 | 欧美一区二区播放| 欧美一区二区高清在线观看| 国产精品porn| 亚洲一区中文| 久久精品国产99国产精品| 国产精品视屏| 校园春色综合网| 久久久福利视频| 国内精品免费在线观看| 久久精品人人做人人爽电影蜜月 | 男人的天堂亚洲在线| 欧美成人性网| 亚洲欧洲一区二区天堂久久| 欧美+亚洲+精品+三区| 欧美福利一区二区| 99国产成+人+综合+亚洲欧美| 欧美极品aⅴ影院| 一本色道久久加勒比精品| 亚洲女人小视频在线观看| 国产精品一区二区久激情瑜伽| 亚洲欧美另类中文字幕| 久久riav二区三区| 在线成人国产| 欧美日韩国产首页| 亚洲女同在线| 欧美成人综合一区| 亚洲一二三区精品| 国内外成人免费视频| 欧美+日本+国产+在线a∨观看| 亚洲精品一二三| 久久精品国产精品亚洲| 在线观看精品| 欧美系列精品| 久久久最新网址| 日韩一级裸体免费视频| 欧美一区二区在线看| 伊人久久综合| 欧美日韩综合在线| 久久www成人_看片免费不卡| 亚洲第一在线视频| 亚洲欧美综合精品久久成人| 国内免费精品永久在线视频| 欧美成人性生活| 性色av一区二区三区| 最新成人在线| 麻豆91精品| 亚洲欧美日韩综合| 亚洲电影在线观看| 国产精品美女999| 欧美ed2k| 欧美一区二区三区日韩| 亚洲伦理中文字幕| 欧美刺激性大交免费视频| 亚洲一区二区三区在线看| 在线精品国产欧美| 久热精品视频在线观看| 欧美一区激情视频在线观看| 亚洲欧洲日本在线| 国产在线拍偷自揄拍精品| 欧美日韩日韩| 美女主播精品视频一二三四| 亚洲欧美日韩精品在线| 亚洲精品网站在线播放gif| 乱人伦精品视频在线观看| 亚洲影院色在线观看免费| 亚洲经典在线看| 精品动漫3d一区二区三区| 国产精品影音先锋| 欧美午夜久久| 欧美日韩在线看| 欧美激情精品久久久久久变态 | 国产精品国产馆在线真实露脸| 久久青草久久| 久久久久久电影| 久久福利一区| 欧美亚洲视频在线观看| 一区二区日韩精品| 亚洲久久视频| 最新69国产成人精品视频免费| 欧美不卡激情三级在线观看| 久久精品国产清自在天天线| 亚洲欧美成人在线| 亚洲一区免费网站| 亚洲一区在线免费| 亚洲一区二区三区四区在线观看| 日韩一二三区视频| 99视频在线精品国自产拍免费观看| 亚洲第一色中文字幕| 亚洲第一黄网| 亚洲九九爱视频| av成人老司机| 亚洲一区在线播放| 翔田千里一区二区| 久久久久久亚洲精品中文字幕 | 最新精品在线| 日韩视频免费观看| 亚洲开发第一视频在线播放| 亚洲激情在线视频| 亚洲六月丁香色婷婷综合久久| 91久久综合亚洲鲁鲁五月天| 亚洲人妖在线| 亚洲视频网在线直播| 午夜欧美不卡精品aaaaa| 性欧美办公室18xxxxhd| 欧美主播一区二区三区美女 久久精品人| 欧美一区二区高清| 久久久免费精品视频| 毛片一区二区三区| 欧美日韩国产成人精品| 国产精品视频福利| 永久免费毛片在线播放不卡| 亚洲全黄一级网站|