Я хотел бы отредактировать первую инструкцию и изменить ее на 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]
что именно здесь не так? Как сохранить остальную часть кода нетронутой?