久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

使用匯編語言實現(xiàn)if else 循環(huán)函數(shù)調(diào)用的具體方法

這篇文章主要介紹了使用匯編語言實現(xiàn)if else 循環(huán)函數(shù)調(diào)用的具體方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編

需要使用匯編來演示如下代碼 需要下載ollydbg匯編調(diào)試器 點擊File-Open隨意打開一個exe文件 我這里隨便找到c:/windows/explorer.exe文件


這里EIP的值表示下一次運行需要執(zhí)行的代碼位置


雙擊 EIP紅色地址 左邊代碼會自動跳轉(zhuǎn)到對應的代碼行 有了以下環(huán)節(jié) 接下來添加代碼


如果替換的代碼 占用的字節(jié)數(shù) 小于原始的代碼數(shù) 會自動補充 nop空指令

一。實現(xiàn) if else

MOV EAX,1 表示將1立即數(shù) 設(shè)置給EAX寄存器

CMP EAX,1 比較EAX的值和1是否相等 Z標志位(如果減法運算 結(jié)果為0 該標志被置為1 不為0 標志位被置為0) 這里EAX=1 Z標志=1

JE 0101A572 表示有條件跳轉(zhuǎn) 當Z標志=1(也就是EAX=1) 自動跳轉(zhuǎn)到后面指定的0101A572 地址 就會執(zhí)行 move EBX,1

JNE 0101A578 表示有條件跳轉(zhuǎn) 當Z標志=0(也就是EAX!=1) 自動跳轉(zhuǎn)到后面指定的0101A578 地址 就會執(zhí)行 move ECX,1


如果需要調(diào)試 參考如下圖


二。實現(xiàn) 循環(huán)

MOV ECX,4 表示將4立即數(shù) 設(shè)置給ECX寄存器

DEC ECX 將ECX的值 減去1

TEST ECX,ECX TEST指令是將ECX和ECX進去邏輯與 操作 1001&1001一定是自己1001 只有當ECX等于0時 0&0就是0 這個test指令 會修改Z標志

位 如果ECX等0 那么邏輯與 Z標志位就是1 ECX不等于0 Z標志位等于0 所以TEST ECX,ECX可以判斷ECX是否為0

JNE 0101A564 表示有條件跳轉(zhuǎn) 當ECX!=0時 z標志位=0 跳轉(zhuǎn)到0101A564這個位置 繼續(xù)遞減 一直循環(huán)到 ECX=0時 此時z標志位=1

不執(zhí)行跳轉(zhuǎn)循環(huán)結(jié)束


也可以使用 LOOP 跳轉(zhuǎn)的位置來進行循環(huán) 該指令會自動將ECX的值 遞減1 不需要單獨控制ECX遞減 當ECX遞減到0時自動退出循環(huán)

loop


二。實現(xiàn) 函數(shù)調(diào)用

這里需要明白一下函數(shù)調(diào)用的實際過程 是先將 參數(shù)壓入棧中 在c語言中 stdcall 先壓入函數(shù)右邊的參數(shù) 這里假設(shè)有兩個參數(shù)10和20

棧的原理是 先入后出 壓入兩個參數(shù)后 call指令會自動壓入 函數(shù)調(diào)用完成后 下一個執(zhí)行指令的位置

PUSH 10 壓入第一個參數(shù)

PUSH 20 壓入第二個參數(shù)

CALL 0101A56D 調(diào)用函數(shù) 函數(shù)的入口地址是0101A56D 可以查看如下圖片中右下角堆棧的部分 分別壓入了 10,20 以及call后面的一句代碼的地址

0101A568 也就是call完成了執(zhí)行0101A568 這里的代碼

call 0101A56D 會自動跳轉(zhuǎn)到0101A56D 代碼的位置 這里取出棧中(ESP指向棧頂 棧頂是call完成后返回的地址) ESP棧頂+4(第二個參數(shù)) ESP棧頂+8(第一個參數(shù))

retn 8 表示 函數(shù)返回 返回 就會自動跳轉(zhuǎn)到棧頂指向的地址的代碼位置0101A568 就會執(zhí)行 (8這個數(shù) 表示自動將堆棧中兩個參數(shù)的值出棧 拋棄)

jmp 0101A57A


以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持html5模板網(wǎng)。

【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

這篇文章主要介紹了匯編語言 寄存器內(nèi)存訪問原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
這篇文章主要介紹了匯編語言位向量(位映射)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學
這篇文章主要介紹了匯編語言AND指令實現(xiàn)對兩個操作數(shù)進行邏輯(按位)與操作,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面
在匯編語言中,MOV指令是數(shù)據(jù)傳送指令,也是最基本的編程指令,這篇文章主要介紹了匯編語言MOV指令,需要的朋友可以參考下
這篇文章主要介紹了匯編語言中中括號[]作用及l(fā)ea和mov指令的區(qū)別,本文分步驟給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
主站蜘蛛池模板: 免费在线成人网 | 亚洲永久字幕 | 国产一区二区三区四区五区加勒比 | 不卡一区 | 精品一区二区久久久久久久网精 | 黄a在线观看 | 91亚洲国产成人久久精品网站 | 国产视频1区2区 | 日韩在线看片 | 国产成人精品一区二区 | 青青草网 | 免费1区2区3区 | 两性午夜视频 | 人人干人人舔 | 国产精品欧美一区二区三区不卡 | 成人在线观看免费视频 | h片在线观看免费 | 国产精品久久久久久久久久久久 | 亚洲91视频 | 精品久久久久久亚洲综合网 | 国产精品欧美一区二区三区 | 亚洲欧美日韩国产综合 | 日韩av电影在线观看 | 国产色片在线 | 成人免费看电影 | 日韩欧美一区在线 | 国产精品视频一区二区三区四蜜臂 | 久久视频免费看 | 国产一区二区三区免费观看在线 | 亚洲视频在线播放 | 一区久久| 日本又色又爽又黄又高潮 | 中文字幕在线国产 | 人人干人人玩 | 日韩av成人在线观看 | 爱爱小视频 | 亚洲第一天堂无码专区 | 免费在线看a| 国产成人麻豆免费观看 | 精品国产一区二区三区久久 | 天天艹逼网|