最近开发壳但是我壳主要安全不在题目上写所以就公开在delphi中实现代码自我加密解密清除思路方法高手就不用看了很简单
首先我们要定义几个过程
procedure EncryptCode(Badress,size,key:cardinal);//Badress为加密起始地址size为加密大小,key为加密密钥
var
CTemp:cardinal;
begin
Virtulloc(poer(Badress),Size,Page_readwrite,Ctemp);//名级不起来拉
asm
push eax;
push ebx;
push ecx;
mov eax,badress;
mov ebx,size;
mov ecx,key;
xor dword ptr ds:[eax],ecx;
add eax,4;
dec ebx;
db $75,fc;//这里可能不正确反正向xor dword ptr ds:[eax],ecx;跳就可以拉
pop ecx;
pop ebx;
pop eax;
end;
end;
加密和解密是同段代码
代码清除
procedure CleanCode(Badress,size,key:cardinal);//Badress为加密起始地址size为加密大小,key为加密密钥
var
CTemp:cardinal;
begin
Virtulloc(poer(Badress),Size,Page_readwrite,Ctemp);//名级不起来拉
asm
push eax;
push ebx;
push ecx;
mov eax,badress;
mov ebx,size;
mov ecx,key;
xor dword ptr ds:[eax],0;
add eax,1;
dec ebx;
db $75,fc;//这里可能不正确反正向xor dword ptr ds:[eax],ecx;跳就可以拉
pop ecx;
pop ebx;
pop eax;
end;
end;
现在就可以拉思路方法很简单但是要注意是不能让加密代码加密自己过程内到当然对于这个badress我们用
call XXXXXXXX;
pop eax;
搞定
当然还有很多要做我就不多说拉相信大家都知道
最新评论