ESP定律

當程序載入OD之后?

004AC460?>?$??60????????????pushad;程序停在這里?F8?指向pushad指令

pushad是把寄存器中數據入棧?棧中數據如下:

0012FFA4???7C930208???|EDI? <--?ESP指向棧頂

0012FFA8???FFFFFFFF |ESI

0012FFAC???0012FFF0 |EBP

0012FFB0???0012FFC4 |ESP

0012FFB4???7FFDE000 |EBX

0012FFB8???7C92E4F4???|EDX??

0012FFBC???0012FFB0 |ECX

0012FFC0???00000000 |EAX

此時ESP指向棧頂?地址為0012FFA4?,脫殼從這里開始-.-~

來到數據段即內存地址0012FFA4?在這下斷點?-?硬件訪問?-?word

然后F9??--?這里就能找到OEP

那么我的理解就是?匯編指令之前前先把各個寄存器保存起來,然后執行殼的操作比如解壓,

等殼的工作完成之后需要恢復各個寄存器的值?,我們在棧中已經設置了一個斷點,所以當程序訪問棧中數據(popad,我們在0012FFA4?下斷點是EDI的值,當程序恢復EDI寄存器)時就被我們給斷了下來?,當然并不是斷在pop?EDI指令上,而是斷在popad的下一條指令,因為popad是一步到位恢復寄存器的。

然后在尋找OEP,一般是jmp大跳?然后就看到了期待已久的55機器碼了?dump-.-~

可以理解為殼的執行是一個子程序?,子程序運行前都要保持寄存器,完事之后恢復寄存器,返回主程序

我們在恢復寄存器的地方下斷點,然后???...

以上就是我對ESP定律的理解,雖然還未成功脫的一殼,但是各大網站論壇都在談論ESP之威武,據說可脫所以壓縮殼,所以大概找了些文章看看,ESP定律就是利用堆棧平衡找到程序結束繼而找到OEP

以上為個人理解,為了不誤人子弟,有錯誤大神請指出?

?

popad:相當于

push EAX

push ECX

push EDX

push EBX

push ESP

push EBP

push ESI

push EDI

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/375115.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/375115.shtml
英文地址,請注明出處:http://en.pswp.cn/news/375115.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

socket通信簡介

前言 我們深諳信息交流的價值&#xff0c;那網絡中進程之間如何通信&#xff0c;如我們每天打開瀏覽器瀏覽網頁時&#xff0c;瀏覽器的進程怎么與web服務器通信的&#xff1f;當你用QQ聊天時&#xff0c;QQ進程怎么與服務器或你好友所在的QQ進程通信&#xff1f;這些都得靠sock…

SQL Server自動化運維系列——關于郵件通知那點事(.Net開發人員的福利)

需求描述 在我們的生產環境中&#xff0c;大部分情況下需要有自己的運維體制&#xff0c;包括自己健康狀態的檢測等。如果發生異常&#xff0c;需要提前預警的&#xff0c;通知形式一般為發郵件告知。 郵件作為一種非常便利的預警實現方式&#xff0c;在及時性和易用性方面也有…

So easy Webservice 1.Socket建設web服務

socket 是用來進行網絡通訊的&#xff0c;簡單來說&#xff0c;遠程機器和本地機器各建一個socket&#xff0c;然后通過該socket進行連接通訊 socket簡單模型圖&#xff1a; socket的原理圖&#xff1a; 代碼實現&#xff1a; 1.創建socket服務端&#xff1a;用于處理客戶端發送…

去除字符串中重復字符

題目 設計算法并寫出代碼移除字符串中重復的字符&#xff0c;不能使用額外的緩存空間。注意&#xff1a; 可以使用額外的一個或兩個變量&#xff0c;但不允許額外再開一個數組拷貝。 進一步地&#xff0c; 為你的程序寫測試用例。 解答 這道題目其實是要你就地(in place)將字符…

MyEclipse 6.5安裝maven插件

MyEclipse 6.5安裝maven插件 原文 http://www.blogjava.net/caojianhua/archive/2013/11/05/406013.html 一、卸載原有maven插件 MyEclipse 6.5集成了Maven插件&#xff0c;不過有不少bug&#xff0c;用習慣了m2eclipse&#xff0c;不想在這上面浪費時間。要安裝m2eclipse&…

兩列右側自適應布局--(來自網易)

