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

S.l.e!ep.¢%

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

[某著名IM軟件]輸入密碼-[XXSafeEdit]-保護破釋分析2008-12-16 07:41【破文標題】[某著名IM軟件]輸入密碼-[XXSafeEdit]-保護破釋分析
【對  象】初入門的新手
【下載地址】www.xx.com
【破解工具】OD
【保護方式】消息加密保護
【任  務】找出原始消息記錄觸發點
【破文作者】thomasyzh
【組  織】沒有
【破解聲明】這篇破文圖的是速度,和解決問題---沒有更加多的深入分析保護方式-總共12小時,3天,每天4小時
【備  注】老手勿看,別浪費你的時間
【電  郵】machinesy@163.com
【破解過程】

首先,要知道其對于密碼的保護方式。其用鍵盤記錄精靈等驅動級記錄失效果。以及在內存中無法找到明文輸入。

具體測試過程如下:
1。使用鍵盤記錄精靈記錄你要輸入的密碼。

測試結果。得到的并非自己輸入的。

2。使用WinHex等工具,直接內存中搜索你輸入的明文字符串。

測試結果。沒有查找到。

有了如上兩點后,我們開發分析其保護方式,首先要確定其是驅動級保護,還是非驅動級保護。


于是使用OD,打開。載入c。

F2。下斷Kernel32->CreateFile.

這里大概提提R3進R0的幾種方式。

.最為常規的驅動通信采用CreateFile,和DeviceIoContral.其次,還有中斷門,陷阱門等手法。(具體參見看雪rootkit學習)

由于XX是大型應用程序軟件,從軟件設計的角度上來考慮,其基本上不可能去掛接中斷門,等硬件很底層的東西,因為,這樣做的話會造成他們的軟件茁壯性非常低。

所以這里我只考慮了CreateFile.

這時候我們讓程序跑起來,看其會訪問什么驅動。

在CreateFile,后并沒有發現其訪問什么驅動。所以我認為。XX的保護,并非驅動級了。


這時候我們再來分析r3下的用戶鍵盤輸入。

這里提一下R3下用戶鍵盤輸入的幾種可能:
1。如果是一個窗口程序,會觸發WM_KEYDOWN.這個消息.
2。如果是控制臺程序,會向基本輸入流里寫入一個字符.
3。如果是Dx,或者其它非主流應用程序的API,或者涉及到com相關技術的東西,大概其會把輸入放入到一個Buffer里。

下面談談R3下取EDIT里字符的方法。既然是Edit,就一定是窗口程序了。所以不涉及到程序情況2(控制臺程序)。

一般情況下,寫程序的人會用GetWindowText,或者GetDlgItemText取窗口上輸入的字符。也有可能在WM_KEYDOWN時就把字符,放如Buffer,而不使用這兩個函數。在com和dx里,其一定是放入Buffer里.大概就這兩種情況。

1。根據特點,我們首先測試GetWindowText這個函數。

測試結果:好的,發現沒有使用。

2.根據直接放到Buffer這種情況,直接下XP下的萬能斷點。

測試結果:是的,它沒有走到萬難斷點這里,又或者是對那個斷點進行保護。

------這里提一提,對于XX游戲,下萬難斷點,是能夠取到密碼輸入的。

至于萬能斷點在哪里,可以查看看雪工具下載。里邊有提供工具。


這時候,我們就只能從消息入手了。畢竟是窗口程序,消息循環是絕對存在的。

這里提提,對消息掛接的幾種方式。
1。SetWindowHook.----消息鉤子。
2。SetWindowLong.----這個函數,主要用于窗口子類化。

-----這里我們先不著急,分析其消息鉤子,先對于SetWindowLong函數下端。(由于XX窗口,會做的漂亮點,通常會使用SetWindowLong函數)

這里我們要找到那個Edit窗口具體是什么窗口,找窗口有很多工具的,就不具體談了。

[XXSafeEdit]是其密碼輸入保護的主要模塊。那么我們先在LoadLibrary下點。大概會斷在這里:

