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

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>
            久久一二三四| 国产精品久久久久久久一区探花| 老司机一区二区三区| 国产九九视频一区二区三区| 日韩亚洲欧美中文三级| 美国十次成人| 欧美在线视频观看| 国产精品一区二区你懂得| 国产精品99久久久久久白浆小说 | 亚洲视频你懂的| 欧美风情在线观看| 久久综合999| 韩日视频一区| 快播亚洲色图| 久久欧美肥婆一二区| 国产一区二区三区四区hd| 欧美一区网站| 久久er99精品| 亚洲电影下载| 亚洲丁香婷深爱综合| 老**午夜毛片一区二区三区| 亚洲第一搞黄网站| 亚洲国产日韩综合一区| 欧美久久99| 亚洲免费在线观看视频| 亚洲欧美精品suv| 国内成人在线| 欧美高清在线视频观看不卡| 欧美肥婆bbw| 亚洲欧美日韩国产精品| 欧美有码视频| 亚洲精品乱码| 亚洲一级一区| 在线欧美日韩精品| 99国产精品自拍| 国产日韩欧美中文| 亚洲国产视频直播| 欧美高潮视频| 宅男在线国产精品| 亚洲先锋成人| 狠狠入ady亚洲精品经典电影| 欧美va天堂| 欧美天堂亚洲电影院在线观看| 欧美一级在线播放| 美女网站在线免费欧美精品| 在线中文字幕日韩| 欧美伊人久久大香线蕉综合69| 亚洲电影激情视频网站| 亚洲乱码国产乱码精品精可以看| 国产精品一区二区a| 免费不卡视频| 欧美视频一区二区三区四区 | 亚洲欧美一级二级三级| 在线不卡a资源高清| 日韩视频一区二区三区在线播放| 国产精品美女一区二区在线观看| 另类春色校园亚洲| 国产精品一区二区三区成人| 亚洲风情亚aⅴ在线发布| 国产欧美日韩精品a在线观看| 欧美v日韩v国产v| 国产毛片精品视频| 亚洲精品午夜| 亚洲高清久久| 亚洲欧美综合一区| 亚洲性xxxx| 欧美激情女人20p| 久久综合精品一区| 国产精品欧美日韩| 亚洲欧洲精品一区二区三区波多野1战4| 国产精品一区二区久久| 亚洲精品欧洲| 亚洲国产精品va| 午夜精品一区二区三区电影天堂 | 免费不卡在线视频| 国产精品一区二区在线| 99亚洲一区二区| 亚洲乱码国产乱码精品精可以看 | 久久久青草青青国产亚洲免观| 欧美日韩专区| 亚洲免费av观看| 日韩亚洲欧美一区二区三区| 久久夜色精品国产| 久久激情视频免费观看| 国产精品试看| 亚洲视频网站在线观看| 一区二区三区高清在线| 欧美国产日产韩国视频| 亚洲第一在线视频| 亚洲片区在线| 免费av成人在线| 欧美国产国产综合| 亚洲国产精品欧美一二99| 久久精品在线视频| 久久久久久久久久久成人| 欧美视频一二三区| 免费看黄裸体一级大秀欧美| 国产精品乱码| 99精品视频免费观看| 一区二区精品| 欧美区在线播放| 亚洲美女毛片| 亚洲网站在线观看| 国产精品狠色婷| 亚洲欧美中日韩| 久久一区二区三区av| 亚洲成在线观看| 欧美岛国激情| 一区二区三区.www| 欧美有码视频| 亚洲第一毛片| 欧美日韩1区2区3区| 国产精品99久久久久久人| 午夜亚洲视频| 狠狠色综合网| 欧美精品成人在线| 一区二区三区日韩精品| 欧美中文字幕精品| 亚洲成人资源| 欧美日韩在线视频一区| 午夜久久久久久| 欧美高清在线| 亚洲欧美日韩中文播放| 黄色精品一区二区| 欧美日韩黄视频| 香蕉成人伊视频在线观看 | 久久综合久久88| 99re66热这里只有精品4| 国产精品嫩草99a| 久久亚洲综合色一区二区三区| 亚洲精品亚洲人成人网| 久久不射电影网| 亚洲乱码精品一二三四区日韩在线 | 亚洲视频www| 老色鬼精品视频在线观看播放| 亚洲精品在线观看视频| 国产精品亚洲一区| 久久网站热最新地址| 一区二区三区国产在线观看| 久久天天狠狠| 午夜精品久久久久久| 91久久久久久| 国内精品久久久久久影视8| 欧美精品一区二区三区蜜臀| 欧美一区成人| 一本一本久久a久久精品综合麻豆| 久久这里有精品视频| 亚洲一区二区三区精品在线观看| 狠狠色狠狠色综合系列| 国产精品亚洲综合色区韩国| 男人插女人欧美| 久久高清福利视频| 亚洲午夜久久久久久久久电影院| 欧美国产先锋| 老司机午夜免费精品视频| 欧美亚洲视频| 亚洲一区亚洲| 一区二区三区久久网| 亚洲欧洲日韩在线| 在线免费观看视频一区| 国产自产女人91一区在线观看| 国产精品国产a| 美女999久久久精品视频| 亚洲精品综合精品自拍| 国模精品一区二区三区| 国产精品老牛| 欧美午夜视频| 欧美私人网站| 欧美性猛交xxxx乱大交蜜桃| 欧美福利网址| 欧美精品v日韩精品v韩国精品v| 老司机免费视频一区二区| 久久久久久免费| 久久国内精品视频| 久久精品电影| 久久中文欧美| 欧美99在线视频观看| 美女视频黄a大片欧美| 久久久91精品国产一区二区三区| 欧美一区影院| 久久精品视频在线免费观看| 久久精品国产2020观看福利| 久久riav二区三区| 久久亚洲综合色| 欧美成人黑人xx视频免费观看| 欧美不卡高清| 欧美色播在线播放| 国产欧美精品一区二区三区介绍| 国产美女在线精品免费观看| 国产日韩精品视频一区| 国产主播一区二区三区四区| 激情综合色丁香一区二区| 亚洲国产精品专区久久| 日韩亚洲国产欧美| 小处雏高清一区二区三区| 久久久久久97三级| 亚洲国产91| 亚洲视频一区在线| 欧美在线一二三| 欧美国产欧美亚洲国产日韩mv天天看完整 |