亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? lion-petut-c02.htm

?? 在DOS下編程因?yàn)閷?shí)模式的限制
?? HTM
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
<html>

<head>
<meta http-equiv="Content-Type"
content="text/html; charset=gb_2312-80">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<title>PE教程2: 檢驗(yàn)PE文件的有效性</title>
</head>

<body bgcolor="#000066" text="#FFFFFF" link="#FFFFCC"
vlink="#FFCCCC" alink="#CCFFCC">

<h1 align="center"><font color="#FFFFCC">PE教程2: 檢驗(yàn)PE文件的有效性</font></h1>

<p><font size="2">本教程中我們將學(xué)習(xí)如何檢測(cè)給定文件是一有效</font><font
size="2" face="MS Sans Serif">PE</font><font size="2">文件。<br>
下載 </font><a href="files/PE-tut02.zip"><font size="2">范例</font></a></p>

<h3>理論<font face="Arial, Helvetica, sans-serif">:</font></h3>

<p><font size="2">如何才能校驗(yàn)指定文件是否為一有效</font><font
size="2" face="MS Sans Serif">PE</font><font size="2">文件呢</font><font
size="2" face="MS Sans Serif">? </font><font size="2">這個(gè)問(wèn)題很難回答,完全取決于想要的精準(zhǔn)程度。您可以檢驗(yàn)</font><font
size="2" face="MS Sans Serif">PE</font><font size="2">文件格式里的各個(gè)數(shù)據(jù)結(jié)構(gòu),或者僅校驗(yàn)一些關(guān)鍵數(shù)據(jù)結(jié)構(gòu)。大多數(shù)情況下,沒(méi)有必要校驗(yàn)文件里的每一個(gè)數(shù)據(jù)結(jié)構(gòu),只要一些關(guān)鍵數(shù)據(jù)結(jié)構(gòu)有效,我們就認(rèn)為是有效的</font><font
size="2" face="MS Sans Serif">PE</font><font size="2">文件了。下面我們就來(lái)實(shí)現(xiàn)前面的假設(shè)。</font></p>

<p><font size="2">我們要驗(yàn)證的重要數(shù)據(jù)結(jié)構(gòu)就是 </font><font
size="2" face="MS Sans Serif">PE header</font><font size="2">。從編程角度看,</font><font
size="2" face="MS Sans Serif">PE header </font><font size="2">實(shí)際就是一個(gè)
</font><font size="2" face="MS Sans Serif">IMAGE_NT_HEADERS </font><font
size="2">結(jié)構(gòu)。定義如下</font><font size="2"
face="MS Sans Serif">:</font></p>

<p><font size="2" face="MS Sans Serif"><b>IMAGE_NT_HEADERS STRUCT
<br>
&nbsp;&nbsp;&nbsp;Signature dd ? <br>
&nbsp;&nbsp;&nbsp;FileHeader IMAGE_FILE_HEADER <> <br>
&nbsp;&nbsp;&nbsp;OptionalHeader IMAGE_OPTIONAL_HEADER32 <> <br>
IMAGE_NT_HEADERS ENDS </b></font></p>

