• 标 题:看雪,dr0及各位大侠请看! (2千字)
  • 作 者:backboy
  • 时 间:2000-7-15 20:41:14
  • 链 接:http://bbs.pediy.com

看雪,dr0及各位大侠,现在对一些软件,HMEMCPY 这个万用中断好象已失效。不信大家请看看国人用DEPHI编的wall paper changer 3.5 这个软件,设bpx hmemcpy,一按F5,就又被中断了,上海番外地对它的破解附后,但我不论使用SOFTICE或TRW2000,都不能在按注册按钮后再中断,全部是设断点后立即就被中断返回调试窗口,根本没有按注册按钮的机会。类似的情况我在一些CRACKME中碰到过,但还可以通过先不输入最后一位注册码,然后再设断,返回,输入最后一位注册码来解决,但现在这个软件连这个机会都不给,用UNASPACK1.91脱壳后,DASM893也不能正确反汇编,不知为什么,至此这个软件好象已不可解,请高手们指教对该类软件的破解方法,多谢了!这种软件已不是第一次碰到。以下为转载上海番外地对该软件的破解教程(但好象不可用)。

-----------------------------------------------------------------
作者主页:http://www.hu.zj.cninfo.net/~wangyin/wangyin.html
破解工具:Soft-ICE 4.05 for Windows 95/98、File Infor 2.3、UnAspack 1.0.9.0、Hiew
难 度:易
说 明:全功能的“桌面布景”管理程序、包括桌面、图标、光标、声音、背景配色、开关机画面、Web背景等,能更改、更换各项配置,然后将此存成另一布景、相当好用,值得一提的是程序提供背景配色的编辑、且内建多种的模组可套用、甚至自行更改,而Web背景图、更是一般相似软件中少见的功能,总之相当好用,喜欢改、改、改的网友值得下载。

破解过程:

1.先启动Soft-ICE,再启动WPC,从“关于”中看到了“注册信息”,有两个内容: 姓名: FanWaiDi[CCG] (发现这个用户名不是自己添的而是从系统安装信息中调入的)
注册号码: 78787878 (随便填,我习惯填78787878)

2.打Ctrl+D,进入S-ICE,设断点bpx hmemcpy,打F5返回WPC,点“OK”,则被S-ICE拦截。

3.打bc *,清除断点。再打F12键12下后,再按F10来到:

...
XXXX:0046F856 MOV EDX,[EBP-08]
XXXX:0046F859 POP EAX
XXXX:0046F85A CALL 00403058
XXXX:0046F85F JNZ 0046F88C(这里一跳跃就会出现错误的窗口,那么上面的那个CALL肯定有问题,进去看看!)
XXXX:0046F861 MOV EDX,00000001
...

4、在0046F85A处按F8进入,
...
XXXX:00403D5B MOV ESI,EAX
XXXX:00403D5D MOV EDI,EDX
XXXX:00403D5F CMP EAX,EDX(在这里就可以找到注册码了!)
XXXX:00403D61 JZ 00403DF6
XXXX:00403D67 TEST ESI,ESI
...
在00403D5F处下D EAX就可以看到我的注册码了:WPC25-003086!!
D EDX就是我原来输入的78787878

5、至此我的注册码已经破解出来的,但是问题就来了,如果别人的机器不是使用我这个名字来安装win9x的话就不能使用这个注册码,写注册机太繁了,需要花费我很多时间,时间有限就作个破解吧!

6、还好刚才我记下了0046F85A处的机内码,具体如下,
XXXX:0046F85A E9F044F0FF CALL 00403058
XXXX:0046F85F 752B JNZ 0046F88C
红字的地方就是机内码,只要将752B修改为742B就可以。

  • 标 题:照样可以用hmemcpy (656字)
  • 作 者:dr0
  • 时 间:2000-7-15 21:12:52

只不过点击Register按钮的时机要把握好。