608F6684???? E8 53CA0000????? call???? <jmp.&MFC42.#4160_CString::LoadStringA>
608F6689???? 68 9A860000????? push???? 869A
608F668E???? 8D4D EC????????? lea????? ecx, dword ptr [ebp-14]
608F6691???? E8 46CA0000????? call???? <jmp.&MFC42.#4160_CString::LoadStringA>
608F6696???? FF75 E8????????? push???? dword ptr [ebp-18]
608F6699???? 8B3D 30A19060??? mov????? edi, dword ptr [<&KERNEL32.LoadLibraryA>] ; kernel32.LoadLibraryA
608F669F???? FFD7???????????? call???? edi
608F66A1???? 3BC3???????????? cmp????? eax, ebx
608F66A3???? 8986 A0020000??? mov????? dword ptr [esi+2A0], eax
608F66A9???? 75 18??????????? jnz????? short 608F66C3
608F66AB???? 6A 30??????????? push???? 30
608F66AD???? 68 14869160????? push???? 60918614?????????????????????????????????? ; ASCII "XX"
608F66B2???? FF75 F0????????? push???? dword ptr [ebp-10]
608F66B5???? 8BCE???????????? mov????? ecx, esi
608F66B7???? E8 BACC0000????? call???? <jmp.&MFC42.#4224_CWnd::MessageBoxA>
608F66BC???? 53?????????????? push???? ebx
608F66BD???? FF15 8CA69060??? call???? dword ptr [<&MSVCRT.exit>]???????????????? ; msvcrt.exit
608F66C3???? FF75 EC????????? push???? dword ptr [ebp-14]
608F66C6???? 50?????????????? push???? eax
608F66C7???? FF15 54A19060??? call???? dword ptr [<&KERNEL32.GetProcAddress>]???? ; kernel32.GetProcAddress
608F66CD???? 3BC3???????????? cmp????? eax, ebx
608F66CF???? 75 18??????????? jnz????? short 608F66E9
608F66D1???? 6A 30??????????? push???? 30
608F66D3???? 68 14869160????? push???? 60918614?????????????????????????????????? ; ASCII "XX"
608F66D8???? FF75 F0????????? push???? dword ptr [ebp-10]
608F66DB???? 8BCE???????????? mov????? ecx, esi
608F66DD???? E8 94CC0000????? call???? <jmp.&MFC42.#4224_CWnd::MessageBoxA>
608F66E2???? 53?????????????? push???? ebx
608F66E3???? FF15 8CA69060??? call???? dword ptr [<&MSVCRT.exit>]???????????????? ; msvcrt.exit
608F66E9???? 8D4E 64????????? lea????? ecx, dword ptr [esi+64]
608F66EC???? 51?????????????? push???? ecx
608F66ED???? FFD0???????????? call???? eax
608F66EF???? 395E 64????????? cmp????? dword ptr [esi+64], ebx
608F66F2???? 75 18??????????? jnz????? short 608F670C
608F66F4???? 6A 30??????????? push???? 30
608F66F6???? 68 14869160????? push???? 60918614?????????????????????????????????? ; ASCII "XX"
608F66FB???? FF75 F0????????? push???? dword ptr [ebp-10]
608F66FE???? 8BCE???????????? mov????? ecx, esi
608F6700???? E8 71CC0000????? call???? <jmp.&MFC42.#4224_CWnd::MessageBoxA>
608F6705???? 53?????????????? push???? ebx
608F6706???? FF15 8CA69060??? call???? dword ptr [<&MSVCRT.exit>]???????????????? ; msvcrt.exit
608F670C???? 3BF3???????????? cmp????? esi, ebx
608F670E???? 75 08??????????? jnz????? short 608F6718

?

-----其加載[XXSafeEdit]的時候會在這里。這里其Load模塊之后,會取出一Get出一個函數,然后創建一個XXX,我們就不逆,有時間在逆。

逆完之后,完全可以模仿出一個他那個模塊的行為然后再XXX。或者XXX。

在[XXSafeEdit]?? Load之后,我們下SetWindowLong函數斷。


