国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区

掃一掃
關注微信公眾號

一步一步教你加密解密技術——壓縮與脫殼(4)(1)
2006-10-30   

第五節 脫殼高級篇

1、認識Import表

著者: [yAtEs] [Jamesluton@hotmail.com]
譯者:hying[CCG]
標題:PE輸入表說明 
有很多介紹PE文件的文章,但是我打算寫一篇關于輸入表的文章,因為它對于破解很有用。
  我想解釋它的最好的方法是舉一個例子,你可以跟著我逐步深入,一步一步的思考,最后你將完全明白,我選擇了一個我剛下載下來的小程序,它是用TASM編譯的,有一個比較小的輸入表,所以我想它應該是個不錯的范例。
  好了,讓我們開始吧。首先我們得找到輸入表,它的地址放在PE文件頭偏移80處,所以我們用16進制編輯器打開我們的EXE文件,我們先得找到PE文件頭的起始點,這很簡單,因為它總是以PE,0,0開始,我們可以在偏移100處找到它。在一般的WIN32程序中文件頭偏移被放在文件0X3C處,在那我們通常可看到00 01 00 00,由于數據存儲時是低位在前,高位在后的,所以翻轉過來實際就是00000100,就象前面我們說的。接下來我們就可以在PE文件中找到我們的輸入表,100+80=180在偏移180處我們看到0030 0000,翻轉一下,它其實應該是00003000,這說明輸入表在內存3000處,我們必須把它轉換成文件偏移。
  一般來說,輸入表總是在某個段的起始處,我們可以用PE編輯器來查看虛擬偏移,尋找3000并由此發現原始偏移。很簡單的。打開我們看到:
-CODE  00001000 00001000 00000200 00000600
-DATA  00001000 00002000 00000200 00000800
.idata 00001000 00003000 00000200 00000A00
.reloc 00001000 00004000 00000200 00000C00
  找一下,我們就發現.idata段的虛擬偏移是3000,原始偏移是A00,3000-A00=2600,我們要記住2600,以便以后轉換其它的偏移。如果你沒找到輸入表的虛擬偏移,那么就找一下最接近的段。
  來到偏移A00處,我們就看到被稱為IMAGE_IMPORT_DESCRIPTORs(IID)的東東,它用5個字段表示每一個被調用DLL的信息,最后以Null結束。
**************************************************************************
(IID) IMAGE_IMPORT_DESCRIPTOR的結構包含如下5個字段:
OriginalFirstThunk, TimeDateStamp, ForwarderChain, Name, FirstThunk
OriginalFirstThunk
該字段是指向一32位以00結束的RVA偏移地址串,此地址串中每個地址描述一個輸入函數,它在輸入表中的順序是不變的。
TimeDateStamp
一個32位的時間標志,有特殊的用處。
ForwarderChain
輸入函數列表的32位索引。
Name
DLL文件名(一個以00結束的ASCII字符串)的32位RVA地址。
FirstThunk
該字段是指向一32位以00結束的RVA偏移地址串,此地址串中每個地址描述一個輸入函數,它在輸入表中的順序是可變的。
**************************************************************************
好了,你有沒有理解?讓我們看看我們有多少IID,它們從偏移A00處開始
3C30 0000 / 0000 0000 / 0000 0000 / 8C30 0000 / 6430 0000
{OrignalFirstThunk} {TimeDateStamp} {ForwardChain} {Name} {First Thunk}
5C30 0000 / 0000 0000 / 0000 0000 / 9930 0000 / 8430 0000
{OrignalFirstThunk} {TimeDateStamp} {ForwardChain} {Name} {First Thunk}
0000 0000 / 0000 0000 / 0000 0000 / 0000 0000 / 0000 0000
  每三分之一是個分界,我們知道每個IID包含了一個DLL的調用信息,現在我們有2個IID,所以我們估計這個程序調用了2個DLL。甚至我可以打賭,你能推測出我們將能找到什么。
  每個IID的第四個字段表示的是名字,通過它我們可以知道被調用的函數名。第一個IID的名字字段是8C30 0000,翻轉過來也就是地址0000308C,將它減去2600可以得到原始偏移,308C-2600=A8C,來到文件偏移A8C處,我們看到了什么?啊哈!原來調用的是KERNEL32.dll。
  好了,接下來我們就要去找出KERNEL32.dll中被調用的函數。回到第一個IID。
  FirstThunk字段包含了被調用的函數名的標志,OriginalFirstThunk僅僅是FirstThunk的備份,甚至有的程序根本沒有,所以我們通常看FirstThunk,它在程序運行時被初始化。
  KERNEL32.dll的FirstThunk字段值是6430 0000,翻轉過來也就是地址00003064,減去2600得A64,在偏移A64處就是我們的IMAGE_THUNK_DATA,它存儲的是一串地址,以一串00結束。如下:   
