一般可疑交易是指:关于《自己动手写OS》中的memcpy

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/02 12:09:15
一段代码:
push LenFoo
push OffsetFoo
push ProcFoo
call MemCpy
add esp,12 ; 清堆栈
然后memcpy中定义:
MemCpy:
push ebp
mov ebp, esp

push esi
push edi
push ecx

mov edi, [ebp + 8] ; Destination
mov esi, [ebp + 12] ; Source
mov ecx, [ebp + 16] ; Counter
.1:
cmp ecx, 0 ; 判断计数器
jz .2 ; 计数器为零时跳出

mov al, [ds:esi] ; ┓
inc esi ; ┃
; ┣ 逐字节移动
mov byte [es:edi], al ; ┃
inc edi ; ┛

dec ecx ; 计数器减一
jmp .1 ; 循环
.2:
mov eax, [ebp + 8] ; 返回值

pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp

ret ; 函数结束,返回
; MemCpy 结束-------------------------------------------------------------

到底是要把什么东西传递到哪里啊,请大虾明示!!!

将[ebp + 16]个字节的内容,由[ebp + 12]拷贝到[ebp + 8]。

从主程序看是将OffsetFoo指向的内容拷贝到ProcFoo指向的地址处,长度为LenFoo。