然后觀察棧的窗口數據,大概到這里
0012ECA4??? 00ED2E0C?? /CALL 到 SetWindowLongA 來自 TSSafeEd.00ED2E09
0012ECA8??? 00020994?? |hWnd = 00020994 ('Q',class='Edit',parent=0004099A)
0012ECAC??? FFFFFFFC?? |Index = GWL_WNDPROC
0012ECB0??? 00ED283F?? \NewValue = ED283F


好的...這個SetWindowLong,來自SafeEdit.窗口正是我們開始用XXX找到的密碼輸入窗口,GWL_WNDPROC代表NewValue是一個新的窗口消息處理過程。那么地址就是ED283F。


這時候,我們就去ED283F,下條件斷點,大概判斷是什么消息。當是WM_KEYDOWN的時候,我們就斷下來。


00ED283B???? 5E?????????????? pop????? esi
00ED283C???? C2 0400????????? retn???? 4
00ED283F >?? 55?????????????? push???? ebp?????????????????????????????? ; dword ptr[esp+8] == 100
00ED2840???? 8BEC???????????? mov????? ebp, esp
00ED2842???? 83EC 14????????? sub????? esp, 14
00ED2845???? 8B0D 4891ED00??? mov????? ecx, dword ptr [ED9148]
00ED284B???? 8365 FC 00?????? and????? dword ptr [ebp-4], 0
00ED284F???? 8065 F6 00?????? and????? byte ptr [ebp-A], 0
00ED2853???? 53?????????????? push???? ebx
00ED2854???? 33C0???????????? xor????? eax, eax
00ED2856???? 56?????????????? push???? esi
00ED2857???? 85C9???????????? test???? ecx, ecx
00ED2859???? 57?????????????? push???? edi
00ED285A???? C645 EC 75?????? mov????? byte ptr [ebp-14], 75
00ED285E???? C645 ED 73?????? mov????? byte ptr [ebp-13], 73
00ED2862???? C645 EE 65?????? mov????? byte ptr [ebp-12], 65


這里,我們就能在WM_KEYDOWN了。當WM_KEYDOWN的時候,我們就能取得用戶按的鍵了,具體是WM_KEYDOWN觸發時的LPARAM.里邊保存的是VK數據。

這里給出VK數據值。

出自VC6。頭文件。41是a怎么怎么的。

這時候我們發現,我們的WM_KEYDOWN是亂碼。也就是說,我們取的WM_KEYDOWN并非我們真實按下的鍵盤。

因為,我們按A的時候,每一次得到的都是不一樣的數據。

好的,我們來分析下它是雜個讓WM_KEYDWON..在消息下變化的。

在WIN32 R3下有一組鍵盤操作函數:

大概是下邊這些:

具體參考SDK,在MapVirtualKeyA下斷點。我們可以發現。
0012F968??? 00ED54D3?? /CALL 到 MapVirtualKeyA 來自 TSSafeEd.00ED54CD
0012F96C??? 00000032?? |Key = 32
0012F970??? 00000000?? \Action = 0
0012F974??? 00000113
0012F978??? 00000000
0012F97C??? 00000113


[XXSafeEdit]在不停的調用這個,這個函數,這時候,我們就對其下條件斷點進行中斷條件過濾。直到我們按下的時候,我們才讓它斷下來。

我們按下的時候,斷下來的棧大概是這樣:
0012F9DC??? 0108D16A?? /CALL 到 MapVirtualKeyA 來自 0108D167
0012F9E0??? 00000054?? |Key = 54
0012F9E4??? 00000000?? \Action = 0
0012F9E8??? 00000100
0012F9EC??? 00000000


好的,我們發現,它不是跳到[XXSafeEdit]模塊里了,而是0108d167這個位置了。于是,我們就到那里去。

我們在那個點下斷。

這里,大膽做個猜測,對于加密這個理論,一定是針對于明文的。那么在密文之前的某一時刻,一定是存在明文的。

那么,我們就繼續向這段代碼之前的代碼跟蹤。

