24-移动或复制shellcode总结
一、RtlMoveMemory
void RtlMoveMemory(
void* Destination,
const void* Source,
size_t Length
);void RtlMoveMemory(
void* Destination,
const void* Source,
size_t Length
);void * memcpy ( void * destination, const void * source, size_t num );BOOL mymemcpy(void* dst, void* src, SIZE_T size) {
// 参数有效性校验
if (!dst || !src || size == 0) {
SetLastError(ERROR_INVALID_PARAMETER);
return FALSE;
}
// 转换成BYTE* 类型的指针,这样可以按字节复制
PBYTE Dst = (PBYTE)dst;
PBYTE Src = (PBYTE)src;
// 逐字节复制
for (size_t i = 0; i < size; ++i) {
Dst[i] = Src[i];
}
return TRUE;
}