




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、前言:相信不少朋友辛辛苦苦找到的補丁數(shù)據(jù),被別人輕而易舉的竊取了.本文就來講講怎么防止別人竊取的方法一一列舉出來.)的補丁數(shù)據(jù).(這也是個矛與盾的話題,本文只是把常見先講API HOOK.API HOOK 技術(shù),對于新手來說可能非常的神秘,其實它并不神秘,用一句話來概述就是 搶在它前面,做些小動作. 或 修改 EIP 等.現(xiàn)在的家用電腦的U 普遍都是 x86. 在保護模式下,每個進程都是獨立的虛擬 4GB 內(nèi)存空間.它們彼此都互不干擾.或者修改某個進程的某個內(nèi)存空間.如果EPRO想就必須得到那個進程的或者讀寫的內(nèi)存地址按 CR4 里S , 然后通過 EPROS 找到 CR3 再把想要的 PAE
2、 位拆分. 然后再把 CR3 加上 拆分后的 PDE 加上拆分后的 PTE 加上 OFFSET.等等.才能實現(xiàn) R/W 一段內(nèi)存空間. 但是僅僅知道這些是的,限CR3 的,因此又不得不去了解段機制. 天吶 僅僅因為這些用戶層是沒一個讀寫內(nèi)存就這么麻煩? 是的,就是有這么麻煩.不過還好.MS 的人考慮的周到.他們把這些煩鎖的步驟,封裝成一個方法.供Anti Hook API(先斬后奏)調(diào)用.欲稱Windows API.上面說的煩鎖的過程,可以通過 2 個API 輕松實現(xiàn).Kernel32!RerosMemory/ 讀指定進程內(nèi)存Kernel32!WriteProsMemory / 寫指定進程內(nèi)存
3、知已知彼 百戰(zhàn)不殆!通過 Kernel32!WriteProsMemory 就能制作的補丁程序了.如果想知道別人寫什么數(shù)據(jù),可以通過 HOOK Kernel32!WriteProsMemory這樣的函數(shù). 來得到別人的補丁數(shù)據(jù).這樣的偷竊也很好反.我在這里就舉兩三個小例子.1) 設(shè)置分頁屬性:知道物理頁(PA), 一般有PTE第 0 位 P 位:為 1 時 存在 | 為 0 時 不存在.第 1 位 R/W 位: 為 1 時 可寫| 為 0 時 不可寫第 2 位 U/S 位: 為 1 時 用戶權(quán)限 | 為 0 時 系統(tǒng)權(quán)限PTE之區(qū)分.這些屬性在 PTE(頁表項) 對應(yīng)的 第 0 位 第 1 位
4、 第 2 位.P 位為 0 時,在 Windbg 下在 OD 下,會顯示 No memory on the specified address,會顯示 ? ? ? ?R/W 或 U/S 位為 0 時,會提示一個 0 xC0000005 寫,異常.P 位 R/W 位和 U/S 位,是沒限操作的.(本章主要講解應(yīng)用層的).但是 R/W 位, MS 的人,也給留了一個操作函數(shù).Kernel32!VirtualProtect/設(shè)置本進程指定低 2G 內(nèi)存分頁屬性(范圍 4KB 即 0 x1000)有了這個函數(shù),代碼:就可以間接的修改 R/W 位了./ 這里是 MSG 硬編碼,(本人當前機器是 XP S
5、p2 英文系統(tǒng),硬編碼的) BYTE szWriteBuffer =0 x6a, 0 x40,0 x68, 0 xe2, 0 x24,0 xa6, 0 x7c, 0 x68,0 xe2, 0 x 24, 0 xa6, 0 x7c,0 x6a, 0 x00, 0 xe8,0 x0c,0 xe0, 0 x31,0 xfb, 0 xc2, 0 x10,0 x00, 0 x90, 0 xb0,0 xeb, 0 x bd, 0 xef, 0 xb0,0 xcb, 0 xc1, 0 xbd,0 xb7,0 xb4, 0 xb2,0 xb9, 0 xb6, 0 xa1,0 x00; HMODULE hMod
6、ule =GetModuleHandle(Kernel32.dll);LPVOID lpWriteFun = GetProcAddress(hModule, WriteProsMemory);/ 英文計算器HWND hWnd =:FindWindow(NULL, Calculator); DWORD dw=0;GetWindowThrerosId(hWnd, &dw);HANDLE h=:OpenPros(PROS_ALL_ACS, FALSE,dw);WriteProsMemory(h,_ADDRESS, szWriteBuffer, sizeof( szWriteBuffer), NULL
7、);DWORD dwOldProtect = 0;這樣做,是在機早.執(zhí)行完補丁后,才修改屬性.這樣時機得早.否則,一切都是瞎忙活.只要時對方在 HOOK 這個函數(shù)的時候,就會產(chǎn)生一個 0 xC0000005我們的數(shù)據(jù)了.異常. 這樣,對方就不能偷竊2.檢測 HOOK 指令.已經(jīng)了, HOOK 就是在做某事前,先干些自己的事.也就是修改 EIP.面想想修改 EIP 的,無非就是 JCC push/ret call 這幾種. 但是當下系統(tǒng)之多,不得不考慮兼容性. 所以一般 HOOK,節(jié).為什么正好是前 5 個字節(jié).不是前 4 個字節(jié),6 個字節(jié)呢?都會 HOOK,函數(shù)的前 5 個字來看看 Writ
8、ePro代碼:sMemory 函數(shù)可以看的出來, JMP 指令 0 xe9 1 個字節(jié), 加上 (目標地址 - 當前地址 - 5) 結(jié)果 4 個字節(jié) ,加起來正好 5 個字節(jié).就可以用 JMP 0 xx 來代替前面的 5 個字節(jié). 這樣的,最方便,也最健壯.當然,也最容易被發(fā)現(xiàn)了 :(如此一來,只要檢測WriteProsMemory 第 1 個字節(jié),是不是為 0 xe9,就可以輕松檢測到是否 HOOK.當然了,此法在這里要排除那些不考慮程序兼容性亂 HOOK 的朋友.也要排除那些為了防止被發(fā)現(xiàn) HOOK,將所有不同系統(tǒng)的硬編碼都加到程序里面判斷的朋友.(如此一來,他可以不用再前 5 個字節(jié)修改
9、 EIP. 他可以爭對不 同系統(tǒng),在不同地方,用不同的方法修改EIP.不一定非要用 JCC, 也可以用 push/ret 之類的指令,修改 EIP. )7C80220F 8BFFmov edi,edi;/ WriteProsMemory7C80221155pushebp 7C8022128BECmov ebp,esp 7C802214|.51pushecx7C802215|.51pushecx 7C802216|.8B45 0Cmov eax,arg.2用 JMP 指令來修改到任意一個 EIP.7C80220F -E9 EBDD7F03jmp7F;/WriteProsMemory7C80221
10、4|.51pushecx7C802215|.51pushecx 7C802216|.8B45 0Cmov eax,arg.2VirtualProtect(lpWriteFun, 0 x1, PAGE_NOACS,&dwOldProtect);2) Shadow Function(函數(shù))相信不少朋友應(yīng)該看過火影忍者.那里面的鳴人練就了一個本領(lǐng),多重影 每當快要被敵人打到的時候,他就會使用多重影而已.,將本體,被敵人打到的,只是一個影在計算機中,也有這么一個多重影術(shù).Shadow Function. 這個并不是當下什么流行的技術(shù). 當下的一些流行殼,像比如 ZP SE 等知名殼.都有使用 Shad
11、ow Function 技術(shù).也可以使用這個技術(shù)反內(nèi)存監(jiān)視.讓監(jiān)視者們,監(jiān)視的影.而真身寫入的數(shù)據(jù).敵人渾然不知. 聽起來是不是很 cool ? 但是,要實現(xiàn) Shadow 必須要熟知 PE 結(jié)構(gòu).自己模擬 PE 裝載模塊. 像小菜不懂 PE 怎么辦?在這里,我在教大家一種簡單的方法.不知道大家有沒有注意,我面寫的每個函數(shù)前面都有加一個模塊名. 那個模塊名,就是函數(shù)的所在模塊. 一般都是在 SYSTEM32 目錄下.可以直接將他拷貝出來, 改一下名字.然后直接調(diào)用它,就可以了.代碼:/ 這里是 MSG 硬編碼,(本人當前機器是 XP Sp2 英文系統(tǒng),硬編碼的) BYTE szWriteBuf
12、fer =0 x6a, 0 x40,0 x68, 0 xe2, 0 x24,0 xa6, 0 x7c, 0 x68,0 xe2, 0 x 24, 0 xa6, 0 x7c,0 x6a, 0 x00, 0 xe8,0 x0c,0 xe0, 0 x31,0 xfb, 0 xc2, 0 x10,0 x00, 0 x90, 0 xb0,0 xeb, 0 x bd, 0 xef, 0 xb0,0 xcb, 0 xc1, 0 xbd,0 xb7,0 xb4, 0 xb2,0 xb9, 0 xb6, 0 xa1,0 x00;void CPage1:OnAntiMonitor()HMODULE hModule
13、 =LoadLibrary(WriteMem.dll);DWORD WriteFun= (DWORD)GetProcAddress(hModule, WritePros Memory);BOOL(WINAPI *lpWriteFun)(HANDLE , LPVOID, LPCVOID, SIZ E_T ,SIZE_T *);lpWriteFun =( stdcall *)(void *,void *,constvoid*,unsigned long,unsigned long*)WriteFun;/英文計算器HWNDhWnd =:FindWindow(NULL, Calculator);DWORD dw=0;這樣子,別人再 HOOKKernel32!WriteProsMemory ,就是 HOOK的多重影而了.:)本體函數(shù),是可以正常的執(zhí)行,不受任何影響
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 防震知識安全教育主題班會
- 2024年秋新人教版八年級上冊道德與法治教學課件 13.1 在勞動中創(chuàng)造人生價值
- 我為秋游出主意(教學設(shè)計)-2023-2024學年四年級上冊綜合實踐活動蒙滬版
- 骨折病人術(shù)后的護理查房
- 農(nóng)村安裝電梯合同范本
- 船舶結(jié)構(gòu)設(shè)計重點基礎(chǔ)知識點
- 視頻抖音廣告合同范例
- 旅游團包車協(xié)議二零二五年
- 墳地補償協(xié)議書
- 場地及房屋出租協(xié)議書二零二五年
- 國家開放大學《畜禽生產(chǎn)概論》形考作業(yè)1-4+實習報告1-2參考答案
- 急性創(chuàng)傷的現(xiàn)場急救和評估
- 職高數(shù)學高考試題及答案
- 民兵知識小常識
- 湖北省黃石市(2024年-2025年小學四年級語文)部編版期中考試(下學期)試卷及答案
- 2024年同等學力申碩英語考試真題及答案
- 防洪應(yīng)急處理措施
- 賣房貸款合同協(xié)議書
- 《煤礦電氣安全》培訓(xùn)課件2024
- 人教版小學五年級數(shù)學下冊第3課時《真分數(shù)和假分數(shù)》教學設(shè)計
- 概率統(tǒng)計課件:二維隨機變量的條件分布
評論
0/150
提交評論