-------對于這段代碼的用途,和XX SafeEdit的一些其它用途,我就不多說了,讓大家有多點的享受機會,具體自己跟跟。


在這里回朔跟蹤,我們就能找到這個點
0108D0D2???? 51?????????????? push???? ecx
0108D0D3???? 8B55 0C????????? mov????? edx, dword ptr [ebp+C]
0108D0D6???? 52?????????????? push???? edx
0108D0D7???? E8 7CFEFFFF????? call???? 0108CF58------------注意這里
0108D0DC???? 85C0???????????? test???? eax, eax-------------注意這里
0108D0DE???? 0F85 BF000000??? jnz????? 0108D1A3
0108D0E4???? 8B4D FC????????? mov????? ecx, dword ptr [ebp-4]---------這里下斷
0108D0E7???? 8B51 24????????? mov????? edx, dword ptr [ecx+24]
0108D0EA???? 33C0???????????? xor????? eax, eax
0108D0EC???? 8A02???????????? mov????? al, byte ptr [edx]
0108D0EE???? 8B4D F8????????? mov????? ecx, dword ptr [ebp-8]


好的,我們在那個test之后的,108d0e4處下點,短下后,我們看棧

0012F9E8??? 00000100
0012F9EC??? 00000000
0012F9F0??? 0117CD16?? ASCII "鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿 鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿鉿 鉿鉿?...
0012F9F4??? 00000041

恩,這里,出現41了。41=VK_A.是的,PACH這個點,我們就能記錄[某著名IM軟件]的密碼了。

這里,給出看見點的特征碼8b4dfc8b512433c08a02

接下來,我們寫個程序,pach之。

總結:

[某著名IM軟件],的保護,比起之前NP保護,各有長短。去看,還是能破的。

稍后,提交PACH代碼。和關于[某著名IM軟件]的一些其它特性。
?