A430 0000/B230 0000/C030 0000/CE30 0000/DE30 0000/EA30 0000/F630 0000/0000 0000
  通常在一個完整的程序里都將有這些。我們現在有了7個函數調用,讓我們來看其中的兩個:
DE30 0000翻轉后是30DE,減去2600后等于ADE,看在偏移ADE處的字符串是ReadFile,
EA30 0000翻轉后是30EA,減去2600后等于AEA,看在偏移AEA處的字符串是WriteFile,
  你可能注意到了,在函數名前還有2個這字節的00,它是被作為一個提示。
  很簡單吧,你可以自己來試一下。回到A00,看第二個DLL的調用
5C30 0000 / 0000 0000 / 0000 0000 / 9930 0000 / 8430 0000
{OrignalFirstThunk} {TimeDateStamp} {ForwardChain} {Name} {First Thunk}
  先找它的DLL文件名。9930翻轉為3099-2600 =A99,在偏移A99處找到USER32.dll。再看FirstThunk字段值:8430翻轉為3084-2600=A84,偏移A84處保存的地址為08310000,翻轉后3108-2600=B08,偏移B08處字符串為MessageBoxA。明白了吧,接下來你就可以把這些用在你自己的EXE文件上了。
  摘要:
  在PE文件頭+80偏移處存放著輸入表的地址,輸入表包含了DLL被調用的每個函數的函數名和FirstThunk,通常還有Forward Chain和TimeStamp。
  當運行程序時系統調用GetProcAddress,將函數名作為參數,換取真正的函數入口地址,并在內存中寫入輸入表。當你對一個程序脫殼時你可能注意到你有了一個已經初始化的FirstThunk。例如,在我的WIN98上,函數GetProcAddress的入口地址是AE6DF7BF,在98上,所有的KERNEL32.dll函數調用地址看上去地址都象:xxxxF7BF,如果你在輸入表中看到這些,你可以利用orignal thunk重建它,或者重建這個PE程序。


共7頁: 1 [2] [3] [4] [5] [6] [7] 下一頁

熱詞搜索:

上一篇:一步一步教你加密解密技術——壓縮與脫殼(3)(1)
下一篇:一步一步教你加密解密技術——注冊機和補丁制作(1)

