2014-07-25 34 views
-1

我有以下代碼: enter image description here更改裝配操作碼

我使用IDA PRO。我試圖修補這個代碼,並更改線路 MOV EAX,[RAX + 10H]爲MOV EAX,3 MOV EAX,3是B8 03 00

我這樣做的十六進制編輯器,當我代碼從

8B 40 10 8D 48 01 41 89 4B 10 EB 05 B8 01 00 00

更改爲

B8 03 00 8D 48 01 41 89 4B 10 EB 05 B8 01 00 00

我得到B8 03 00 8D 48在同一行,這是一個不同的命令比我的意圖。

我在做什麼錯?我怎麼能做這個改變?

enter image description here

+2

這是一個64位程序,您的耳朵之間的彙編程序以16位模式運行。 –

+0

它是64位,但我不明白你的回覆。我應該怎樣做才能使它「mov eax,3」而不是當前的代碼? – dandan

回答

4

這些是在64位模式中的機器代碼mov *a*, 3

mov eax, 3: b8 03 00 00 00 
mov ax, 3: 66 b8 03 00 
mov al, 3: b0 03 

正如你可以看到mov eax, 3需要字節。你可以嘗試:

6a 03 push 3 
58  pop rax 

但是你會遇到下面的指令lea ecx, [rax+1]麻煩!

+0

+1,但刪除最後一行。以下'lea'指令不解除引用。 – user1354557