<div class"g-bd1 f-cb"><div class"g-sd1"><p>左側定寬</p></div><div class"g-mn1"><div class"g-mn1c"><p>右側自適應</p></div></div> </div> /* 兩列右…

Gradle 筆記

網上有一篇文章說的很明白&#xff0c;圖文來教你在eclipse下用gradle 來打包Androidhttp://blog.csdn.net/x605940745/article/details/41242687 步驟為&#xff1a; 1. Elipse里面導出&#xff0c;Generate Gradle build files 2. 找到生成的gradle文件夾&#xff0c;里面有…

sql server 自定義函數的使用

sql server 自定義函數的使用自定義函數 用戶定義自定義函數像內置函數一樣返回標量值&#xff0c;也可以將結果集用表格變量返回 用戶自定義函數的類型: 標量函數:返回一個標量值 表格值函數{內聯表格值函數、多表格值函數}:返回行集&#xff08;即返回多個值&#xff09; 1、…

怎么設置才能讓外網ip可以訪問mysql數據庫[轉]

轉自&#xff1a; http://www.hongyanliren.com/89.html 使用mysql中&#xff0c;很多人都會遇到這樣的問題&#xff1a;在vps服務器或者云服務器上安裝了mysql后&#xff0c;使用其他工具在外網ip之下根本就連接不上mysql&#xff0c;到底是什么原因導致外網ip無法訪問mysql數…

Java 自帶MD5 校驗文件

http://www.iteye.com/topic/1127319 前天第一次發表博客到論壇&#xff0c;關于Java文件監控一文&#xff0c;帖子地址在&#xff1a;http://www.iteye.com/topic/1127281 評論的朋友很多&#xff0c;下載代碼的朋友很不少&#xff0c;感謝在論壇上看我帖子的朋友&#xff0c;…

決策樹資料匯總

2012年8月26日決策樹&#xff08;Decision tree&#xff09;決策樹是以實例為基礎的歸納學習算法。它從一組無次序、無規則的元組中推理出決策樹表示形式的分類規則。它采用自頂向下的遞歸方式&#xff0c;在決策樹的內部結點進行屬性值的比較&#xff0c;并根據不同的屬性值從…

metasploitable2滲透測試

一、系統弱密碼登錄 1、在kali上執行命令行telnet 192.168.26.129 2、Login和password都輸入msfadmin 3、登錄成功&#xff0c;進入系統 4、測試如下&#xff1a; 二、MySQL弱密碼登錄&#xff1a; 1、在kali上執行mysql –h 192.168.26.129 –u root 2、登錄成功&#…

Portainer.io:讓容器管理變得更加直觀

在現代軟件開發和部署中&#xff0c;容器化技術已經變得越來越流行。Docker 是其中一種領先的容器化平臺&#xff0c;而 Portainer.io 則是一個優秀的管理工具&#xff0c;使得 Docker 的使用變得更加簡單和可視化。本文將介紹 Portainer.io 的基本功能和如何在 Docker 上安裝和…

倉庫信息查詢練習

use cangku create table cangkubiao ( cno varchar(50) primary key not null, city varchar(50)not null, mianji int not null ) insert into cangkubiao values(wh1,北京,370) insert into cangkubiao values(wh2,上海,500) insert into cangkubiao values(wh3,廣州,200) …

python開發的一些tips

1. Notepad編寫python腳本 1&#xff09;新建文件&#xff0c;編寫代碼 2&#xff09;點擊菜單欄&#xff0c;“語言”—>“P”—>“Python”&#xff0c;設置腳本為Python語言的高亮&#xff08;這樣保存文本的時候&#xff0c;Notepad也可以自動識別文件類型為.py&…

metasploitable3滲透測試

1、攻擊windows服務器漏洞 用nmap對網段進行掃描nmap -sP 192.168.123 在進行IP掃描 發現Windows服務器漏洞 步驟: msfconsole---進入滲透模塊

以前寫的一個下載小說的工具

因為當時發現只有一個站點有。但是時時聯網的要求太讓人不爽。就寫了一個給全下下來了。 用到了: 1. 正則表達式&#xff0c;分析章節和內容&#xff1b; 2. 線程池下載&#xff0c;并且對下載中的相關超時做了一些處理&#xff1b; 3. 文件生成與寫入&#xff0c;注意格式問題…

數學之路-python計算實戰(14)-機器視覺-圖像增強(直方圖均衡化)

我們來看一個灰度圖像&#xff0c;讓表示灰度出現的次數&#xff0c;這樣圖像中灰度為 的像素的出現概率是是圖像中全部的灰度數&#xff0c; 是圖像中全部的像素數, 實際上是圖像的直方圖&#xff0c;歸一化到 。把 作為相應于 的累計概率函數, 定義為&#xff1a;是圖像的…

Windows2008的安裝

點擊下一步 點擊安裝 選擇第三個&#xff0c;點擊下一步 點擊下一步 點自定義安裝 我在這里分兩個盤并格式化 接下來就是等待安裝完成即可

Ubuntu下在Apache中運行Keystone

最近一次從Github上更新Keystone的代碼后,發現原來bin/keystone-all和bin/keystone-manage都不見了,取而代之的是keystone/cmd/目錄下的all.py和manage.py兩個python腳本.雖然在測試的virtualenv環境下仍然可以執行原來的命令,但是想試著在Apache中運行Keystone,畢竟這已經是社…