下载地址http://www.softreg.com.cn/shareware_view.asp?id=/6D8B45D1-83FD-4494-AC19-DC38FD6D2591/ 破解工具:trw2000,纸,笔,手,脑 破解过程: 这是一个很简单的算法,主要是对机器码的计算在另外的地方,比较难找,其他都是很简单的! 1、运行TRW2000后最小化 2、运行程序,点配置菜单,输入任意假注册码,先不要点“注册”按钮 3、Ctrl+N激活TRW2000 4、bpx hmemcpy → 这里用hmemcpy这个万能断点就OK了 5、按F5返回,点击注册按钮,程序被拦截 6、BC * → 清除所有断点 PMODULE → 直接进入程序领空 7、按F12键7次按F10键1次来到如下代码处
0167:005CE280 8D55F8 LEA EDX,[EBP-08] 0167:005CE283 8B83E0020000 MOV EAX,[EBX+02E0] 0167:005CE289 E88E17E7FF CALL 0043FA1C 0167:005CE28E 8B45F8 MOV EAX,[EBP-08] 0167:005CE291 8D55FC LEA EDX,[EBP-04] **//这里是机器码放到edx中的过程,在下一行可以D EDX看见机器码"178434691ID2.8S" //**
0167:005CE294 E8E3E2FBFF CALL 0058C57C
**//关键CALL,F8进入(D EDX看见机器码)//**
0167:005CE299 8B45FC MOV EAX,[EBP-04] 0167:005CE29C 50 PUSH EAX 0167:005CE29D 8D55F4 LEA EDX,[EBP-0C] 0167:005CE2A0 8B83DC020000 MOV EAX,[EBX+02DC] 0167:005CE2A6 E87117E7FF CALL 0043FA1C 0167:005CE2AB 8B55F4 MOV EDX,[EBP-0C] 0167:005CE2AE 58 POP EAX 0167:005CE2AF E8EC68E3FF CALL 00404BA0
**//D EAX可见注册码,可以在这里作内存注册机//**
0167:005CE2B4 750D JNZ 005CE2C3 0167:005CE2B6 E8B5E3FBFF CALL 0058C670 0167:005CE2BB A1FC376100 MOV EAX,[006137FC] 0167:005CE2C0 C60001 MOV BYTE [EAX],01 0167:005CE2C3 8BC3 MOV EAX,EBX --------------------//F8进来关键CALL//------------------- 0167:0058C57C 55 PUSH EBP 0167:0058C57D 8BEC MOV EBP,ESP 0167:0058C57F 33C9 XOR ECX,ECX 0167:0058C581 51 PUSH ECX 0167:0058C582 51 PUSH ECX 0167:0058C583 51 PUSH ECX 0167:0058C584 51 PUSH ECX 0167:0058C585 53 PUSH EBX 0167:0058C586 8BDA MOV EBX,EDX 0167:0058C588 8945FC MOV [EBP-04],EAX 0167:0058C58B 8B45FC MOV EAX,[EBP-04]
**//这里是机器码//**
0167:0058C58E E8B186E7FF CALL 00404C44 0167:0058C593 33C0 XOR EAX,EAX 0167:0058C595 55 PUSH EBP 0167:0058C596 6849C65800 PUSH DWORD 0058C649 0167:0058C59B 64FF30 PUSH DWORD [FS:EAX] 0167:0058C59E 648920 MOV [FS:EAX],ESP 0167:0058C5A1 8D45F8 LEA EAX,[EBP-08] 0167:0058C5A4 50 PUSH EAX 0167:0058C5A5 B904000000 MOV ECX,04 //取4位 0167:0058C5AA BA01000000 MOV EDX,01 //第1位开始 0167:0058C5AF 8B45FC MOV EAX,[EBP-04] 0167:0058C5B2 E8E186E7FF CALL 00404C98
**//上面这里其实就是按位置取字符串的过程//**
0167:0058C5B7 8D45F4 LEA EAX,[EBP-0C] 0167:0058C5BA 50 PUSH EAX 0167:0058C5BB B904000000 MOV ECX,04 //取4位 0167:0058C5C0 BA05000000 MOV EDX,05 //第5位开始 0167:0058C5C5 8B45FC MOV EAX,[EBP-04] 0167:0058C5C8 E8CB86E7FF CALL 00404C98 //同上面的CALL 0167:0058C5CD 8D45FC LEA EAX,[EBP-04] 0167:0058C5D0 8B4DF8 MOV ECX,[EBP-08]
**//这里ECX取的就是1-4位的机器码"1784" //**
0167:0058C5D3 8B55F4 MOV EDX,[EBP-0C]
**//这里EDX取的就是5-8位的机器码"3469"//**
0167:0058C5D6 E80185E7FF CALL 00404ADC
**//连接起来为"34691784",是按照5-8位接1-4位的顺序连接的 //**
0167:0058C5DB 803DBB4B610000 CMP BYTE [00614BBB],00 0167:0058C5E2 7436 JZ 0058C61A //我的这里是跳过 0167:0058C5E4 6860C65800 PUSH DWORD 0058C660 0167:0058C5E9 8B45FC MOV EAX,[EBP-04] 0167:0058C5EC E84BE8E7FF CALL 0040AE3C 0167:0058C5F1 99 CDQ 0167:0058C5F2 051810C7ED ADD EAX,EDC71018 0167:0058C5F7 83D202 ADC EDX,BYTE +02 0167:0058C5FA 52 PUSH EDX 0167:0058C5FB 50 PUSH EAX 0167:0058C5FC 8D45F0 LEA EAX,[EBP-10] 0167:0058C5FF E800E8E7FF CALL 0040AE04 0167:0058C604 FF75F0 PUSH DWORD [EBP-10] 0167:0058C607 686CC65800 PUSH DWORD 0058C66C 0167:0058C60C 8BC3 MOV EAX,EBX 0167:0058C60E BA03000000 MOV EDX,03 0167:0058C613 E83885E7FF CALL 00404B50 0167:0058C618 EB14 JMP SHORT 0058C62E 0167:0058C61A 8B45FC MOV EAX,[EBP-04] //D EAX看见"34691784"
**//这个CALL是把字符串转换成数值//** 0167:0058C61D E81AE8E7FF CALL 0040AE3C 0167:0058C622 0518AC2401 ADD EAX,0124AC18 //?eax可以看到十进制为34691784 EAX=34691784+0x124AC18 结果就是注册码了 0167:0058C627 8BD3 MOV EDX,EBX 0167:0058C629 E89EE7E7FF CALL 0040ADCC 0167:0058C62E 33C0 XOR EAX,EAX 0167:0058C630 5A POP EDX 0167:0058C631 59 POP ECX 0167:0058C632 59 POP ECX 0167:0058C633 648910 MOV [FS:EAX],EDX 0167:0058C636 6850C65800 PUSH DWORD 0058C650 0167:0058C63B 8D45F0 LEA EAX,[EBP-10] 0167:0058C63E BA04000000 MOV EDX,04 0167:0058C643 E8C481E7FF CALL 0040480C
算法总结: 1:取机器码的5-8位和1-4位连接成8位字符串,转换成数值+0x124AC18就是注册码了 |
|
查看所有0条评论>>