分享到: 收藏
国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区
成人国产精品免费观看视频| 国产精品白丝jk黑袜喷水| 成人免费福利片| 国产亚洲精品福利| av高清不卡在线| ㊣最新国产の精品bt伙计久久| 亚洲国产另类av| 成人国产精品免费观看视频| 日韩一区二区三免费高清| 亚洲一区影音先锋| av色综合久久天堂av综合| 久久久青草青青国产亚洲免观| 日本亚洲视频在线| 欧美日韩在线不卡| 亚洲制服丝袜av| 99久久久无码国产精品| 久久综合久久综合久久| 老司机免费视频一区二区| 欧美三级中文字幕在线观看| 亚洲激情图片一区| 91黄色激情网站| 一区二区三区av电影| 色婷婷精品久久二区二区蜜臀av| 国产精品你懂的在线| 成人性生交大合| 国产精品网站在线播放| 粉嫩欧美一区二区三区高清影视 | 日韩欧美国产精品一区| 丝袜美腿亚洲综合| 555www色欧美视频| 首页国产欧美久久| 日韩区在线观看| 麻豆国产一区二区| 精品美女一区二区三区| 麻豆国产91在线播放| 精品处破学生在线二十三| 精品在线一区二区| 国产三级精品视频| av在线不卡观看免费观看| 亚洲丝袜另类动漫二区| 色婷婷久久综合| 日韩精品国产精品| 欧美成人免费网站| 成人污视频在线观看| 亚洲欧美精品午睡沙发| 欧美在线制服丝袜| 免费一级欧美片在线观看| 久久夜色精品国产噜噜av| 春色校园综合激情亚洲| 国产精品对白交换视频 | 一级女性全黄久久生活片免费| 色94色欧美sute亚洲13| 日本不卡一区二区三区 | 亚洲第一主播视频| 精品精品欲导航| 99热精品国产| 日韩成人免费在线| 国产欧美一区二区三区在线看蜜臀 | 99精品1区2区| 日韩精品电影在线| 国产亚洲成av人在线观看导航| 一本大道久久a久久综合| 日本亚洲一区二区| 亚洲特级片在线| 日韩欧美第一区| av资源网一区| 毛片一区二区三区| 亚洲日本在线观看| 26uuu精品一区二区| 色噜噜偷拍精品综合在线| 精品一区二区在线免费观看| 亚洲精品美国一| 久久网站热最新地址| 欧美曰成人黄网| 成人免费观看av| 美国av一区二区| 亚洲国产日韩一级| 自拍偷在线精品自拍偷无码专区| 日韩精品一区在线| 在线观看日韩电影| 成人精品高清在线| 九九久久精品视频| 一二三区精品福利视频| 中文字幕成人网| 欧美不卡激情三级在线观看| 欧美性猛片aaaaaaa做受| 夫妻av一区二区| 九九国产精品视频| 亚洲1区2区3区视频| 日韩理论片在线| 国产精品久久久久天堂| 久久众筹精品私拍模特| 91精品国产91久久久久久一区二区 | 91精品国产综合久久精品| 91丝袜国产在线播放| 国产精品888| 国产一区二区在线影院| 蜜桃视频第一区免费观看| 亚洲一区二区三区影院| 一区二区三区不卡视频 | 国产呦精品一区二区三区网站| 天堂久久久久va久久久久| 一区二区三区高清在线| 一区二区欧美国产| 亚洲美腿欧美偷拍| 亚洲欧美日韩在线| 亚洲人成精品久久久久久| 亚洲欧美在线视频| 亚洲色大成网站www久久九九| 国产精品无码永久免费888| 国产欧美日韩中文久久| 国产精品视频一二| 国产精品免费aⅴ片在线观看| 中文字幕不卡三区| 成人免费一区二区三区视频 | 国模无码大尺度一区二区三区| 久久99日本精品| 精品一区二区三区在线播放| 久久超级碰视频| 经典三级一区二区| 国产成人精品1024| 成人app软件下载大全免费| eeuss鲁片一区二区三区在线看| aaa亚洲精品| 91福利视频在线| 欧美浪妇xxxx高跟鞋交| 91精品一区二区三区久久久久久| 51久久夜色精品国产麻豆| 日韩视频中午一区| 中文字幕精品三区| 亚洲综合在线免费观看| 免播放器亚洲一区| 国产精品中文字幕欧美| 成a人片国产精品| 欧美性生活大片视频| 日韩一级视频免费观看在线| 久久久91精品国产一区二区精品 | 九九在线精品视频| www.色综合.com| 欧美精品日韩精品| 久久你懂得1024| 亚洲午夜私人影院| 激情欧美一区二区三区在线观看| 成人av电影免费在线播放| 欧美乱妇15p| 国产亚洲综合性久久久影院| 亚洲三级视频在线观看| 久草在线在线精品观看| 在线一区二区三区| 久久婷婷色综合| 午夜视频一区二区| 成人免费视频视频| 555www色欧美视频| 亚洲青青青在线视频| 久草中文综合在线| 欧美亚一区二区| 国产偷国产偷亚洲高清人白洁| 亚洲精品免费在线播放| 国产乱码精品一区二区三| 欧美视频自拍偷拍| 日本一区二区三区四区在线视频| 亚洲gay无套男同| 99国产精品一区| 久久在线免费观看| 日韩主播视频在线| 91在线精品秘密一区二区| 欧美精品一区二区三区久久久| 亚洲国产乱码最新视频| 99九九99九九九视频精品| 久久午夜免费电影| 蜜臀久久99精品久久久久久9| 色噜噜狠狠成人中文综合| 国产欧美日韩中文久久| 国产在线看一区| 日韩一区二区三区免费看| 亚洲一区二区三区免费视频| 9色porny自拍视频一区二区| 精品国产乱码久久久久久影片| 亚洲国产色一区| 色婷婷久久一区二区三区麻豆| 国产精品拍天天在线| 国产一区二区三区在线观看免费| 91精品国产综合久久香蕉麻豆| 一级中文字幕一区二区| 色噜噜狠狠一区二区三区果冻| 中文字幕中文字幕一区| 成人一道本在线| 国产精品乱人伦| 丰满少妇在线播放bd日韩电影| 国产亚洲一区二区三区四区| 免费观看在线综合色| 在线综合+亚洲+欧美中文字幕| 亚洲午夜在线视频| 欧美久久久久久蜜桃| 五月天视频一区| 正在播放亚洲一区| 麻豆中文一区二区| 久久午夜羞羞影院免费观看| 国产电影一区在线| 中文字幕av一区二区三区|