耽美重生文腐书网:关于汇编编码

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/05 04:22:45
我修改内存代码,E9 3C1F4800 使其变成JMP 00481F3C,然后我用ICE察看却是JMP C0418053
???

E9 是段内相对转移指令, 后面跟的是个相对当前指令的下一条指令的地址的偏移量, 不是目标地址的绝对值. 即转移去的目的地址是该指令中的偏移值再加上本转移指令的下一条指令的地址, 也就是说, 如果要 JMP 00481F3C, 这条指令在不同的地方是不同的. 比如:
00401000 E9370F0800 JMP 00481F3C
00401005 ...
因为在win32下e9指令占5个字节, 所以偏移量=目的地址-(转移指令地址+5)=00481f3c-(00401000+5)=00080f37, 输入时LSB在前,MSB在后就是了.

重新启动再看看~~