青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Ay's Blog@CNSSUESTC

關(guān)于jmp相對(duì)跳的一道程序分析

夜深人靜,嘿嘿 ? 只有這個(gè)時(shí)候才有時(shí)間靜下來(lái)看點(diǎn)東西

前幾天在看 16 位匯編語(yǔ)言程序設(shè)計(jì) ? 王爽 老師寫(xiě)的 ? 寫(xiě)得真的很好 ? 呵呵 ? 不是賣(mài)廣告哈 資源共享嘛

遇到一個(gè)問(wèn)題 ? 通過(guò)這個(gè)問(wèn)題發(fā)現(xiàn)能深刻理解到 jmp 指令很具內(nèi)涵的一些內(nèi)容

甚歡 乃著此文以記之

?

程序如下:

assume cs:codesg

codesg segment

?? mov ax,4c00h

?? int 21h

start :

?? mov ax,0

s:

?? nop

?? nop

?? mov di,offset s 這里應(yīng)該是計(jì)算 s 對(duì)于 segment 處的偏移量,賦值給 di

?? mov si,offset s2 計(jì)算 s2 對(duì)于 segment 處的偏移,保存到 si

?? mov ax , cs:[si]? s 處的 1 個(gè)字節(jié)指令內(nèi)容讀入 ax (注意,基址是 cs ~ 不是 ds

?? mov cs:[di],ax?? ax 內(nèi)容寫(xiě)到 s 處,也就是填充上邊那 2 個(gè) nop

s0:

?? jmp short s ;跳到 s ,那么這個(gè)時(shí)候位于 s 處指令應(yīng)該是 jmp s1 ;接著執(zhí)行應(yīng)該是 mov ax 0 然后 int 21

s1:

?? mov ax,0

?? int 21h??

?? mov ax,0

s2:?

?? jmp short s1

?? nop

codesg ends

end start

?

?

結(jié)果發(fā)現(xiàn)我推測(cè)的跟執(zhí)行的內(nèi)容完全不一樣 …… 暈厥 ING~

又過(guò)了一天 一覺(jué)醒來(lái)想了想這個(gè)結(jié)果 哈哈 恍然大悟

?

書(shū)上的例子用的是 windows 自帶的 debug 調(diào)試 …… 我也只會(huì)用這個(gè)了 …… windbg 太麻煩 od 好像只能開(kāi) 32 位的

只能截圖看了

ab.bmp

jmp 指令在被編譯器編譯的時(shí)候會(huì)自動(dòng)計(jì)算跳轉(zhuǎn)時(shí)指針與目的地址的偏移量 然后通過(guò)加減 ip 這個(gè)數(shù)值實(shí)現(xiàn)跳轉(zhuǎn)的

也就是說(shuō) jmp s 這指令實(shí)現(xiàn)的是相對(duì)位移跳轉(zhuǎn),跳到哪那是編譯器編譯的時(shí)候就計(jì)算好的了

我們來(lái)看看 1814 0016 這個(gè)地方的 jmp 指令 EBF0 這個(gè)指令對(duì)應(yīng)的匯編語(yǔ)句應(yīng)該是 jmp s

S 是在 1814 0008 所以反編譯的結(jié)果是 jmp 0008? 沒(méi)錯(cuò) 跟我們的語(yǔ)句沒(méi)出入

那么我們可以看看機(jī)器碼 BEF0? BE jmp 指令 F0 代表相對(duì)位移 以補(bǔ)碼形式保存

那么我們計(jì)算下發(fā)現(xiàn) F0 對(duì)應(yīng)的 10 進(jìn)制是 -16 也就是說(shuō)要往后跳 16 個(gè)字節(jié)(注意是字節(jié), 8bit 一個(gè)字節(jié)哦 ~

1814 0016 這個(gè)是我們執(zhí)行到 jmp 時(shí) cs ip 的地址,也就是取指令的地址

注意這個(gè)時(shí)候我們已經(jīng)取出 jmp s 這個(gè)指令了 那么 IP 指針應(yīng)該 +2 指向 1814 0018 這個(gè)位置了

往后跳 16 個(gè)字節(jié) 1814 0018 – 10 10 進(jìn)制就是 16 咯) = 1814 0008

應(yīng)該是跳到 0008 這個(gè)位置上了 正好就是 s 對(duì)應(yīng)的位置

那么我們看看 1814 0020 這個(gè)指令 EBF6? F6 是跳轉(zhuǎn)的相對(duì)位移 補(bǔ)碼形式存放 換算成 10 進(jìn)制就是 -10

想象下當(dāng)程序執(zhí)行到 s0 那個(gè)時(shí)候 s 處的那 2 個(gè) nop 指令已經(jīng)被填充成 EBF6 ? 根據(jù)相對(duì)位移的計(jì)算

? 這個(gè)時(shí)候程序運(yùn)行的步驟應(yīng)該是

通過(guò) jmp s 跳轉(zhuǎn)到 1814 0008 地址(這個(gè)時(shí)候下一個(gè)指令對(duì)應(yīng)的機(jī)器碼是 BEF0

取出下一個(gè)指令 IP+2? 這個(gè)時(shí)候 IP 指向 1814 000a

執(zhí)行 BEF6 這個(gè)指令(向后跳 10 個(gè)字節(jié))

也就是應(yīng)該跳到 1814 000a – a 10 16 進(jìn)制表示) = 1814 0000

也就是說(shuō)這個(gè)時(shí)候 jmp 指令應(yīng)該是 jmp 0000 跳到 segment 開(kāi)始處而不是跳到 s1 處了

接著應(yīng)該是執(zhí)行

?? mov ax,4c00h

?? int 21h

實(shí)際調(diào)試的結(jié)果也是這樣的

如下圖示

?

sa.bmp

看到?jīng)] ? 執(zhí)行 jmp 0008 也就是 jmp s 以后然后就是跳到 1814 0000 而不是跳到 s1 對(duì)應(yīng)的那個(gè)偏移處

