星綻紫輝(rawdata)的Blog
快樂(lè)地學(xué)習(xí),快樂(lè)地工作!
C++博客
::
首頁(yè)
::
聯(lián)系
::
聚合
::
管理
16 Posts :: 0 Stories :: 37 Comments :: 0 Trackbacks
常用鏈接
我的隨筆
我的評(píng)論
我參與的隨筆
留言簿
(5)
給我留言
查看公開留言
查看私人留言
我參與的團(tuán)隊(duì)
隨筆檔案
(16)
2012年9月 (1)
2012年2月 (1)
2011年11月 (3)
2009年3月 (2)
2009年2月 (2)
2009年1月 (4)
2008年12月 (3)
精品文章
Windows XP系統(tǒng)中如何屏蔽 Ctrl+Alt+Del、Alt+Tab以及Ctrl+Esc鍵序列
喜好鏈接
CCTV
谷歌搜索
我的藍(lán)月博客
中鳴機(jī)器人
搜索
最新評(píng)論
1.?re: 如何將.spl剝離成.emf文件格式
在嗎?樓主現(xiàn)在的新聯(lián)系方式有嗎?
--dabao
2.?re: 淺談靜態(tài)dll注入PE[未登錄](méi)
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--none
3.?re: 如何將.spl剝離成.emf文件格式
我的電腦生成的SPL文件是raw格式的? 修改打印處理器為winprint emf格式也不好使。怎么才能導(dǎo)出emf的SPL格式呢?
--申麗玲
4.?re: 如何將.spl剝離成.emf文件格式
我在虛擬機(jī)上生成的SPL可以生成EMF文件, 但是安裝到我的電腦以后, 用國(guó)外的SPL Viewer 也說(shuō)是invalid SPL File 是為什么呢?
--申麗玲
5.?re: 如何將.spl剝離成.emf文件格式 [未登錄](méi)
想要這個(gè)程式,怎么聯(lián)系你,我的QQ號(hào)是1079436838
--dd
閱讀排行榜
1.?如何將.spl剝離成.emf文件格式 (8244)
2.?如何卸載 IP GUARD 2.82.0824 客戶端(7397)
3.?給PE文件增加多個(gè)區(qū)段(sections)(3447)
4.?將RVA(相對(duì)虛擬地址)地址轉(zhuǎn)化成Offset VA(偏移地址)(2469)
5.?淺談靜態(tài)dll注入PE(2040)
評(píng)論排行榜
1.?給PE文件增加多個(gè)區(qū)段(sections)(13)
2.?如何將.spl剝離成.emf文件格式 (10)
3.?到底該不該降低本碩畢業(yè)生的工資?(6)
4.?如何卸載 IP GUARD 2.82.0824 客戶端(5)
5.?淺談靜態(tài)dll注入PE(2)
將RVA(相對(duì)虛擬地址)地址轉(zhuǎn)化成Offset VA(偏移地址)
原創(chuàng):星綻紫輝 2009-1-4 轉(zhuǎn)載請(qǐng)注明出處:
http://m.shnenglu.com/rawdata
RVA(reverse virtual address) 和 VA 地址的概念我就不說(shuō)了,網(wǎng)上一大堆,就看你有沒(méi)有心去找了。在解析PE文件格式時(shí),需要將RVA地址轉(zhuǎn)化成VA地址,才能對(duì)如:IMAGE_IMPORT_DESCRIPTOR類的結(jié)構(gòu)進(jìn)行正確訪問(wèn)。這樣,exe/dll等導(dǎo)出的函數(shù)和導(dǎo)入的函數(shù)等重要信息你就可以獲得了。
我寫的這段函數(shù)是參考羅云彬的匯編主頁(yè)上的PE文件格式的匯編代碼,是由GuFeng翻譯
Iczelion
的,現(xiàn)在我寫成C/C++的形式,以供參考。
//
RVA To Offset
DWORD CPEReaderDlg::RVAToOffset(DWORD pMapping,DWORD dwRVA)
{
//
Defines
DWORD pNTDst
=
0
;
IMAGE_DOS_HEADER
*
pidh
=
(IMAGE_DOS_HEADER
*
)pMapping;
pNTDst
=
pMapping
+
pidh
->
e_lfanew;
DWORD pSeDst
=
pNTDst;
IMAGE_NT_HEADERS
*
pinh
=
(IMAGE_NT_HEADERS
*
)pNTDst;
IMAGE_SECTION_HEADER
*
pish
=
NULL;
//
First Session
pSeDst
=
pNTDst
+
sizeof
(IMAGE_NT_HEADERS);
pish
=
(IMAGE_SECTION_HEADER
*
)pSeDst;
//
Session Count
UINT nCount
=
pinh
->
FileHeader.NumberOfSections;
DWORD dwPosTmp
=
0
;
//
Scan
for
(UINT i
=
0
;i
<
nCount;i
++
)
{
if
(dwRVA
>=
pish
->
VirtualAddress)
{
dwPosTmp
=
pish
->
VirtualAddress;
dwPosTmp
+=
pish
->
SizeOfRawData;
}
if
(dwRVA
<
dwPosTmp)
{
dwRVA
=
dwRVA
-
pish
->
VirtualAddress;
return
dwRVA
+
pish
->
PointerToRawData;
}
pish
=
pish
+
1
;
//
sizeof(IMAGE_SECTION_HEADER);
}
return
-
1
;
}
其中的pMapping 是目標(biāo)exe/dll文件的內(nèi)存映像指針,由(MapViewOfFile返回),dwRVA為相對(duì)地址,返回的是該P(yáng)E程序在內(nèi)存的對(duì)應(yīng)dwRVA的偏移地址,得到VA就很簡(jiǎn)單了:VA = pMapping + 返回值. (返回-1標(biāo)識(shí)無(wú)效.)
如果代碼有什么謬誤或者待完善的地方,請(qǐng)留言或EmailToMe:xiaolu69soft@yahoo.com.cn.
2009-1-4 星綻紫輝(rawdata)
posted on 2009-01-04 12:41
星綻紫輝
閱讀(2469)
評(píng)論(1)
編輯
收藏
引用
Feedback
#
re: 將RVA(相對(duì)虛擬地址)地址轉(zhuǎn)化成Offset VA(偏移地址)
2012-03-03 16:18
憑凡 fire_the_hole@163.com
NICE,我直接復(fù)制走了~~~謝謝哈
回復(fù)
更多評(píng)論
刷新評(píng)論列表
只有注冊(cè)用戶
登錄
后才能發(fā)表評(píng)論。
【推薦】100%開源!大型工業(yè)跨平臺(tái)軟件C++源碼提供,建模,組態(tài)!
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問(wèn)
Chat2DB
管理
Copyright @ 星綻紫輝
Powered by:
.Text
and
ASP.NET
Theme by:
.NET Monster
久久久无码精品亚洲日韩蜜臀浪潮
|
国产精品久久久久久搜索
|
久久婷婷五月综合色高清
|
国产精品99久久久久久www
|
久久亚洲sm情趣捆绑调教
|
精品九九久久国内精品
|
久久这里都是精品
|
91久久精品国产成人久久
|
免费久久人人爽人人爽av
|
国产精品无码久久综合网
|
久久精品亚洲日本波多野结衣
|
久久人人超碰精品CAOPOREN
|
好久久免费视频高清
|
久久青青草原精品国产
|
久久精品国产亚洲AV忘忧草18
|
久久www免费人成精品香蕉
|
天天爽天天爽天天片a久久网
|
亚洲国产欧洲综合997久久
|
亚洲精品97久久中文字幕无码
|
青青热久久综合网伊人
|
久久精品国产精品青草app
|
国产午夜精品久久久久免费视
|
亚洲中文久久精品无码
|
久久婷婷人人澡人人爽人人爱
|
亚洲人成网站999久久久综合
|
久久综合给久久狠狠97色
|
亚洲av成人无码久久精品
|
国产午夜福利精品久久2021
|
久久99精品国产麻豆
|
.精品久久久麻豆国产精品
|
久久久久AV综合网成人
|
国产精品美女久久久久网
|
情人伊人久久综合亚洲
|
久久国产三级无码一区二区
|
精品蜜臀久久久久99网站
|
青草国产精品久久久久久
|
久久久久久国产精品免费无码
|
国产99久久久国产精免费
|
99久久婷婷国产综合精品草原
|
91精品婷婷国产综合久久
|
污污内射久久一区二区欧美日韩
|