ASM内存花指令

14 篇文章 3 订阅
//随便写的混淆指令用于被探测到调试后执行迷惑调试人员,很多实现效率很差心血来潮的话再来改改-_-
_declspec(naked)void jmpFunction(DWORD Memory) {
	__asm {
		mov ebp,esp
		push ebp
		jmp dword ptr ss:[ebp+0x4]
		pop ebp
		retn
	}
}
_declspec(naked)void memoryCopy(void *SourceMemory,void *TargeMemory) {
	__asm {
		mov ebp,esp
		pushad
		mov ecx,0x4096
		mov edx,dword ptr ss:[ebp+0x4]
		mov eax,dword ptr ss:[ebp+0x4]
		mov ebx,dword ptr ss:[ebp+0x8]
		copyMain:
		mov edi,dword ptr ds:[ebx]
		mov dword ptr ds:[edx],edi
		inc edx
		inc ebx
		dec ecx
		test ecx,ecx
		jnz copyMain
		popad
		retn
	}
}
int main() {	
	BYTE* memoryByte = (BYTE *)malloc(0x4096);
	BYTE CompilationData[16] = {
	0xEB,0x59,0x5F,0x55,0x5D,
	0xFF,0x74,0x75,0x8B,0xC3,
	0xCC,0x01,0x00,0x33,0xEB,0xE8
	};
	BYTE shamCompilation[4096] = { 0x0 };
	DWORD shamMemory = (DWORD)&shamCompilation;
	for (int i = 0; i <4096; i++) {
		shamCompilation[i] = CompilationData[rand() % 16];
	}
	memoryCopy(memoryByte,shamCompilation);
	jmpFunction(shamMemory);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虚构之人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值