015F:0047E52C  CALL      004212A0        //这里头调用hmemcpy
015F:0047E531  MOV      EAX,[EBP-08]
015F:0047E534  LEA      EDX,[EBP-04]
015F:0047E537  CALL      004690C0
015F:0047E53C  MOV      EAX,[EBP-04]
015F:0047E53F  PUSH      EAX
015F:0047E540  LEA      EDX,[EBP-08]
015F:0047E543  MOV      EAX,[ESI+000002F8]
015F:0047E549  CALL      004212A0
015F:0047E54E  MOV      EDX,[EBP-08]        //假注册码
015F:0047E551  POP      EAX                  //真注册码
015F:0047E552  CALL      00403D98            //比较注册码
015F:0047E557  JNZ      0047E584

从程序启动的时候开始跟踪注册码也可以。

  • 标 题:注册机 (2千字)
  • 作 者:dr0
  • 时 间:2000-7-15 21:57:16

有些程序的定时处理中会调用hmemcpy,CTerm也是。

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

void main(void)
{
    long Table[11] = { 0, 5, 7, 3, 2, 0, 1, 4, 8, 3, 8 };
    char Name[64];
    long sum;
    int  k;
    int len;

    printf("Input your name:");
    gets(Name);

    len = strlen(Name);
    if (len > 10)
    {
        len = 10;
    }

    sum = 0;
    for (k = 1; k < 11; k++)
    {
        if (len >= k)
        {
            sum += Table[k-1] * ((long)Name[k-1] & 0xFF);
            sum -= Table[k];
        }
        else
        {
            sum += (Table[k-1] << 5) + Table[k];
        }
    }

    printf("Your registration code is: WPC25-%06d\n", sum);
}

对应的汇编代码:

015F:004690F1  XOR      EBX,EBX
015F:004690F3  MOV      EAX,[EBP-04]
015F:004690F6  CALL      00403C88
015F:004690FB  MOV      ECX,EAX
015F:004690FD  CMP      ECX,0A
015F:00469100  JLE      00469107
015F:00469102  MOV      ECX,0000000A
015F:00469107  MOV      EDX,00000001
015F:0046910C  MOV      EAX,00484CF4
015F:00469111  CMP      ECX,EDX
015F:00469113  JGE      00469121
015F:00469115  MOV      ESI,[EAX]
015F:00469117  SHL      ESI,05
015F:0046911A  ADD      EBX,ESI
015F:0046911C  ADD      EBX,[EAX+04]
015F:0046911F  JMP      00469131
015F:00469121  MOV      ESI,[EBP-04]
015F:00469124  MOVZX    ESI,BYTE PTR [EDX+ESI-01]
015F:00469129  IMUL      ESI,[EAX]
015F:0046912C  ADD      EBX,ESI
015F:0046912E  SUB      EBX,[EAX+04]
015F:00469131  INC      EDX
015F:00469132  ADD      EAX,04
015F:00469135  CMP      EDX,0B
015F:00469138  JNZ      00469111
015F:0046913A  LEA      EAX,[EBP-0C]
015F:0046913D  PUSH      EAX
015F:0046913E  MOV      [EBP-14],EBX
015F:00469141  MOV      BYTE PTR [EBP-10],00
015F:00469145  LEA      EDX,[EBP-14]
015F:00469148  XOR      ECX,ECX
015F:0046914A  MOV      EAX,004691C4
015F:0046914F  CALL      00407E24
015F:00469154  JMP      00469172
015F:00469156  MOV      EDX,[EBP-0C]
015F:00469159  MOV      EAX,004691D8
015F:0046915E  CALL      00403F14
015F:00469163  MOV      EBX,EAX
015F:00469165  LEA      EAX,[EBP-0C]
015F:00469168  CALL      00403E58
015F:0046916D  MOV      BYTE PTR [EBX+EAX-01],30
015F:00469172  MOV      EDX,[EBP-0C]
015F:00469175  MOV      EAX,004691D8
015F:0046917A  CALL      00403F14
015F:0046917F  TEST      EAX,EAX
015F:00469181  JG        00469156