上一節課中我寫好了_image_optional_header 頭的前10個成員,今天我接著來完善這個結構中最重要的兩個成員,在學習第11個第12個成員之前我們先來認識一下pe磁碟檔案與記憶體映像結構圖。
做乙個rvatoraw的轉換練習(根據上節課講的轉換公式)
rva: (relative virtual address 簡稱rva),rva只是記憶體中的乙個簡單的相對於pe檔案裝入位址的偏移位置,或稱為偏移量。公式: 目標位址 401000h ---裝入位址(imagebase) 400000h=rva 1000h
va:在pe用語裡,實際的記憶體位址被稱作虛擬位址(virtual address )簡稱va。即od裡面能看到的位址 公式: 虛擬位址 va =裝入位址(imagebase) + 相對虛擬位址(rva)
檔案偏移-檔案中節區的起始位置=記憶體偏移-記憶體中節區的起始位置
檔案偏移=記憶體偏移-記憶體中節區的起始位置+檔案中節區的起始位置
pelord也提供了偏移轉換的專用計算器(非常強大)
進入正題:
上一節課中我們講解了_image_optional_header 頭的前10個成員,有 了剛才的基礎後,我們來看一下接下來的第11個第12個成員。
成員11,4個位元組,表示段載入後在記憶體中的對齊方式。記憶體中節對齊的粒度。例如,如果該值是4096 (1000h),那麼每節的起始位址必須是4096的倍數。若第一節從401000h開始且大小是10個位元組,則下一節必定從402000h開始,
即使401000h和402000h之間還有很多空間沒被使用。因為windows管理記憶體採用分頁管理的方式,而每頁的大小為4k,也就是1000h,所以我們這個值為」00100000」。
成員12,4個位元組,表示段在檔案中的對齊方式。檔案中節對齊的粒度。例如,如果該值是(200h),,那麼每節的起始位址必須是512的倍數。若第一節從檔案偏移量200h開始且大小是10個位元組,則下一節必定位於偏移量400h: 即使偏移
量512和1024之間還有很多空間沒被使用。此值最好設為200h,所以該成員的值為「00020000」。
在檔案中把這兩個成員完善
Oracle課程 第三課
檢視 create view 檢視名 asselect from emp insert語句 insert into dept vaes 10,eweq bj update語句 update emp set sal sal 2 delete語句 delete from dept where deptn...
python第三課答案 python第三課
字串操作 s alexwusir s1 s.capitalize 首字母大寫 print s1 全大寫,全小寫 s2 s.upper s21 s.lower print s2,s21 大小寫翻轉 s3 s.swapcase print s3 每個隔開 特殊字元或數字 的單詞首字母大寫 s alex ...
python第三課答案 python第三課筆記
以下哪個變數的命名不正確?為什麼?a mm 520 b mm520 c 520 mm d 520 mm 答 c不正確,不能數字開頭 在不上機的情況下,以下 你能猜到螢幕會列印什麼內容嗎?myteacher 小甲魚 yourteacher myteacher yourteacher 黑夜 print ...