中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 看雪学院专区 > 解释语言 > VB程序
MP3音乐管理大师破解
作者:郭大志 时间:2005-09-11 21:53 出处:www.pediy.com 责编:bighearted
              摘要:MP3音乐管理大师破解
用SoftICE和SmartCheck结合将这个VB6程序搞定。
注册号是很好找的,用rtcMsgBox或MultiByteToWideChar设断点,
看见如下的判断:
0167:004C546D  50                          PUSH      EAX
0167:004C546E  FF1568104000        CALL      [00401068]
0167:004C5474  8B45E4                  MOV      EAX,[EBP-1C]
0167:004C5477  50                          PUSH      EAX
0167:004C5478  FF1550104000        CALL      [00401050]
0167:004C547E  8B3DB4114000        MOV      EDI,[004011B4]
0167:004C5484  8BD0                      MOV      EDX,EAX
0167:004C5486  8D4DE8                  LEA      ECX,[EBP-18]
0167:004C5489  FFD7                      CALL      EDI
0167:004C548B  8D4DE4                  LEA      ECX,[EBP-1C]
0167:004C548E  FF15FC114000        CALL      [004011FC]
0167:004C5494  8D4DD8                  LEA      ECX,[EBP-28]
0167:004C5497  FF15F8114000        CALL      [004011F8]
0167:004C549D  E85EF5FFFF          CALL      004C4A00
0167:004C54A2  8B4DE8                  MOV      ECX,[EBP-18]
0167:004C54A5  8B1528704C00        MOV      EDX,[004C7028]
0167:004C54AB  51                          PUSH      ECX                //错误的注册码
0167:004C54AC  52                          PUSH      EDX                //正确的注册码
0167:004C54AD  FF15D4104000        CALL      [004010D4]      //比较注册码
0167:004C54B3  85C0                      TEST      EAX,EAX
0167:004C54B5  0F85C5010000        JNZ      004C5680

这个软件必须写注册机,先用SoftICE跟一下,经过漫长的跟踪后发现它在下面的地方将你的软件编号的第k个字符乘以(k+1)。

0167:004C4B29  DB856CFFFFFF        FILD      DWORD PTR [EBP-0094]
0167:004C4B2F  C745A805000000      MOV      DWORD PTR [EBP-58],00000005
0167:004C4B36  DD9D64FFFFFF        FSTP      REAL8 PTR [EBP-009C]
0167:004C4B3C  DC8D64FFFFFF        FMUL      REAL8 PTR [EBP-009C]                  //相乘
0167:004C4B42  DD5DB0                    FSTP      REAL8 PTR [EBP-50]
0167:004C4B45  DFE0                        FSTSW  AX
0167:004C4B47  A80D                        TEST      AL,0D
0167:004C4B49  0F85A0020000          JNZ      004C4DEF

比如我的软件编号为174078570,它在前面添个0,变成0174078570,然后就有:
0 乘以 1  =0
1 乘以 2  =2
7 乘以 3  =21
4 乘以 4  =16
0 乘以 5  =0
7 乘以 6  =42
8 乘以 7  =56
5 乘以 8  =40
7 乘以 9  =63
0 乘以 10 =0

之后用SoftICE就跟丢了。改用SmartCheck,发现它把上面的乘积串成一个字符串“0221160425640630”,
然后取该串的前9个字符“022116042”,然后将该串转换成相应的十进制数22116042,该数对应的十六进制表示为15176CA,再在十六进制表示的前面和后面各加上软件作者的姓名的声母H、P,就得到了注册号H15176CAP。

注册机:

#include <stdio.h>
#include <string.h>

void main(void)
{

    char buf[128] = "0";
    char SerialStr[128], CodeStr[128];
    int k;
    long RegCode;

    printf("请输入你的软件编号: ");
    gets(SerialStr);

    strcat(buf, SerialStr);
    CodeStr[0] = '\0';
    for (k = 0; k < strlen(buf); k++)
    {
        sprintf(SerialStr, "%d", ((buf[k] - '0') * (k+1)) & 0xFF);
        strcat(CodeStr, SerialStr);
    }

    CodeStr[9] = '\0';
    sscanf(CodeStr, "%lu", &RegCode);
   
    printf("你的注册号是: ");
    printf("H%lXP\n", RegCode);
}
关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有