<p><font color="#FFFFCC" size="2" face="MS Sans Serif"><b>Signature</b></font><font
size="2" face="MS Sans Serif"> </font><font size="2">一</font><font
size="2" face="MS Sans Serif">dword</font><font size="2">類型,值為</font><font
size="2" face="MS Sans Serif">50h, 45h, 00h, 00h</font><font
size="2">(</font><font size="2" face="MS Sans Serif">PE\0\0</font><font
size="2">)。</font><font size="2" face="MS Sans Serif"> </font><font
size="2">本域?yàn)?lt;/font><font size="2" face="MS Sans Serif">PE</font><font
size="2">標(biāo)記,我們可以此識(shí)別給定文件是否為有效</font><font
size="2" face="MS Sans Serif">PE</font><font size="2">文件。</font><br>
<font color="#FFFFCC" size="2" face="MS Sans Serif"><b>FileHeader
</b></font><font size="2">該結(jié)構(gòu)域包含了關(guān)于</font><font
size="2" face="MS Sans Serif">PE</font><font size="2">文件物理分布的信息,</font><font
size="2" face="MS Sans Serif"> </font><font size="2">比如節(jié)數(shù)目、文件執(zhí)行機(jī)器等。</font><font
size="2" face="MS Sans Serif"><br>
</font><font color="#FFFFCC" size="2" face="MS Sans Serif"><b>OptionalHeader</b></font><font
size="2" face="MS Sans Serif"> </font><font size="2">該結(jié)構(gòu)域包含了關(guān)于</font><font
size="2" face="MS Sans Serif">PE</font><font size="2">文件邏輯分布的信息,雖然域名有</font><font
size="2" face="MS Sans Serif">&quot;</font><font size="2">可選</font><font
size="2" face="MS Sans Serif">&quot;</font><font size="2">字樣,但實(shí)際上本結(jié)構(gòu)總是存在的。</font></p>

<p><font size="2">我們目的很明確。如果</font><font
color="#CCFFCC" size="2" face="MS Sans Serif"><b>IMAGE_NT_HEADERS</b></font><font
size="2">的</font><font size="2" face="MS Sans Serif">signature</font><font
size="2">域值等于</font><font size="2" face="MS Sans Serif">&quot;PE\0\0&quot;</font><font
size="2">,那么就是有效的</font><font size="2"
face="MS Sans Serif">PE</font><font size="2">文件。實(shí)際上,為了比較方便,</font><font
size="2" face="MS Sans Serif">Microsoft</font><font size="2">已定義了常量</font><font
color="#CCFFCC" size="2" face="MS Sans Serif"><b>IMAGE_NT_SIGNATURE</b></font><font
size="2">供我們使用。</font></p>

<p><font color="#FFCCFF" size="2" face="MS Sans Serif"><b>IMAGE_DOS_SIGNATURE
equ 5A4Dh </b></font><font size="2" face="MS Sans Serif"><b><br>
IMAGE_OS2_SIGNATURE equ 454Eh <br>
IMAGE_OS2_SIGNATURE_LE equ 454Ch <br>
IMAGE_VXD_SIGNATURE equ 454Ch <br>
</b></font><font color="#FFCCFF" size="2" face="MS Sans Serif"><b>IMAGE_NT_SIGNATURE
equ 4550h </b></font></p>

<p><font size="2">接下來(lái)的問(wèn)題是</font><font size="2"
face="MS Sans Serif">: </font><font size="2">如何定位 </font><font
size="2" face="MS Sans Serif">PE header? </font><font size="2">答案很簡(jiǎn)單</font><font
size="2" face="MS Sans Serif">: DOS MZ header </font><font
size="2">已經(jīng)包含了指向 </font><font size="2"
face="MS Sans Serif">PE header </font><font size="2">的文件偏移量。</font><font
size="2" face="MS Sans Serif">DOS MZ header </font><font size="2">又定義成結(jié)構(gòu)</font><font
color="#CCFFCC" size="2"><b> </b></font><font color="#CCFFCC"
size="2" face="MS Sans Serif"><b>IMAGE_DOS_HEADER</b></font><font
size="2" face="MS Sans Serif"> </font><font size="2">。查詢</font><font
size="2" face="MS Sans Serif">windows.inc</font><font size="2">,我們知道
</font><font color="#CCFFCC" size="2" face="MS Sans Serif"><b>IMAGE_DOS_HEADER</b></font><font
size="2" face="MS Sans Serif"> </font><font size="2">結(jié)構(gòu)的</font><font
color="#CC9900" size="2" face="MS Sans Serif"><b>e_lfanew</b></font><font
size="2">成員就是指向 </font><font size="2"
face="MS Sans Serif">PE header </font><font size="2">的文件偏移量。
</font></p>

<p><font size="2">現(xiàn)在將所有步驟總結(jié)如下</font><font
size="2" face="MS Sans Serif">:</font></p>

