利用smc来对shellcode加“壳”

代码

void main()
{
    
    
	_asm{
    
    
		add eax,len//越过解密部分,直接到shellcode的开始地址,len为解密部分代码的长度
		xor ecx,ecx
decode_loop:
		mov bl,[eax + ecx]
		xor bl,key//key为秘钥
		mov [eax+ecx],bi//把shellcode中的每一位进行解密
		inc ecx
		cmp bl,0x90//在最后放上一位0x90作为shellcode的结束的标志
		jne decode_loop
	}
}

解密之前事先可以写一个异或脚本,对shellcode的机器码进行加密,比如下面这种

for(i = 0;i<len;i++)
		output[i] = input[i] ^ key;

然后再把上面的解密代码放入shellcode运行之前,就能起到自解密的作用。
当然这些都是最简单的操作,也能加入更复杂的算法来对shellcode进行加“壳”。

猜你喜欢

转载自blog.csdn.net/Misaka10046/article/details/108663632