- UID
 - 48735
 
 注册时间2008-4-1
阅读权限8
最后登录1970-1-1
初入江湖 
  
 
 
 
该用户从未签到  
 | 
 
佳巧仓库管理系统 3.2 网络版 算法注册机【论坛里以前有此机下载,不过有错,请大大修正下错误。附破文参考。】 
 
 
 
------------------------------------------------------------------------------------------------------------------------------------------------------------------- 
 
 
佳巧仓库管理系统 算法分析 
【文章标题】: 新手请进 佳巧仓库管理系统 算法分析 
【文章作者】: KAN-LI 
【作者邮箱】: [email protected] 
【作者QQ号】: 591258070 
【软件名称】: 佳巧仓库管理系统 3.2 
【软件大小】: 不大不小 
【下载地址】: http://www.onlinedown.net/soft/42016.htm 
【加壳方式】: 作者懒 
【保护方式】: 无 
【编写语言】: Borland Delphi 6.0 - 7.0 
【使用工具】: OD 1。1 
【爱作平台】: WINXP SP2 
【软件介绍】: 我都不知道 
【作者声明】: 只是感兴趣,没有其他目的 
-------------------------------------------------------------------------------- 
【详细过程】 
  使用万能断点断下后,ALT+F9 返回 
   
  00786704  |.  E8 B70AF9FF   CALL Storage.007171C0 
  00786709  |.  8B45 F4       MOV EAX,DWORD PTR SS:[EBP-C]      ;  机器码 
  0078670C  |.  8D55 F8       LEA EDX,DWORD PTR SS:[EBP-8] 
  0078670F  |.  E8 A00BF9FF   CALL Storage.007172B4             ;  关键 CALL 
  00786714  |.  8B55 F8       MOV EDX,DWORD PTR SS:[EBP-8] 
  00786717  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4] 
  0078671A  |.  E8 A5EBC7FF   CALL Storage.004052C4 
  0078671F  |.  75 49         JNZ SHORT Storage.0078676A        ;  关键跳转 F7 进入 
  __________________________________________________________________________________________________________ 
    
  F7 进入 0078671F 后,省略 没用代码到下面 
   
  007172C8  |.  8945 FC       MOV DWORD PTR SS:[EBP-4],EAX      ;  机器码 
  007172CB  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4] 
  007172CE  |.  E8 95E0CEFF   CALL Storage.00405368 
  007172D3  |.  33C0          XOR EAX,EAX 
  007172D5  |.  55            PUSH EBP 
  007172D6  |.  68 A2737100   PUSH Storage.007173A2 
  007172DB  |.  64:FF30       PUSH DWORD PTR FS:[EAX] 
  007172DE  |.  64:8920       MOV DWORD PTR FS:[EAX],ESP 
  007172E1  |.  C745 E8 00000>MOV DWORD PTR SS:[EBP-18],0 
  007172E8  |.  C745 EC 00000>MOV DWORD PTR SS:[EBP-14],0 
  007172EF  |.  C745 F0 00000>MOV DWORD PTR SS:[EBP-10],0 
  007172F6  |.  C745 F4 00000>MOV DWORD PTR SS:[EBP-C],0 
  007172FD  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4] 
  00717300  |.  E8 73DECEFF   CALL Storage.00405178 
  00717305  |.  8BF0          MOV ESI,EAX 
  00717307  |.  85F6          TEST ESI,ESI 
  00717309  |.  7E 40         JLE SHORT Storage.0071734B 
  0071730B  |.  B9 01000000   MOV ECX,1 
  00717310  |>  8B45 FC       /MOV EAX,DWORD PTR SS:[EBP-4] 
  00717313  |.  8A5C08 FF     |MOV BL,BYTE PTR DS:[EAX+ECX-1]   ;  机器码字符传入 
  00717317  |.  8BFB          |MOV EDI,EBX 
  00717319  |.  81E7 FF000000 |AND EDI,0FF                      ;  EDI 与 0xFF 做 逻辑与运算 
  0071731F  |.  8BC7          |MOV EAX,EDI                      ;  其实上面几步是把数字的 ASCII 码送入 EAX 
  00717321  |.  C1E0 04       |SHL EAX,4                        ;  EAX * 16 
  00717324  |.  2BC7          |SUB EAX,EDI                      ;  忘恩负义啊 ,EAX 的值是 EDI 给的 减去 
  00717326  |.  F7E9          |IMUL ECX                         ;  乘以循环次数 
  00717328  |.  99            |CDQ                              ;  抗展,EDX 清0 
  00717329  |.  0345 F0       |ADD EAX,DWORD PTR SS:[EBP-10]    ;  这里与上次的数值相加 
  0071732C  |.  1355 F4       |ADC EDX,DWORD PTR SS:[EBP-C] 
  0071732F  |.  8945 F0       |MOV DWORD PTR SS:[EBP-10],EAX    ;  循环最后一次的时候的数据将产生第一段 注册码  
  00717332  |.  8955 F4       |MOV DWORD PTR SS:[EBP-C],EDX 
  00717335  |.  6BC7 0B       |IMUL EAX,EDI,0B                  ;  EDI * 11 结果送入 EAX 
  00717338  |.  F7E9          |IMUL ECX                         ;  EAX * 循环次数 
  0071733A  |.  99            |CDQ 
  0071733B  |.  0345 E8       |ADD EAX,DWORD PTR SS:[EBP-18]    ;  上次的数据相加 
  0071733E  |.  1355 EC       |ADC EDX,DWORD PTR SS:[EBP-14] 
  00717341  |.  8945 E8       |MOV DWORD PTR SS:[EBP-18],EAX    ;  循环最后一次的时候的数据将产生第二段 注册码  
  00717344  |.  8955 EC       |MOV DWORD PTR SS:[EBP-14],EDX 
  00717347  |.  41            |INC ECX                          ;  循环次数加一 
  00717348  |.  4E            |DEC ESI 
  00717349  |.^ 75 C5         \JNZ SHORT Storage.00717310 
   
   
   
   
   
-------------------------------------------------------------------------------- 
【经验总结】 
  软件加密的简单程度,超出你的预算,没什么好说的,贴上 C 语言注册机 
   
  #include<stdio.h> 
  #include<string.h> 
  main() 
  { 
      int i,len,sum1=0,sum2=0,ax,di,cx=1; 
      char code[20]; 
      printf("输入你的机器码吧:"); 
      gets(code); 
      len=strlen(code); 
      for(i=0;i<len;i++) 
      { 
          di=code; 
          ax=di*16;       // SHL EAX,4 
          ax-=di;        // SUB EAX,EDI 
          ax*=cx;         // IMUL ECX 
          sum1+=ax;      //ADD EAX,DWORD PTR SS:[EBP-10] 
          ax=di*11;      // IMUL EAX,EDI,0B 
          ax*=cx;         //IMUL ECX 
          sum2+=ax;      // ADD EAX,DWORD PTR SS:[EBP-18] 
          cx++; 
      } 
       printf("兄弟你要的注册码是:%d-%d",sum1,sum2); 
       printf("\n"); 
       printf("有钱的话请支持共享软件\n\n"); 
  } 
   
 
 
 
 
------------------------------------------------------------------------------------------------------------------------------------------------------------------- |   
 
 
 
 |