日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

静态分析:IDA逆向代码段说明 text、idata、rdata、data

發布時間:2023/12/18 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 静态分析:IDA逆向代码段说明 text、idata、rdata、data 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

通常IDA對一個PE文件逆向出來的代碼中,

存在四個最基本的段text、idata、rdata、data,

四個段為PE文件的結構中對應的段。

一、text段:

該段位程序代碼段,在該段一開始就可以看到:

.text:00401000 ; Segment type: Pure code
.text:00401000 ; Segment permissions: Read/Execute

這里的段類型跟權限說明很清楚: 分別為代碼段和可讀可執行。需要注意的是,borland這里叫做code,而不是text?

二、idata、rdata、data段

從命名上可以看出,三個段全為存放特殊數據的段,但IDA根據PE文件的格式將數據段中不同類型的數據區分開來。

VC開發工具將INC,LIB,RES放在數據段,DELPHI也類似,同時由于Delphi的窗體文件*.dfm在源代碼中使用編譯指令{$R *dfm}作為res資源放在數據段中,因此像delphi的反匯編工具dede就根據這些窗體資源數據,分析出相當清晰的源代碼與窗體事件的對應地址,當然實現代碼還是匯編代碼。

1) idata段:

該段在一開始一般有類似下面的說明:

.idata:0049B000 ; Section 2. (virtual address 0009B000)
.idata:0049B000 ; Virtual size : 0001717E ( 94590.)
.idata:0049B000 ; Section size in file : 00018000 ( 98304.)
.idata:0049B000 ; Offset to raw data for section: 0009B000
.idata:0049B000 ; Flags 40000040: Data Readable
.idata:0049B000 ; Alignment : default
.idata:0049B000 ;
.idata:0049B000 ; Imports from ADVAPI32.dll
.idata:0049B000 ;
.idata:0049B000 ; ===========================================================================
.idata:0049B000
.idata:0049B000 ; Segment type: Externs
.idata:0049B000 ; _idata

明顯是一個Imports函數的代碼段,這里集中所有外部函數地址,代碼中會先跳到該地址后再執行,PE文件加載器在開始會獲取真實的函數地址來修補idata段中的函數地址。

與之對應的exports是edata,

表面上看PE文件對該段的定位是特殊數據段。

2)rdata段

名字上看就是資源數據段,程序用到什么資源數據都在這里,資源包括你自己封包的,也包括開發工具自動封包的。

3)data段

這個段存放程序的全局數據、全局常量等。

?

【轉】https://www.cnblogs.com/lsgxeva/p/8947829.html

轉載于:https://www.cnblogs.com/hshy/p/11163018.html

總結

以上是生活随笔為你收集整理的静态分析:IDA逆向代码段说明 text、idata、rdata、data的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。