<ol>
    <li><font size="2">首先檢驗(yàn)文件頭部第一個(gè)字的值是否等于
        </font><font color="#CCFFCC" size="2"
        face="MS Sans Serif"><b>IMAGE_DOS_SIGNATURE</b></font><font
        color="#CCFFCC" size="2"><b>,</b></font><font size="2">是則
        </font><font size="2" face="MS Sans Serif">DOS MZ header </font><font
        size="2">有效。</font></li>
    <li><font size="2">一旦證明文件的 </font><font
        size="2" face="MS Sans Serif">DOS header </font><font
        size="2">有效后,就可用</font><font size="2"
        face="MS Sans Serif">e_lfanew</font><font size="2">來(lái)定位
        </font><font size="2" face="MS Sans Serif">PE header </font><font
        size="2">了。</font></li>
    <li><font size="2">比較 </font><font size="2"
        face="MS Sans Serif">PE header </font><font size="2">的第一個(gè)字的值是否等于</font><font
        color="#CCFFCC" size="2"><b> </b></font><font
        color="#CCFFCC" size="2" face="MS Sans Serif"><b>IMAGE_NT_HEADER</b></font><font
        size="2">。如果前后兩個(gè)值都匹配,那我們就認(rèn)為該文件是一個(gè)有效的</font><font
        size="2" face="MS Sans Serif">PE</font><font size="2">文件。</font></li>
</ol>

<h3><font face="Arial, Helvetica, sans-serif">Example:</font></h3>

