- UID
- 16062
注册时间2006-6-19
阅读权限40
最后登录1970-1-1
独步武林
![Rank: 5](template/lewei_blue/images/star_level3.gif) ![Rank: 5](template/lewei_blue/images/star_level1.gif)
该用户从未签到
|
【文章标题】: IconoClust 2.4r2算法注册机的制作
【文章作者】: JJDG
【软件名称】: IconoClust 2.4r2
【软件大小】: 13544KB
【下载地址】: http://www.clondiag.com/frame.ph ... ust/download.ic.php
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
简介:30天全功能演示版。专用微阵列图像分析软件。正式版420欧元。
下面的是从http://www.clondiag.com/frame.ph ... conoclust/index.php直接贴过来的,
IconoClust is CLONDIAG's powerful imaging software for the analysis of array images of multiple formats. It is designed to meet the needs of highly demanding imaging software while ensuring a high level of data integrity. IconoClust is founded on transparent analysis methods. Open program platform features and scripts guarantee easy adaptation to user specific needs and requirements. The software is suited both for beginners in microarray technology and professionals looking for a new array imaging platform.
IconoClust versions 2.2 and higher
Improved Chart Functions
Multiple new interactive functions for graphical result presentation are now available. Charts and graphs can be exported into eight different file formats.
Automatic Reference System Detection
IconoClust can automatically detect the reference system of CLONDIAG's arrays applied in the ArrayTube (AT) System. The analysis of series of AT-images can now be run fully automated.
Support of AT Reader Calibration
The new version of IconoClust for the ArrayTube (AT) System enables the easy calibration of the AT Reader. To apply this feature, an AT Calibration Tube is required.
New Database Communicator Functionalities
In combination with CLONDIAG's PARTISAN arrayLIMS the automatic processing of experiment batches is now feasible. Data transfer between IconoClust and the LIMS is easy and fast performed by one single mouse-click.
Start a brief demonstration to see more IconoClust features.
软件安装后,检查无壳,VB编写,
未注册的在启动的时候会弹出对话框要求注册,
OD载入,在vbastrcomp下断点,
输入jjdg和123123,点ok
OD断下,来到733B4825 > 837C24 04 02 CMP DWORD PTR SS:[ESP+4],2,
可以看见寄存器里面显示:
EAX 0018896C UNICODE "123123" <-----假注册码
ECX 00188B94 UNICODE "4ac2d7a98749a867be65218cea9729db" <-----真注册码
用4ac2d7a98749a867be65218cea9729db对应jjdg去注册已经可以成功了,
但是我们的目的是做注册机哦!
注意堆栈里面的信息:
0012EC64 733B4822 返回到 MSVBVM60.733B4822 来自 MSVBVM60.__vbaStrComp
0012EC68 00000000
0012EC6C 00188B94 UNICODE "4ac2d7a98749a867be65218cea9729db"
0012EC70 0018896C UNICODE "123123"
0012EC74 0053FEB8 返回到 IconoClu.0053FEB8 来自 MSVBVM60.__vbaStrCmp
0012EC78 00188B94 UNICODE "4ac2d7a98749a867be65218cea9729db"
0012EC7C 0018896C UNICODE "123123"
0012EC80 733B475E MSVBVM60.__vbaStrMove
0012EC84 00188C38
看到“返回到 IconoClu.0053FEB8”没有,
ctrl+g到 0053FEB8,
往上看,
0053FDBB 90 NOP
0053FDBC 90 NOP
0053FDBD 90 NOP
0053FDBE 90 NOP
0053FDBF 90 NOP
0053FDC0 > 55 PUSH EBP !从这里开始应该是与注册码产生有关的代码段了!F8单步向下!
0053FDC1 . 8BEC MOV EBP,ESP
0053FDC3 . 83EC 14 SUB ESP,14
0053FDC6 . 68 F6814000 PUSH <JMP.&MSVBVM60.__vbaExceptHandler> ; SE 处理程序安装
0053FDCB . 64:A1 0000000>MOV EAX,DWORD PTR FS:[0]
0053FDD1 . 50 PUSH EAX
0053FDD2 . 64:8925 00000>MOV DWORD PTR FS:[0],ESP
0053FDD9 . 83EC 54 SUB ESP,54
0053FDDC . 53 PUSH EBX
0053FDDD . 56 PUSH ESI
0053FDDE . 57 PUSH EDI
0053FDDF . 8965 EC MOV DWORD PTR SS:[EBP-14],ESP
0053FDE2 . C745 F0 80424>MOV DWORD PTR SS:[EBP-10],IconoClu.00404>
0053FDE9 . 33F6 XOR ESI,ESI
0053FDEB . 8975 F4 MOV DWORD PTR SS:[EBP-C],ESI
0053FDEE . 8975 F8 MOV DWORD PTR SS:[EBP-8],ESI
0053FDF1 . 8975 E0 MOV DWORD PTR SS:[EBP-20],ESI
0053FDF4 . 8975 DC MOV DWORD PTR SS:[EBP-24],ESI
0053FDF7 . 8975 D8 MOV DWORD PTR SS:[EBP-28],ESI
0053FDFA . 8975 D4 MOV DWORD PTR SS:[EBP-2C],ESI
0053FDFD . 8975 C4 MOV DWORD PTR SS:[EBP-3C],ESI
0053FE00 . 8975 B4 MOV DWORD PTR SS:[EBP-4C],ESI
0053FE03 . 6A 01 PUSH 1
0053FE05 . FF15 E8104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaOnErr>; MSVBVM60.__vbaOnError
0053FE0B . 56 PUSH ESI
0053FE0C . 68 9CF94100 PUSH IconoClu.0041F99C ; UNICODE "Python.SimpleHash"
0053FE11 . 8D45 C4 LEA EAX,DWORD PTR SS:[EBP-3C]
0053FE14 . 50 PUSH EAX
0053FE15 . FF15 3C124000 CALL DWORD PTR DS:[<&MSVBVM60.#716>] ; MSVBVM60.rtcCreateObject2
0053FE1B . 8D4D C4 LEA ECX,DWORD PTR SS:[EBP-3C]
0053FE1E . 51 PUSH ECX
0053FE1F . FF15 94114000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaObjVa>; MSVBVM60.__vbaObjVar
0053FE25 . 50 PUSH EAX
0053FE26 . 8D55 D8 LEA EDX,DWORD PTR SS:[EBP-28]
0053FE29 . 52 PUSH EDX
0053FE2A . FF15 F4104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaObjSe>; MSVBVM60.__vbaObjSetAddref
0053FE30 . 8D4D C4 LEA ECX,DWORD PTR SS:[EBP-3C]
0053FE33 . FF15 30104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeV>; MSVBVM60.__vbaFreeVar
0053FE39 . 8B45 0C MOV EAX,DWORD PTR SS:[EBP+C]
0053FE3C . 8B08 MOV ECX,DWORD PTR DS:[EAX] ; 到这里就可以看见输入的注册名jjdg了!
0053FE3E . 51 PUSH ECX
0053FE3F . 68 78C04100 PUSH IconoClu.0041C078 ; UNICODE "IconoClust_V1.1_Ammerbach_Partisan"
0053FE44 . FF15 84104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrCa>; MSVBVM60.__vbaStrCat
0053FE4A . 8945 CC MOV DWORD PTR SS:[EBP-34],EAX 在这里出现了UNICODE "jjdgIconoClust_V1.1_Ammerbach_Partisan"
0053FE4D . B9 08000000 MOV ECX,8 看见程序是将输入的注册名和它的名字合并成为一个字符串进行处理!
0053FE52 . 894D C4 MOV DWORD PTR SS:[EBP-3C],ECX
0053FE55 . 83EC 10 SUB ESP,10
0053FE58 . 8BD4 MOV EDX,ESP
0053FE5A . 890A MOV DWORD PTR DS:[EDX],ECX
0053FE5C . 8B4D C8 MOV ECX,DWORD PTR SS:[EBP-38]
0053FE5F . 894A 04 MOV DWORD PTR DS:[EDX+4],ECX
0053FE62 . 8942 08 MOV DWORD PTR DS:[EDX+8],EAX
0053FE65 . 8B45 D0 MOV EAX,DWORD PTR SS:[EBP-30]
0053FE68 . 8942 0C MOV DWORD PTR DS:[EDX+C],EAX
0053FE6B . 6A 01 PUSH 1
0053FE6D . 68 C0F94100 PUSH IconoClu.0041F9C0 ; UNICODE "Hash" 看到这个没有?应该是哈希检验吧!(MD5)
0053FE72 . 8B4D D8 MOV ECX,DWORD PTR SS:[EBP-28]
0053FE75 . 51 PUSH ECX
0053FE76 . 8D55 B4 LEA EDX,DWORD PTR SS:[EBP-4C]
0053FE79 . 52 PUSH EDX
0053FE7A . FF15 08134000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaLateM>; MSVBVM60.__vbaLateMemCallLd
0053FE80 . 83C4 20 ADD ESP,20
0053FE83 . 50 PUSH EAX
0053FE84 . FF15 40104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrVa>; MSVBVM60.__vbaStrVarMove
0053FE8A . 8BD0 MOV EDX,EAX 好了!到这里注册码就出来了!
0053FE8C . 8D4D E0 LEA ECX,DWORD PTR SS:[EBP-20]
0053FE8F . FF15 20134000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrMo>; MSVBVM60.__vbaStrMove
0053FE95 . 8D45 B4 LEA EAX,DWORD PTR SS:[EBP-4C]
0053FE98 . 50 PUSH EAX
0053FE99 . 8D4D C4 LEA ECX,DWORD PTR SS:[EBP-3C]
0053FE9C . 51 PUSH ECX
0053FE9D . 6A 02 PUSH 2
0053FE9F . FF15 48104000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeV>; MSVBVM60.__vbaFreeVarList
0053FEA5 . 83C4 0C ADD ESP,0C
0053FEA8 . 8B55 10 MOV EDX,DWORD PTR SS:[EBP+10]
0053FEAB . 8B02 MOV EAX,DWORD PTR DS:[EDX]
0053FEAD . 50 PUSH EAX
0053FEAE . 8B4D E0 MOV ECX,DWORD PTR SS:[EBP-20] ;
0053FEB1 . 51 PUSH ECX 在这里,你可以看见在寄存器里面真假注册码在比较哦!
0053FEB2 . FF15 7C114000 CALL DWORD PTR DS:[<&MSVBVM60.__vbaStrCm>; MSVBVM60.__vbaStrCmp
0053FEB8 . F7D8 NEG EAX
F8到0053FEB1时,寄存器里面的信息:
EAX 0018896C UNICODE "123123"
ECX 0018ADE4 UNICODE "4ac2d7a98749a867be65218cea9729db"
可是,如果在0053FEB1做内存注册机的话,却始终不能成功!
看到注册码是32位以及那个HASH,我想这个注册码会不会是把注册名和程序名连在一起求得的MD5值呢?
用飘云老大的密码学综合工具 1.0一验证,果然是这样,好了,注册机可以动手写了!
具体思路是:将注册名和程序名(IconoClust_V1.1_Ammerbach_Partisan)连在一起,做MD5运算,然后全部转换为小写字母即可!
幸好有野猫III兄共享出来的现成的MD5转换模块,又捡便宜了!
下面制作注册机(还是用VB6),
新建一个工程,
添加2个标签用来做提示,
2个文本对话框用来输入注册名和产生注册码,
然后在VB工程菜单-添加模块-现存,找到Module1.bas(野猫III兄共享出来的!省了我不少事情哦!)进行添加!
代码如下:
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
MsgBox "感谢野猫III兄共享出来的MD5代码!" & Chr(13) & Chr(10) & " JJDG制作! 2006.09.08.", , "IconoClust 2.4r2注册机 BY JJDG"
End Sub
Private Sub Text1_Change()
Text2.Text = LCase(MD5(Text1.Text & "IconoClust_V1.1_Ammerbach_Partisan"))
End Sub
好了!
至此全部结束,非常感谢飘云和野猫III兄的贡献!好的工具可以让我们轻松很多! |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入我们
x
|