mack1983 发表于 2014-1-1 02:50:16

把s1至s2之间的代码写入0:200这段内存,然后修改向量表7c的地址为0:200,代码如下,

把s1至s2之间的代码写入0:200这段内存,然后修改向量表7c的地址为0:200,代码如下,
assume cs:code
code segment
start:
mov ax,cs
mov ds,ax
mov si,offset s1
mov ax,0
mov es,ax
mov di,200h
mov cx,offset s2-offset s1
cld
movsb

mov ax,0
mov ds,ax
mov word ptr es:,200h
mov word ptr es:,0
mov ax,4c00h
int 21
    s1:
mul ax
iret
s2:
nop

code ends
end start

结果我用-u 0:200查到的内容跟本就不是
mul ax
iret
这两条指令,这是怎么回事,求解~~


ilboyvm 发表于 2014-11-1 19:02:48

还没学到这里

我是小鱼丝 发表于 2014-12-2 14:27:19

感谢分享!!

lqjstc 发表于 2014-12-4 17:48:16

目测是cld后面那行错掉了。正确的应该是rep movsb,而你写成了movsb
页: [1]
查看完整版本: 把s1至s2之间的代码写入0:200这段内存,然后修改向量表7c的地址为0:200,代码如下,