能力值:
(RANK:410 )
|
-
-
2 楼
假如下面那段代码是在自己程序中的代码。因为pop ebp的地址也是00401005,这时sub ebp,00401005的结果ebp就是等于0了。不过现在假如将这段编译好的二进制代码拷贝到00402000处运行,你想会怎样?
00401000 call 00401005 ; call nStart
00401005 pop ebp
00401006 sub ebp, 00401005 ; sub ebp,offset nStart
假如将这段代码拷贝到00402000处运行,就会变成如下面这样,你还认为是没用的吗?
00402000 call 00402005
00402005 pop ebp ; ebp == 00402005
00402006 sub ebp, 00401005 ; 注nStart的标号地址在被编译为二进制后就是固定的00401005了,不会再变了,这时你认为ebp还是等于0?
|
能力值:
(RANK:10 )
|
-
-
3 楼
哦,谢谢小虾版的解答,我原来一直以为编号的地址也会随之改变呢
|
|
|