mov指令问题求助?

daoge2010 2010-11-29 05:17:04
请问:mov edx,dword ptr ss:[ebp-60]可以转换成什么等价语句?还有它与lea edx,dword ptr ss:[ebp-60]有什么区别,谢谢!
...全文
248 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
chzhn 2010-12-20
  • 打赏
  • 举报
回复
mov edx,dword ptr ss:[ebp-60] => edx = *(ebp-60)
lea edx,dword ptr ss:[ebp-60] => edx = ebp-60
daoge2010 2010-12-01
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 nanlingcg 的回复:]
0053065F 8B55 A0 mov edx,dword ptr ss:[ebp-60]
改: mov dex,dword ptr ss:[eax-4]
[/Quote]
还有mov edx,dword ptr ss:[eax-4]占4个字节,比mov edx,dword ptr ss:[ebp-60]多占一个字节啊!
daoge2010 2010-12-01
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 nanlingcg 的回复:]
0053065F 8B55 A0 mov edx,dword ptr ss:[ebp-60]
改: mov dex,dword ptr ss:[eax-4]
[/Quote]
谢谢,能跟我解释下为什么这样改吗,非常感谢你!
nanlingcg 2010-12-01
  • 打赏
  • 举报
回复
0053065F 8B55 A0 mov edx,dword ptr ss:[ebp-60]
改: mov dex,dword ptr ss:[eax-4]
daoge2010 2010-12-01
  • 打赏
  • 举报
回复
谢谢楼上的各位,现在情况是这样的,我有个程序被卡巴定义为病毒,我查特征码为00530660处
00530657 E8 B48AEDFF call test1.00409110
0053065C 8D45 A4 lea eax,dword ptr ss:[ebp-5C]
0053065F 8B55 A0 mov edx,dword ptr ss:[ebp-60]
00530662 E8 FD46EDFF call test1.00404D64

即0053065F 8B55 A0 mov edx,dword ptr ss:[ebp-60]

想问大家该怎么改成能不被杀,
0053065C 8D45 A4 lea eax,dword ptr ss:[ebp-5C]
0053065F 8B55 A0 mov edx,dword ptr ss:[ebp-60]

这两句我换了位置后还是被杀!谢谢!




lelec 2010-11-29
  • 打赏
  • 举报
回复
貌似
mov 是数据传送指令
lea 是有效地址传送指令
nanlingcg 2010-11-29
  • 打赏
  • 举报
回复
[Quote=引用楼主 daoge2010 的回复:]
请问:mov edx,dword ptr ss:[ebp-60]可以转换成什么等价语句?还有它与lea edx,dword ptr ss:[ebp-60]有什么区别,谢谢!
[/Quote]
二者是有区别的:
mov edx,dword ptr ss:[ebp-60]
是取ss:[ebp-60]的值进EDX,就是说如果ESP=160,mov edx,dword ptr ss:[ebp-60]就相当于MOV EDX,SS:[100]
而lea edx,dword ptr ss:[ebp-60]是取偏移地址进EDX,如果ESP=160,lea edx,dword ptr ss:[ebp-60]就相当于MOV EDX,100

OD反汇编出来的代码就那样...

mov edx,dword ptr ss:[ebp-60]可以转换成什么等价语句?
不大好等价了,如果EBP是个固定数倒可以改直接寻址,但EBP是固定数的可能性不是很大!



masmaster 2010-11-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 daoge2010 的回复:]
引用 1 楼 masmaster 的回复:
如果是16位的话,mov和lea还是有区别的,因为不能用dx作为寄存器间接寻址内存单元。而32位代码的话,8个通用寄存器都可以用于寄存器间接寻址。

我是用OD打开看的。那也就是说这两句是一样的意思?
还有mov edx,dword ptr ss:[ebp-60]还可以用什么等价的语句替换吗?
[/Quote]
是不是一个意思, 我想, 还是要看上下文吧?
masmaster 2010-11-29
  • 打赏
  • 举报
回复
mov edx,dword ptr ss:[ebp-60] 也可以写出 mov edx,[ebp-60] 吧。
因为edx本身就是32位长度,这里没有必要用段超越吧
daoge2010 2010-11-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 masmaster 的回复:]
如果是16位的话,mov和lea还是有区别的,因为不能用dx作为寄存器间接寻址内存单元。而32位代码的话,8个通用寄存器都可以用于寄存器间接寻址。
[/Quote]
我是用OD打开看的。那也就是说这两句是一样的意思?
还有mov edx,dword ptr ss:[ebp-60]还可以用什么等价的语句替换吗?
masmaster 2010-11-29
  • 打赏
  • 举报
回复
如果是16位的话,mov和lea还是有区别的,因为不能用dx作为寄存器间接寻址内存单元。而32位代码的话,8个通用寄存器都可以用于寄存器间接寻址。

21,499

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