1
我想編輯的第一個指令並將其更改爲jmp 100h
(給予或採取幾個字節) 的mov edi,edi
需要2個字節,jmp 100h
需要5個字節(正確我如果我錯了)二進制補丁 - 對矯正現有的指令,並保持機器代碼比對
我編輯機器碼爲jmp 100h
並添加一個nop
將其舍入爲6個字節。
.text:08048DD5 mov edi, edi
.text:08048DD7 mov edi, edi
.text:08048DD9 mov edi, edi
.text:08048DDB mov edi, edi
.text:08048DDD mov edi, edi
.text:08048DDF mov edi, edi
.text:08048DE1 mov edi, edi
.text:08048DE3 mov edi, edi
.text:08048DE5 add [ebp+var_C], 1 ; Add
.text:08048DE9 mov eax, offset format ; "Message %d: %s"
.text:08048DEE lea edx, [ebp+s] ; Load Effective Address
.text:08048DF4 mov [esp+8], edx
的結果是這樣的:
.text:08048DD5 jmp loc_8048D41
.text:08048DD5 ; ---------------------------------------------------------------------------
.text:08048DDA db 90h
.text:08048DDB db 89h, 0FFh
.text:08048DDD db 89h, 0FFh
.text:08048DDF db 89h, 0FFh
.text:08048DE1 db 89h, 0FFh
.text:08048DE3 db 89h, 0FFh
.text:08048DE5 ; ---------------------------------------------------------------------------
.text:08048DE5 add [ebp+var_C], 1
.text:08048DE9 mov eax, offset aMessageDS ; "Message %d: %s"
.text:08048DEE lea edx, [ebp+s]
.text:08048DF4 mov [esp+8], edx
.text:08048DF8 mov edx, [ebp+var_C]
究竟是什麼出了問題嗎?我如何保持代碼的其餘部分不變?
'90h'是'nop',而'89h,0FFh'是'mov edi,edi',所以是的,它的工作正常。 –