看雪,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 |