前几天研究了一下系列软件的注册方式,发现大同小异,均为软件根据硬件算出一个机器码,然后用机器码推算出注册码,和填写的注册码比对,相同则注册成功,不同则弹出MessageBox。
系列中的国产的xx土方软件算是比较简单的一个,没有人写过注册机,所以贴出来研究一下。
【软件简介】:
1.提供智能的等高线.高程数据转换功能,可以快捷地将普通地形图转换为具有三维信息的地形图。
2.方格网法,断面法等土方计算方法,快速准确计算出场地区域内土石方工程量。
3.灵活的土方边坡定制及边坡计算功能,可灵活定义单、多级土方区域边界放坡。
4.国内首套提供土方调配功能的软件,可根据地形及地理条件,确定各土方调配区的土方调配方案,从而缩短工程工期、降低施工成本。
5.软件的场地布置功能,帮助设计人员快速绘制出三维景观效果工程方案图。
首先下断bpx GetWindowTextA,输入假码,确定。
OD F8回到软件领空,然后跟着假码或跟着机器码走,很快就来到这里:
0DAC9DC0 57 push edi
0DAC9DC1 8B7C24 10 mov edi,dword ptr ss:[esp+10] ; 机器码长度
0DAC9DC5 33C9 xor ecx,ecx ; 计数器清零
0DAC9DC7 85FF test edi,edi
0DAC9DC9 7E 21 jle short tch_init.0DAC9DEC ; 机器码长度为0跳出
0DAC9DCB 8A5424 0C mov dl,byte ptr ss:[esp+C] ; 基准数
0DAC9DCF 56 push esi
0DAC9DD0 8B7424 0C mov esi,dword ptr ss:[esp+C] ; 机器码
0DAC9DD4 8A0431 mov al,byte ptr ds:[ecx+esi] ; 机器码第一位
0DAC9DD7 32C2 xor al,dl ; 跟基准数XOR
0DAC9DD9 8AD0 mov dl,al ; 交换
0DAC9DDB 880431 mov byte ptr ds:[ecx+esi],al ; 注册码第一位
0DAC9DDE C0E2 06 shl dl,6 ; 左移6
0DAC9DE1 C0E8 04 shr al,4 ; 右移4
0DAC9DE4 02D0 add dl,al ; 相加
0DAC9DE6 41 inc ecx ; 计数器+1
0DAC9DE7 3BCF cmp ecx,edi ; 到达机器码长度了吗?
0DAC9DE9 ^ 7C E9 jl short tch_init.0DAC9DD4
0DAC9DEB 5E pop esi
0DAC9DEC 5F pop edi
0DAC9DED C3 retn
以上是机器码推算注册码的过程。弄清楚注册码算法之后,反推回去就可以写注册机了。
需要注意的是
0DAC9DCB 8A5424 0C mov dl,byte ptr ss:[esp+C]
系列软件里每个软件有不同的DL固定值。
[课程]FART 脱壳王!加量不加价!FART作者讲授!