PE可執(zhí)行文件的鑲?cè)胧匠绦虻木帉懛椒笆纠?鑲?cè)胧胶箝T程序&原程序) 由于Microsoft公司的Windows系統(tǒng)是當前大部分個人電腦所使用的操作系統(tǒng) 主要包括win95,98,me,nt4,2000,xp等,而這些系統(tǒng)所使用的可執(zhí)行文件的格式基 本上是PE結(jié)構(gòu)的。這里的可執(zhí)行文件的鑲?cè)胧匠绦蚓褪轻槍E結(jié)構(gòu)的可執(zhí)行文件。 這里先簡單說一下PE文件框架結(jié)構(gòu): DOS MZ header DOS stub//在不支持 PE文件格式的操作系統(tǒng)中它將簡單顯示一個錯誤提示 PE header//含了許多PE裝載器用到的重要信息 Section table//每個Section的信息 Section 1 Section 2 Section 3.... 由于SectionAlignment 塊對齊的原因每個Section之間都會產(chǎn)生很多空間, 鑲?cè)胧匠绦虻拇a可以放在Section之間的空位上,比較方便的方法是把代碼放在 最后一個Section的末尾,然后更改Misc.VirtualSize和SizeOfRawData這兩個位 于Section table的IMAGE_SECTION_HEADER結(jié)構(gòu)數(shù)組的成員。如果代碼十分的長, 有時候會造成鑲?cè)氲拇a無法被完全加載而產(chǎn)生錯誤,這時需要更改SizeOfImage 在IMAGE_NT_HEADERS 結(jié)構(gòu)中。 在不同的WINDOWS版本中api調(diào)用地址也有不同,為了解決這個問題可以更改引 入表讓加載器
標簽:
Microsoft
Windows
程序
200
上傳時間:
2015-01-13
上傳用戶:luopoguixiong