飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 2346|回复: 1

[申请破文] IconoClust 2.4r2算法注册机的制作

[复制链接]

该用户从未签到

发表于 2006-9-9 00:23:34 | 显示全部楼层 |阅读模式
【文章标题】: 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
PYG19周年生日快乐!
  • TA的每日心情
    开心
    2018-5-6 16:27
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2006-9-13 08:02:58 | 显示全部楼层
    感动呀。。。咱们学习交流的内容终于有朋友用上了。
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表