码迷,mamicode.com
首页 > 其他好文 > 详细

代码自我清除 自我加密、解密的实现

时间:2019-08-28 22:42:28      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:enc   code   调用   encrypt   联网   res   代码   procedure   pointer   

最近开发壳,但我的壳主要的安全不在题目上写的,所以就公开在delphi中实现代码自我加密解密清除的方法,高手就不用看了,很简单的。
首先我们要定义几个过程,
procedure EncryptCode(Badress,size,key:cardinal);//Badress为加密起始地址,size为加密大小,key为加密密钥
var
CTemp:cardinal;
begin
Virtulloc(pointer(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(pointer(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;
搞定。
当然还有很多要做的我就不多说拉。相信大家都知道。
.只有想不到,没有做不到,.国际互联网接入
 

代码自我清除 自我加密、解密的实现

标签:enc   code   调用   encrypt   联网   res   代码   procedure   pointer   

原文地址:https://www.cnblogs.com/blogpro/p/11426751.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!