<p><font face="Fixedsys">.386 <br>
.model flat,stdcall <br>
option casemap:none <br>
include \masm32\include\windows.inc <br>
include \masm32\include\kernel32.inc <br>
include \masm32\include\comdlg32.inc <br>
include \masm32\include\user32.inc <br>
includelib \masm32\lib\user32.lib <br>
includelib \masm32\lib\kernel32.lib <br>
includelib \masm32\lib\comdlg32.lib <br>
<br>
SEH struct <br>
PrevLink dd ? &nbsp;&nbsp;&nbsp;; the address of the previous seh
structure <br>
CurrentHandler dd ?&nbsp;&nbsp;&nbsp; ; the address of the
exception handler <br>
SafeOffset dd ? &nbsp;&nbsp;&nbsp;; The offset where it's safe to
continue execution <br>
PrevEsp dd ? &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;; the old value in esp
<br>
PrevEbp dd ? &nbsp;&nbsp;&nbsp;&nbsp;; The old value in ebp <br>
SEH ends<br>
<br>
.data <br>
AppName db &quot;PE tutorial no.2&quot;,0 <br>
ofn OPENFILENAME <> <br>
FilterString db &quot;Executable Files (*.exe,
*.dll)&quot;,0,&quot;*.exe;*.dll&quot;,0 <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
db &quot;All Files&quot;,0,&quot;*.*&quot;,0,0 <br>
FileOpenError db &quot;Cannot open the file for reading&quot;,0 <br>
FileOpenMappingError db &quot;Cannot open the file for memory
mapping&quot;,0 <br>
FileMappingError db &quot;Cannot map the file into memory&quot;,0
<br>
FileValidPE db &quot;This file is a valid PE&quot;,0 <br>
FileInValidPE db &quot;This file is not a valid PE&quot;,0 <br>
<br>
.data? <br>
buffer db 512 dup(?) <br>
hFile dd ? <br>
hMapping dd ? <br>
pMapping dd ? <br>
ValidPE dd ? <br>
<br>
.code <br>
start proc <br>
LOCAL seh:SEH <br>
mov ofn.lStructSize,SIZEOF ofn <br>
mov ofn.lpstrFilter, OFFSET FilterString <br>
mov ofn.lpstrFile, OFFSET buffer <br>
mov ofn.nMaxFile,512 <br>
mov ofn.Flags, OFN_FILEMUSTEXIST or OFN_PATHMUSTEXIST or
OFN_LONGNAMES or OFN_EXPLORER or OFN_HIDEREADONLY <br>
invoke GetOpenFileName, ADDR ofn <br>
.if eax==TRUE <br>
&nbsp;&nbsp;&nbsp; invoke CreateFile, addr buffer, GENERIC_READ,
FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL
<br>
&nbsp;&nbsp;&nbsp; .if eax!=INVALID_HANDLE_VALUE <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov hFile, eax <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; invoke CreateFileMapping,
hFile, NULL, PAGE_READONLY,0,0,0 <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .if eax!=NULL <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov
hMapping, eax <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; invoke
MapViewOfFile,hMapping,FILE_MAP_READ,0,0,0 <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .if
eax!=NULL <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov pMapping,eax <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
assume fs:nothing <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
push fs:[0] <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
pop seh.PrevLink <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov seh.CurrentHandler,offset SEHHandler <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov seh.SafeOffset,offset FinalExit <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
lea eax,seh <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov fs:[0], eax <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov seh.PrevEsp,esp <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov seh.PrevEbp,ebp <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov edi, pMapping <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
assume edi:ptr IMAGE_DOS_HEADER <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
.if [edi].e_magic==IMAGE_DOS_SIGNATURE <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
add edi, [edi].e_lfanew <br>

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人在线综合网| 一区二区三区免费网站| 久久久99免费| 国产精品国产成人国产三级| 亚洲精品写真福利| 日韩高清在线电影| 国产伦精一区二区三区| 日本黄色一区二区| 日韩视频一区在线观看| 中文字幕精品一区二区精品绿巨人| 伊人开心综合网| 美腿丝袜亚洲一区| 99综合电影在线视频| 7777女厕盗摄久久久| 国产婷婷色一区二区三区四区| 亚洲码国产岛国毛片在线| 在线国产亚洲欧美| 日韩欧美卡一卡二| 亚洲欧美日韩系列| 精品制服美女丁香| 欧美午夜片在线看| 欧美国产一区二区| 首页国产欧美久久| 波多野结衣中文字幕一区| 欧美一区二区三区四区五区| 国产精品美日韩| 麻豆精品在线播放| 91精品福利视频| 国产日产精品1区| 日韩精品午夜视频| 色噜噜狠狠一区二区三区果冻| 26uuu国产一区二区三区| 亚洲高清免费观看 | 717成人午夜免费福利电影| 久久久影视传媒| 日韩成人一级片| 色吧成人激情小说| 中文成人综合网| 久久精品999| 欧美猛男超大videosgay| 亚洲三级在线观看| 高清不卡一区二区| 久久伊人中文字幕| 免费精品视频在线| 欧美老年两性高潮| 亚洲精品国产第一综合99久久| 国产福利精品一区| 精品国产乱码久久久久久久久 | 欧美视频在线播放| 综合欧美一区二区三区| 国产成人精品免费看| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 亚洲不卡一区二区三区| 色综合久久精品| 国产精品久久二区二区| 丁香婷婷综合色啪| 久久婷婷国产综合国色天香| 蜜桃免费网站一区二区三区| 欧美人体做爰大胆视频| 亚洲高清一区二区三区| 91久久精品网| 一区二区三区日韩在线观看| 91麻豆.com| 一区二区三区在线视频免费观看| 国产亚洲综合av| 久久国产精品免费| 日韩一区二区在线看片| 午夜精品一区在线观看| 欧亚一区二区三区| 亚洲国产日产av| 日本久久一区二区| 亚洲精品v日韩精品| 91极品美女在线| 亚洲一区在线观看网站| 欧美色精品在线视频| 亚洲国产日日夜夜| 欧美日韩在线播放一区| 香蕉加勒比综合久久| 欧美乱熟臀69xxxxxx| 日韩av一区二区三区| 欧美电影免费提供在线观看| 另类中文字幕网| 久久亚洲精精品中文字幕早川悠里| 国产在线精品一区二区| 国产日韩精品久久久| 97久久精品人人做人人爽50路| 亚洲欧美日韩综合aⅴ视频| 91久久久免费一区二区| 亚洲第四色夜色| 日韩西西人体444www| 黄色日韩三级电影| 国产精品久久久久影院亚瑟 | 国产欧美视频在线观看| 成人va在线观看| 一区二区三区四区视频精品免费| 亚洲精品高清在线观看| 欧美性猛交一区二区三区精品| 亚洲444eee在线观看| 日韩一区二区免费高清| 国产在线播放一区三区四| 国产精品乱子久久久久| 在线这里只有精品| 欧美aⅴ一区二区三区视频| 久久综合九色综合欧美亚洲| 成人美女视频在线观看18| 一区二区三区国产精华| 日韩视频一区二区| 成人不卡免费av| 日日摸夜夜添夜夜添国产精品| 日韩精品专区在线影院观看| 成人中文字幕在线| 亚洲大片在线观看| 26uuu色噜噜精品一区二区| 91在线免费播放| 蜜臀久久99精品久久久久久9| 中文字幕乱码亚洲精品一区| 欧美系列一区二区| 国产精品一品视频| 亚洲一区在线免费观看| 久久精品视频免费| 欧美日韩一区二区三区在线看 | 久久99久久99小草精品免视看| 国产精品天美传媒| 欧美精品第1页| 成人精品视频一区| 日韩电影在线观看一区| 国产精品美女久久久久久久久久久| 欧美日韩美少妇| 国产69精品一区二区亚洲孕妇| 亚洲国产欧美在线| 国产欧美一区二区精品性色超碰| 欧美日韩一本到| 懂色av一区二区夜夜嗨| 免费日韩伦理电影| 亚洲精品福利视频网站| 久久综合九色综合97婷婷女人| 欧美亚洲日本一区| 成人午夜伦理影院| 久久成人免费网站| 亚洲一区二区欧美日韩 | 日本高清免费不卡视频| 国产麻豆一精品一av一免费| 亚洲成人你懂的| 国产精品久久久久久久久免费相片| 日韩一区二区三区电影| 欧美影院一区二区| 成年人国产精品| 国产一区二区美女诱惑| 日韩不卡在线观看日韩不卡视频| 亚洲色图欧美在线| 欧美国产丝袜视频| 精品国产污污免费网站入口| 欧美人与禽zozo性伦| 色婷婷综合中文久久一本| 成人黄色一级视频| 国产高清精品网站| 蜜臀久久99精品久久久久久9 | 一区二区久久久久| 国产精品天干天干在观线| 日韩精品影音先锋| 91麻豆精品国产91久久久更新时间| 色天天综合色天天久久| aaa亚洲精品| 国产成人av网站| 国产一区二区网址| 精品亚洲成a人在线观看| 日本亚洲电影天堂| 爽爽淫人综合网网站| 亚洲成人免费看| 亚洲小少妇裸体bbw| 一区二区三区.www| 亚洲精品菠萝久久久久久久| 18成人在线观看| 日韩美女啊v在线免费观看| 国产精品人成在线观看免费| 欧美国产精品一区| 国产亚洲美州欧州综合国| www激情久久| 久久久久久久久久美女| 久久综合九色综合欧美亚洲| 久久综合九色综合欧美亚洲| 精品日韩在线观看| 精品国产凹凸成av人导航| 欧美成人一区二区三区| 麻豆91免费看| 久久精品国产一区二区三| 老鸭窝一区二区久久精品| 国内精品国产成人国产三级粉色| 九色综合狠狠综合久久| 国产在线麻豆精品观看| 国产一区二区导航在线播放| 国产精品自在欧美一区| 国产suv精品一区二区6| 不卡一卡二卡三乱码免费网站| av网站一区二区三区| 91浏览器入口在线观看| 精品视频资源站| 欧美一区二区日韩一区二区| wwwwxxxxx欧美| 国产精品美女久久久久久久久|