stosd 在装配中是如何工作的?
Posted
技术标签:
【中文标题】stosd 在装配中是如何工作的?【英文标题】:How stosd works in assembly? 【发布时间】:2020-07-25 16:45:30 【问题描述】:抱歉这个问题..只是想了解当 EAX 为零时 stosd 在汇编中的工作原理
mov ecx, 41
lea edi, [variable]
xor eax, eax
rep stosd
我正在使用这些说明调试恶意软件,并且在每个 stosd 中,当在转储中跟踪 edi 时,我可以看到 Windows 目录路径。
但是当 EAX 为零且不引用任何变量时,这些目录从哪里来?
【问题讨论】:
rep stosd
是 wmemset(edi, eax, ecx)
- 它只是在您的情况下存储零。但它也会增加 EDI,使其指向缓冲区的末尾。
谢谢 ... @Peter .. 现在我明白了。
【参考方案1】:
您看到指针已经存储在edi
指向的数组中,之前每个stosd
都会用零覆盖它们。
stosd
writes eax
to edi
and increments it by four(假设未设置DF
标志,通常是这种情况)。
那个sn-p相当于memset(variable, 0, 41*4)
。
【讨论】:
以上是关于stosd 在装配中是如何工作的?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Inventor API 和 Python 访问装配体中出现的工作平面
spring学习总结——装配Bean学习三(xml装配bean)