接著就是跟我們想的一樣 執(zhí)行了 mov ax 4c 00h 然后就 int 21h

aabb.bmp

?

也就是說(shuō)我們 jmp 的地址記錄的是相對(duì)偏移量 這個(gè)程序也說(shuō)明了 jmp 的地址是在運(yùn)行時(shí)計(jì)算出來(lái)的而不是編譯器一開(kāi)始就硬編碼進(jìn)去的

不過(guò)當(dāng)然也有硬編碼進(jìn)去的跳轉(zhuǎn)指令啦 ~~ 好像是 jmp far 地址吧 忘了的說(shuō) 呵呵 ?

只不過(guò)小小闡明下 jmp 相對(duì)跳的執(zhí)行流程和細(xì)節(jié)部分

這樣也有個(gè)小小啟示就是以后用相對(duì)跳的時(shí)候小心咯 貌似 shellcode 編寫(xiě)或者改內(nèi)核代碼的時(shí)候可以注意下 呵呵

跳轉(zhuǎn)的相對(duì)地址最好計(jì)算出來(lái)表直接就來(lái)個(gè)偏移 ? 一不小心機(jī)子就當(dāng)?shù)袅?/span> ? 哇咔咔 ~

?

posted on 2009-02-13 02:11 __ay 閱讀(1679) 評(píng)論(2)  編輯 收藏 引用 所屬分類: 操作系統(tǒng)&&內(nèi)核

Feedback

# re: 關(guān)于jmp相對(duì)跳的一道程序分析 2009-02-13 09:43 zuhd

理解jmp的時(shí)候,只要理解為ip"平移了n byte"而不是"移動(dòng)到"這樣就不會(huì)搞錯(cuò)了,我也是uestc的,不過(guò)畢業(yè)2年了,我郵箱:huhf#21mmo.com,大家一起學(xué)習(xí)  回復(fù)  更多評(píng)論   

# re: 關(guān)于jmp相對(duì)跳的一道程序分析 2009-02-13 10:18 __ay

