機械碼,又稱機器碼 轉

2022-10-11 14:57:08 字數 920 閱讀 4583

一、搞免殺修改特徵碼需要熟練掌握的全部彙編知識

一.機械碼,又稱機器碼.

ultraedit開啟,編輯exe檔案時你會看到

許許多多的由0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f組成的數碼,這些數碼

就是機器碼.

修改程式時必須通過修改機器碼來修改exe檔案.

二.需要熟練掌握的全部彙編知識(只有這麼多)

不大容易理解,可先強行背住,混個臉兒熟,以後慢慢的就理解了

cmp a,b 比較a與b

mov a,b 把b的值送給a

ret 返回主程式

nop 無作用,英文「no operation」的簡寫,意思是「do nothing」(機器碼90)***機器碼的含義參看上面

(解釋:ultraedit開啟編輯exe檔案時你看到90,等同於彙編語句nop)

call 呼叫子程式

je 或jz 若相等則跳(機器碼74 或0f84)

jne或jnz 若不相等則跳(機器碼75或0f85)

jmp 無條件跳(機器碼eb)

jb 若小於則跳

ja 若大於則跳

jg 若大於則跳

jge 若大於等於則跳

jl 若小於則跳

jle 若小於等於則跳

pop 出棧

push 壓棧

三.常見修改(機器碼)

74=>75 74=>90 74=>eb

75=>74 75=>90 75=>eb

jnz->nop

75->90(相應的機器碼修改)

jnz -> jmp

75 -> eb(相應的機器碼修改)

jnz -> jz

75->74 (正常) 0f 85 -> 0f 84(特殊情況下,有時,相應的機器碼修改)

四.兩種不同情況的不同修改方法

機器碼轉彙編指令

在用logisim初步畫完cpu電路後,配合educoder除錯電路。提交 到educoder後,後台會檢測錯誤資訊,根據報錯資訊中的週期數或者pc值,可以找到錯誤的指令機器碼。但是機器碼太抽象,因此使用下面的程式將指令機器碼翻譯成指令名稱,進而繼續除錯電路。32位mips指令翻譯器 輸入一條16進...

機器數機器碼

定點數的機器碼中零的表示形式 正數的補碼就是其本身,負數的補碼其最高位 符號位 為1,其餘各位是對原碼取反再加1。所以,對於8位二進位制數,正0的原碼 補碼就是00000000,負數的原碼是10000000,反碼為11111111,被碼是反碼加1,就是 1 00000000。其中 1 是超出8位的進...

ARM機器碼分析

我們編寫的匯程式設計序還是不夠底層,cpu都是對機器碼進行操作的,所以還需要用彙編器將彙編 轉換成機器碼才能被cpu處理。下面舉幾個例子來說說分析arm機器碼的方法。對編譯連線之後得到的elf進行反彙編 arm linux objdump 檢視得到的反彙編 這裡如果想同時看到彙編 和機器碼,在編譯的...