一个游戏客户端文件的字节加解密代码,我花1000元请人解的,存在这,以后应该用得到。...

ExpandedBlockStart.gif 代码
procedure  EncryptMemory(Data: Pointer; Size: Cardinal);
  
procedure  EncryptData( var  A, B: DWORD);
  
var
    _Constant, i: DWORD;
  
begin
    _Constant :
=   0 ;
    
for  i : =   0   to   31   do
    
begin
      _Constant :
=  _Constant  -  $61C88647;
      A :
=  A  +  (((B  shr   5 +  $2B4805C2)  xor  ((B  shl   4 +  $98DFF541)  xor  (B  +  _Constant));
      B :
=  B  +  (((A  shr   5 +  $D8144BA5)  xor  ((A  shl   4 +  $01AF979B)  xor  (A  +  _Constant));
    
end ;
  
end ;

var
  i: Integer;
  _Data1, _Data2: Dword;
begin
  
for  I : =   0   to  (Size  div   8 -   1   do
  
begin
    _Data1 :
=  Pdword(dword(Data)  +  (i  *   8 ))^;
    _Data2 :
=  Pdword(dword(Data)  +  (i  *   8 +   4 )^;
    EncryptData(_Data1, _Data2);
    Pdword(dword(Data) 
+  (i  *   8 ))^ : =  _Data1;
    Pdword(dword(Data) 
+  (i  *   8 +   4 )^ : =  _Data2;
  
end ;
end ;      

procedure  DecryptMemory(Data: Pointer; Size: Cardinal);
  
procedure  DecryptData( var  A, B: DWORD);
  
var
    _Constant, i: DWORD;
  
begin
    _Constant :
=  $C6EF3720;
    
for  i : =   0   to   31   do
    
begin
      B :
=  B  -  (((A  shr   5 +  $D8144BA5)  xor  ((A  shl   4 +  $01AF979B)  xor  (A  +  _Constant));
      A :
=  A  -  (((B  shr   5 +  $2B4805C2)  xor  ((B  shl   4 +  $98DFF541)  xor  (B  +  _Constant));
      _Constant :
=  _Constant  +  $61C88647;
    
end ;
  
end ;
var
  i: Integer;
  _Data1, _Data2: Dword;
begin
  
for  I : =   0   to  (Size  div   8 -   1   do
  
begin
    _Data1 :
=  Pdword(dword(Data)  +  (i  *   8 ))^;
    _Data2 :
=  Pdword(dword(Data)  +  (i  *   8 +   4 )^;
    DecryptData(_Data1, _Data2);
    Pdword(dword(Data) 
+  (i  *   8 ))^ : =  _Data1;
    Pdword(dword(Data) 
+  (i  *   8 +   4 )^ : =  _Data2;
  
end ;
end ;



// 使用
procedure  TfrmMain.btn1Click(Sender: TObject);
var
  memStream: TMemoryStream;
begin
  memStream :
=  TMemoryStream.Create;
  memStream.LoadFromFile(
' .\732 ' );
  DecryptMemory(memStream.Memory, memStream.Size);
  memStream.SaveToFile(
' .\732_u ' );
  FreeAndNil(memStream);
end ;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值