@zuhd
呵呵 校友?幸會(huì)幸會(huì)~~  回復(fù)  更多評(píng)論   


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲男女自偷自拍| 国产精品视频九色porn| 亚洲国产成人av好男人在线观看| 夜夜嗨av一区二区三区四季av | 午夜一区二区三视频在线观看| 亚洲美女一区| 中文网丁香综合网| 亚洲视频播放| 性做久久久久久久久| 久久成人免费网| 麻豆国产精品va在线观看不卡| 另类天堂视频在线观看| 欧美国产综合视频| 久久久久久久性| 激情小说另类小说亚洲欧美| 在线观看日韩欧美| 99视频+国产日韩欧美| 欧美亚洲午夜视频在线观看| 裸体素人女欧美日韩| 亚洲国产成人精品久久久国产成人一区| 欧美激情导航| 亚洲自拍偷拍视频| 免费久久99精品国产自| 国产精品激情偷乱一区二区∴| 国产精品伊人日日| 亚洲精品国久久99热| 欧美一区二区视频在线观看2020 | 一本一本久久| 久久精品一区二区三区四区| 欧美精品亚洲二区| 韩国免费一区| 亚洲免费在线视频| 亚洲第一精品夜夜躁人人爽| 亚洲在线第一页| 欧美激情精品久久久六区热门| 国产一区二区日韩精品欧美精品| 亚洲精品少妇| 免费欧美网站| 欧美一区二区性| 国产精品美女主播| 一本大道久久a久久精二百| 久久久精品性| 欧美亚洲综合网| 国产精品免费看久久久香蕉| 日韩亚洲精品电影| 欧美激情视频在线播放| 久久久久久综合| 国产一区二区久久久| 欧美中文字幕视频在线观看| 在线亚洲免费| 国产精品成人aaaaa网站| 亚洲精品一区二区在线观看| 老司机aⅴ在线精品导航| 亚洲综合色网站| 国产女人精品视频| 新狼窝色av性久久久久久| 一区二区三区日韩| 欧美日韩综合视频| 亚洲视频axxx| 99在线热播精品免费99热| 欧美日韩精品二区| 在线视频精品| 99视频在线观看一区三区| 欧美极品一区二区三区| 亚洲美女区一区| 亚洲精品久久久久久久久久久久 | 久久久久久伊人| 正在播放欧美一区| 亚洲精品女人| 开心色5月久久精品| 伊人久久婷婷| 欧美高清视频一区二区三区在线观看| 久久免费少妇高潮久久精品99| 狠狠噜噜久久| 老司机精品导航| 欧美1区2区| 亚洲视频在线一区| 亚洲欧美综合一区| 一区二区三区中文在线观看 | 亚洲午夜在线观看视频在线| 欧美午夜不卡视频| 久久国产加勒比精品无码| 久久久精品五月天| 亚洲人成亚洲人成在线观看图片 | 日韩亚洲欧美在线观看| 亚洲麻豆视频| 国产视频亚洲| 亚洲国产美国国产综合一区二区| 欧美日韩精品免费观看| 午夜精品久久久久久久99水蜜桃 | 亚洲午夜精品福利| 香蕉乱码成人久久天堂爱免费 | 在线观看中文字幕亚洲| 亚洲精品国产欧美| 国产婷婷色一区二区三区在线| 欧美高清在线视频| 国产精品久久久久久久久搜平片| 久久久久久国产精品mv| 欧美成人一品| 性欧美暴力猛交另类hd| 麻豆成人在线观看| 欧美在线视频免费| 欧美韩日一区| 久久精品一区二区三区四区 | 久久gogo国模啪啪人体图| 亚洲精品欧美日韩| 欧美一区二区三区免费观看视频| 亚洲剧情一区二区| 久久本道综合色狠狠五月| 99视频+国产日韩欧美| 欧美在线观看视频一区二区| 一区二区三区国产在线| 久久久久青草大香线综合精品| 宅男噜噜噜66一区二区| 欧美黄在线观看| 国产欧美在线观看一区| 欧美成人高清视频| 国产精品久久久久久久久婷婷| 欧美成人午夜77777| 国产亚洲在线观看| 99国产精品久久久| 亚洲精品偷拍| 久久综合狠狠综合久久激情| 欧美一区国产二区| 国产精品久久久久91| 亚洲美女精品久久| 亚洲美女视频| 欧美精品日韩一本| 亚洲国产天堂久久综合网| 在线观看日韩| 久久看片网站| 免费成人av在线| 影音先锋亚洲一区| 久久久久久亚洲综合影院红桃 | 亚洲精品1区| 六月天综合网| 欧美大片免费久久精品三p | 欧美日韩视频| 亚洲裸体在线观看| 亚洲一区二区欧美| 国产精品美女一区二区在线观看| 亚洲一级一区| 欧美一区二区在线免费播放| 国产欧美日韩在线播放| 性18欧美另类| 久久一区亚洲| 亚洲国产日韩一级| 欧美激情按摩| 日韩视频在线一区二区三区| 亚洲永久在线观看| 国产乱码精品一区二区三区五月婷| 亚洲已满18点击进入久久| 欧美在线在线| 在线观看亚洲精品| 欧美日韩国产va另类| 国产精品99久久久久久有的能看| 欧美在线关看| 亚洲高清色综合| 欧美日韩三区四区| 久久激五月天综合精品| 欧美黄在线观看| 亚洲欧美电影院| 国语自产精品视频在线看抢先版结局 | 欧美成人小视频| 日韩一区二区福利| 国产欧美精品va在线观看| 久久精品人人爽| 亚洲精品资源美女情侣酒店| 欧美一区二区高清在线观看| **网站欧美大片在线观看| 欧美日韩国产一中文字不卡| 亚洲欧美成人在线| 亚洲电影av| 欧美一区91| 亚洲精品中文字幕女同| 国产麻豆午夜三级精品| 亚洲国产日韩欧美在线99| 国产日产欧美精品| 欧美大片一区| 欧美专区第一页| 99在线热播精品免费| 美女在线一区二区| 亚洲欧美中文日韩在线| 亚洲精品国产精品乱码不99按摩| 国产精品美女久久久久aⅴ国产馆| 久久在线免费| 欧美一区二区在线看| 在线综合亚洲| 亚洲国内精品在线| 久久亚洲免费| 欧美一区二区三区免费视频| 99热精品在线| 亚洲国产一区二区三区a毛片| 国产日韩欧美制服另类| 国产精品久久久久一区二区三区| 欧美日本一区二区高清播放视频| 久久这里只有精品视频首页| 欧美亚洲网站| 亚洲制服丝袜在线| 亚洲综合大片69999|