zoukankan      html  css  js  c++  java
  • 代码自我清除 自我加密、解密的实现

    最近开发壳,但我的壳主要的安全不在题目上写的,所以就公开在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;
    搞定。
    当然还有很多要做的我就不多说拉。相信大家都知道。
    .只有想不到,没有做不到,.国际互联网接入
     
  • 相关阅读:
    如何在Element 使用正则表达式校验
    Vs Code 微信小程序 神兵利器合集
    分享CSS公共类库(能在项目快捷使用CSS类)
    Element+Axios上传图片 OR 文件
    两种简洁的数组对象去重姿势
    VScode 格式化代码保存时使用ESlint修复代码
    如何在linux上部署vue项目
    Vue 2.x 3.x 配置项目开发环境跟线上环境
    在Vue文件中引入外部URL链接
    博客目录
  • 原文地址:https://www.cnblogs.com/blogpro/p/11426751.html
Copyright © 2011-2022 走看看