日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

花指令入门操作实践

發(fā)布時間:2025/4/14 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 花指令入门操作实践 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

根據逆向相關資料;下面有2段ASM代碼;

1;

start_:xor eax, eaxtest eax, eaxjz label1jnz label1db 0E8h ;垃圾指令 label1:xor eax, 3add eax, 4xor eax, 5ret

2;

start_:xor eax, eaxtest eax, eaxjz label1jnz label0 ;指向無效的跳轉指令 label0:db 0E8h label1:xor eax, 3add eax, 4xor eax, 5ret end start_

代碼1添加了垃圾指令;

代碼2添加了更垃圾一些,一個指向無效地址的跳轉指令;

會迷惑反匯編器;導致反匯編出錯;

?

在反匯編的過程中,存在幾個關鍵問題;代碼與數據的區(qū)分,匯編指令長度,多種多樣的間接跳轉實現形式;
反匯編算法必須恰當處理,保證反匯編結果的正確性;
主要的兩類反匯編算法是:線性掃描Linear Sweep,遞歸行進Recursive traversal;

?

下面先來鼓搗一下;把這兩段代碼構建為exe文件;再用反匯編器打開;看有沒有干擾的效果;

本機是win10;安裝有masm32;

如果masm32環(huán)境變量沒搞的話;先set path=g:\masm32\bin;%path%;

先把代碼直接存為asm,然后ml;

出現兩個錯誤:

1.asm(1) : error A2034: must be in segment block
1.asm(2) : error A2085: instruction or register not accepted in current CPU mode

那就還是要加以下幾句在頭部:

?? ??? ?.386
?? ??? ?.model flat,stdcall
?? ??? ?option casemap:none

?? ??? ?.code

?

因為代碼看上去像是DOS匯編;執(zhí)行如下;

ml /c 1.asm

link 1.obj

提示錯誤:

1.obj : warning LNK4033: converting object format from OMF to COFF
LINK : fatal error LNK1561: entry point must be defined

試驗幾次后;還是要如下圖;才能構建出exe;

ml要帶 /c /coff;link要帶 /subsystem:windows;

然后1.exe,2.exe構建出來了;

根據逆向資料;1.exe會被W32DASM錯誤識別;

W32DASM在win10下使用;要先搞一下兼容性;

打開1.exe,看一下,果然反匯編錯誤;迷惑到了;

1.exe會被ollydbg正確識別;如下;加的??db 0E8h ? ;垃圾指令 這條,被識別;

根據逆向相關資料;代碼2會迷惑到ollydbg;打開看一下;

但是沒有迷惑;正確識別了;應該是工具進步了;上面用的是ollydbg 2.x;

然后用ollydbg 1.x打開2.exe;識別錯了;如下;

把這個花指令放到VC++嵌入匯編里面運行看看;

不能運行;嵌入匯編只能運行匯編代碼塊;不能帶db和標號;

這兩個exe不要運行它;只是用它看一下花的效果;

注意1.exe和2.exe被ollydbg反匯編后,只有00401006地址處略有差別;

總結

以上是生活随笔為你收集整理的花指令入门操作实践的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。