刚刚看到一个朋友写的病毒分析报告中,有这样一行00409917 . E9 D2010000 jmp 00409AEE ;这个jmp跳到后面 一个地方 然后又call了回来 应该是为了获得call函数下条指令的地址吧 ;这句话大概是什么意思,我对汇编懂得不多,新手入门
3 回答
烙印99
TA贡献1829条经验 获得超13个赞
汇编语言中CALL指令调用一个子程序,CPU执行call指令,进行两步操作:
(1)将当前的 IP 或 CS和IP 压入栈中;
(2)转移到紧跟的标号行地址执行程序。
比如:
CALL InputCheck
........
InputCheck:
........
其处理步骤如下:
(1) (sp) = (sp) – 2
((ss) ×16+(sp)) = (CS)
(sp) = (sp) – 2
((ss) ×16+(sp)) = (IP)
(2) (CS) = InputCheck所在的段地址
(IP) = InputCheck所在的偏移地址
冉冉说
TA贡献1877条经验 获得超1个赞
call 标号 ;转移到标号处,但在转移之前将ip/cs和ip入栈
;即push ip jmp near ptr 标号/push cs push ip jmp far ptr 标号
添加回答
举报
0/150
提交
取消
