| 作者:未知 文章来源:网络收集 点击数: 更新时间:2006-3-29 15:49:27
|
| 幻影2003 V3.0是一个很有特色的图像处理软件,使用图像的处理变得简单易用,效果很不错.安装完该软件后发现它是用ASPACK压缩的,就使用PE-SCAN对其解压缩,然后用TRW2000开始跟踪,很快就发现,软件对注册码的比较过程非常原始,就是两个真假注册码直接进行对比,所以很容易就找到了有效的注册码,而且真假注册码的位置也很接近,所以用WINHEX的内存编辑功能就可以很快找到注册码,但是分析它的注册码的生成过程,却花了我很长时间,因为软件的注册码并不是由软件编号直接变化而来的,而是有一个注册的关键值,软件编号也是由此值变化而来(这个变化过程是可逆的),在注册对话框出现时,注册码其实已经生成了.
0167:004100F1 MOV EAX,[ESI+D0]<----此值就是注册码生成的关键值,以下记为reg 0167:004100F7 CMP EAX,EBX 0167:004100F9 JNZ 0041015A 0167:004100FB LEA ECX,[ESP+38] 0167:004100FF MOV BYTE [ESP+B8],03 0167:00410107 CALL `MFC42!ord_00000320` 0167:0041010C LEA ECX,[ESP+30] 0167:00410110 MOV BYTE [ESP+B8],02 0167:00410118 CALL `MFC42!ord_00000320` 0167:0041011D LEA ECX,[ESP+18] 0167:00410121 MOV BYTE [ESP+B8],01 0167:00410129 CALL `MFC42!ord_00000320` 0167:0041012E LEA ECX,[ESP+24] 0167:00410132 MOV BYTE [ESP+B8],00 0167:0041013A CALL `MFC42!ord_00000320` 0167:0041013F LEA ECX,[ESP+1C] 0167:00410143 MOV DWORD [ESP+B8],FFFFFFFF 0167:0041014E CALL `MFC42!ord_00000320` 0167:00410153 XOR EAX,EAX 0167:00410155 JMP 00410504 0167:0041015A ADD EAX,000BCC09 <----将reg+BCC09,这是第一次变化. 0167:0041015F PUSH EAX 0167:00410160 LEA EAX,[ESP+1C] 0167:00410164 PUSH DWORD 004394C4<----指向一字串,"%8d" 0167:00410169 PUSH EAX 0167:0041016A CALL `MFC42!ord_00000B02`<----相当于printf("%8d",reg); 0167:0041016F MOV EAX,[ESP+24]<----EAX指向生成的字符串的首地址,以下记为[字串1] 0167:00410173 ADD ESP,BYTE +0C 0167:00410176 MOV DL,[EAX+01]<----将第2个字节取出到DL 0167:00410179 MOV CL,[EAX]<----将第1个字节取出到CL 0167:0041017B MOVSX EAX,BYTE [EAX+02]<----取第3字节到EAX 0167:0041017F MOVSX EDX,DL 0167:00410182 MOVSX ECX,CL 0167:00410185 ADD EAX,EDX 0167:00410187 LEA EAX,[EAX+ECX-90]<----EAX = 第1字节+ 第2字节 + 第3字节 - 90 0167:0041018E MOV ECX,07 0167:00410193 CDQ 0167:00410194 IDIV ECX 0167:00410196 LEA ECX,[ESP+18] 0167:00410 [1] [2] [3] [4] [5] [6] 下一页
|