Как stosd работает в сборке? - PullRequest
0 голосов
/ 13 апреля 2020

Извините за этот вопрос ... просто хотел понять, как stosd работает в сборке, когда EAX равен нулю

mov ecx, 41
lea edi, [variable]
xor eax, eax
rep stosd

Я отлаживал вредоносное ПО с помощью этих инструкций и с каждым stosd я могу видеть windows каталоги пути идут, когда следуют за edi в дампе.

Но откуда эти каталоги приходят, когда EAX равен нулю и не ссылается ни на какую переменную?

1 Ответ

2 голосов
/ 13 апреля 2020

Вы видите, что указатели уже хранятся в массиве, указанном edi, перед , каждый stosd заменяет их нулями.

stosd записывает eax в edi и увеличивает его на четыре (при условии, что флаг DF не установлен, что обычно имеет место).

Этот фрагмент эквивалентен memset(variable, 0, 41*4).

...