内存复制

下列代码显示了怎么对shellcode进行内存复制,只弹出了一个dos框,只是简单的了解一下内存复制,在此不做过多解释,欢迎留言:

#include "windows.h"
#include "stdio.h"
char shellcode[]="\x55\x8B\xEC\x33\xC0\x68\x65\x78\x65\x3F\x68\x63\x6D\x64\x2E\x89\x44\x24\x07\x8B\xDC\x53\xBB\xAD\x23\x86\x7C\xFF\xD3\x33\xDB\x53\xBB\xFA\xCA\x81\x7C\xFF\xD3\x8B\xE5\x5D\xc3";
int main(int argc, char* argv[])
{
    HINSTANCE libHandle;
	char *dll="kernel.dll";
    libHandle=LoadLibrary(dll);
	//WinExec("cmd.exe",5);
	//ExitProcess(0);
	__asm
	{
		lea eax,shellcode
New:	push eax
		call eax
		pop eax
		xor edx,edx

chong:	mov bl, [eax+edx]
		mov [eax+edx+42],bl
		mov [eax+edx],0x90
		inc edx
		cmp edx,42
		je next
		jmp chong
next:
		add eax,42	
		jmp New
	}
	return 0;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在C++中,继承关系中父类并不会直接将自身内存复制给子类。子类对象会包含父类对象的成员,并且可以访问父类的成员函数和成员变量,但是子类对象并不是父类对象的复制。 当创建一个子类对象时,子类对象会分配自己的内存空间,并包含父类对象的成员。子类对象的内存布局中,通常会先包含父类的成员,然后再添加子类自己的成员。这样,子类对象可以直接访问父类的成员。 下面是一个简单的示例,演示了继承关系中子类对象包含父类对象的成员: ```cpp #include <iostream> class Parent { public: int parentData; void parentMethod() { std::cout << "Parent method" << std::endl; } }; class Child : public Parent { public: int childData; void childMethod() { std::cout << "Child method" << std::endl; } }; int main() { Child child; child.parentData = 10; child.childData = 20; std::cout << "Parent data: " << child.parentData << std::endl; std::cout << "Child data: " << child.childData << std::endl; child.parentMethod(); child.childMethod(); return 0; } ``` 在上述代码中,`Child`类继承自`Parent`类。创建`Child`类的对象`child`时,它会分配自己的内存空间,并包含`Parent`类的成员`parentData`,以及`Child`类自己的成员`childData`。通过对象`child`可以直接访问父类的成员函数`parentMethod()`和子类的成员函数`childMethod()`。 需要注意的是,由于子类对象中包含父类对象的成员,因此在使用继承关系时需要注意内存布局和访问权限的相关问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值