飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2888|回复: 1

Delphi程序增加破解难度-初级-[1]

[复制链接]

该用户从未签到

发表于 2005-12-15 02:24:35 | 显示全部楼层 |阅读模式
将加密需要用到的变量全部改成Variant,这样就增加了算法分析的难度。

举例(仅仅是例子):
var
  S : String;
begin
  S := kbGetAdapterAddress(0);//取网卡ID函数
  if S = '00061BD35968' then
    Caption := '正式版'
  else
    Caption := '试用版';
end;

编译后代码为(地址不固定):

0044DF8A    |.  8D55 FC       lea     edx, dword ptr ss:[ebp-4]
0044DF8D    |.  33C0          xor     eax, eax
0044DF8F    |.  E8 9CFCFFFF   call    0044DC30
0044DF94    |.  8B45 FC       mov     eax, dword ptr ss:[ebp-4]
0044DF97    |.  BA E8DF4400   mov     edx, 0044DFE8                              ;  ASCII "00061BD35968"
0044DF9C    |.  E8 5366FBFF   call    004045F4
0044DFA1    |.  75 0E         jnz     short 0044DFB1
0044DFA3    |.  BA 00E04400   mov     edx, 0044E000
0044DFA8    |.  8BC3          mov     eax, ebx
0044DFAA    |.  E8 BDF0FDFF   call    0042D06C
0044DFAF    |.  EB 0C         jmp     short 0044DFBD
0044DFB1    |>  BA 10E04400   mov     edx, 0044E010
0044DFB6    |.  8BC3          mov     eax, ebx
0044DFB8    |.  E8 AFF0FDFF   call    0042D06C
0044DFBD    |>  33C0          xor     eax, eax

如果换成
var
  S : Variant;
begin
  S := kbGetAdapterAddress(0);
  if S = '00061BD35968' then
    Caption := '正式版'
  else
    Caption := '试用版';
end;
编译后代码就变成了
不管是比较还是赋值,都要调用TVariantManager的方法,算法虽然一样,但是增加了分析难度

0044E059    |.  8D55 EC       lea     edx, dword ptr ss:[ebp-14]
0044E05C    |.  33C0          xor     eax, eax
0044E05E    |.  E8 CDFBFFFF   call    0044DC30
0044E063    |.  8B55 EC       mov     edx, dword ptr ss:[ebp-14]
0044E066    |.  8D45 F0       lea     eax, dword ptr ss:[ebp-10]
0044E069    |.  E8 6670FBFF   call    004050D4
0044E06E    |.  8D45 DC       lea     eax, dword ptr ss:[ebp-24]
0044E071    |.  BA DCE04400   mov     edx, 0044E0DC                              ;  ASCII "00061BD35968"
0044E076    |.  E8 5970FBFF   call    004050D4
0044E07B    |.  8D55 DC       lea     edx, dword ptr ss:[ebp-24]
0044E07E    |.  8D45 F0       lea     eax, dword ptr ss:[ebp-10]
0044E081    |.  E8 6E70FBFF   call    004050F4
0044E086    |.  75 0E         jnz     short 0044E096
0044E088    |.  BA F4E04400   mov     edx, 0044E0F4
0044E08D    |.  8BC3          mov     eax, ebx
0044E08F    |.  E8 D8EFFDFF   call    0042D06C
0044E094    |.  EB 0C         jmp     short 0044E0A2
0044E096    |>  BA 04E14400   mov     edx, 0044E104
0044E09B    |.  8BC3          mov     eax, ebx
0044E09D    |.  E8 CAEFFDFF   call    0042D06C
0044E0A2    |>  33C0          xor     eax, eax

蓝色光芒发表于bbs.66h6.com,引用请注明出处
PYG19周年生日快乐!

该用户从未签到

发表于 2005-12-16 20:30:18 | 显示全部楼层
嘿嘿,沙发,学习Delphi程序
PYG19周年生日快乐!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表