?

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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麻豆| 亚洲欧美日韩在线一区| 欧美二区在线| 亚洲视频日本| 亚洲精品免费一区二区三区| 制服丝袜亚洲播放| 国产精品视频九色porn| 久久亚洲一区二区| 欧美大片在线看| 99国产精品99久久久久久| 亚洲免费高清视频| 久久午夜电影网| 国产一区二区在线观看免费播放| 久久久爽爽爽美女图片| 亚洲视频免费观看| 欧美黄色大片网站| 国产麻豆午夜三级精品| 欧美成人免费播放| 久久国产精品亚洲va麻豆| 久久中文欧美| 欧美大片免费| 亚洲第一二三四五区| 欧美v日韩v国产v| 亚洲第一精品夜夜躁人人爽 | 黄色成人在线网址| 91久久精品国产91性色| 日韩手机在线导航| 亚洲性视频网址| 亚洲看片网站| 久久精品一区二区三区不卡| 久久亚洲精品视频| 最新亚洲视频| 亚洲国产福利在线| 欧美一级淫片aaaaaaa视频| 久久久久久久久久久久久久一区 | 欧美激情欧美狂野欧美精品 | 99精品国产高清一区二区| 亚洲欧美日韩成人| 亚洲免费观看在线视频| 久久黄色小说| 亚洲精品美女在线观看播放| 亚洲免费影院| 欧美日韩人人澡狠狠躁视频| 国产精品久久久999| 亚洲日本电影| 久久高清一区| 91久久精品久久国产性色也91| 亚洲欧洲另类国产综合| 久久九九有精品国产23| 欧美午夜精彩| 亚洲人成在线影院| 亚洲综合欧美日韩| 99国产精品国产精品毛片| 久久精品久久99精品久久| 欧美日韩精品在线观看| 一区福利视频| 久久综合中文| 欧美一区午夜精品| 国产精品国产精品| 狠狠狠色丁香婷婷综合久久五月 | 亚洲福利小视频| 久久精品导航| 国产精品日韩欧美大师| 在线视频精品| 久久疯狂做爰流白浆xx| 亚洲午夜三级在线| 欧美日韩免费在线观看| 亚洲欧洲久久| 欧美在线资源| 久久久精品日韩欧美| 国产无一区二区| 欧美一区1区三区3区公司| 男人的天堂亚洲| 久久精品成人一区二区三区| 欧美系列亚洲系列| 99re8这里有精品热视频免费| 欧美激情中文字幕在线| 国产在线精品成人一区二区三区 | 99国产精品久久| 欧美激情第二页| 免费不卡在线观看| 一区二区三区在线免费观看| 久久精品视频在线免费观看| 亚洲免费影视| 亚洲韩国精品一区| 亚洲久色影视| 国产私拍一区| 亚洲成人直播| 国产精品mv在线观看| 久久精品理论片| 欧美成人一品| 久久精品国产精品亚洲综合| 狂野欧美性猛交xxxx巴西| 亚洲视频一区二区| 久久精品九九| 亚洲小说欧美另类社区| 久久精品二区三区| 欧美噜噜久久久xxx| 亚洲一区二区三区视频播放| 欧美一区二区性| 在线视频欧美日韩| 久久精品国产综合| 亚洲女ⅴideoshd黑人| 久久久精品动漫| 亚洲欧美国产77777| 久久美女性网| 亚洲欧美在线播放| 欧美精品在线观看一区二区| 欧美中文字幕| 国产精品久久99| 欧美激情国产日韩| 国产真实久久| 亚洲午夜精品久久| 亚洲人精品午夜在线观看| 久久成人18免费观看| 亚洲视频在线观看| 欧美伦理在线观看| 亚洲第一在线视频| 亚洲电影有码| 欧美一区日韩一区| 欧美一区二区三区四区在线观看| 欧美精品高清视频| 欧美激情一区二区三区全黄| 在线成人av网站| 欧美亚洲一级片| 欧美在线黄色| 国产精品久久久久久久久免费| 亚洲精选国产| 亚洲精选在线观看| 免播放器亚洲一区| 男女av一区三区二区色多| 国产亚洲一区二区精品| 亚洲欧美文学| 欧美影院视频| 国产日韩欧美综合| 午夜一区二区三区不卡视频| 欧美在线一区二区| 国产日本亚洲高清| 久久成人这里只有精品| 欧美在线一二三四区| 国产亚洲激情| 久久精品国产91精品亚洲| 久久久久久一区| 亚洲电影在线播放| 久久综合狠狠综合久久综青草| 欧美成人一区二区三区| 亚洲黄色尤物视频| 欧美日韩影院| 亚洲一区二区三区精品在线观看 | 亚洲国产精品悠悠久久琪琪| 亚洲精品国精品久久99热| 美日韩免费视频| 亚洲精品综合久久中文字幕| 中文av一区二区| 国产精品亚洲第一区在线暖暖韩国| 一本久久青青| 久久久久国产精品一区三寸| 狠狠色丁香婷婷综合久久片| 久久尤物视频| 一本色道久久综合精品竹菊 | 一区二区亚洲精品| 欧美激情一二区| 夜色激情一区二区| 久久久久国色av免费看影院 | 亚洲一区二区在线观看视频| 国产精品中文在线| 久久久精品日韩| 99视频有精品| 久久婷婷国产麻豆91天堂| 亚洲欧洲日韩综合二区| 欧美午夜精品久久久久久孕妇 | 久久蜜桃精品| 99精品99| 久久女同精品一区二区| 亚洲精品一区二区三区在线观看 | 嫩草影视亚洲| 亚洲色图在线视频| 激情91久久| 国产精品h在线观看| 久久精品久久99精品久久| 99riav1国产精品视频| 久久手机免费观看| 亚洲午夜在线观看| 亚洲国产日韩在线| 国产亚洲视频在线| 欧美无乱码久久久免费午夜一区| 久久爱www久久做| 一本色道婷婷久久欧美| 欧美激情一区二区三区全黄| 久久精品理论片| 亚洲自拍偷拍一区| 亚洲蜜桃精久久久久久久| 国内欧美视频一区二区| 国产精品美女久久久久久久|