首页
社区
课程
招聘
[原创]Installer2Go 4.1.3注册分析[原创]
发表于: 2006-7-4 16:14 7483

[原创]Installer2Go 4.1.3注册分析[原创]

2006-7-4 16:14
7483

【文章标题】: Installer2Go 4.1.3注册分析
【文章作者】: FishSeeWater
【作者邮箱】: shuijiany99@163.com
【软件名称】: Installer2Go 4.1.3
【下载地址】: 自己搜索下载
【保护方式】: 序列号
【编写语言】: Microsoft Visual C++ 6.0
【使用工具】: Windows2003+MasmPlus1.1+OllyICE1.10
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
【软件介绍】: Setup2Go 是一个很不错的安装程序制作工具,易于使用且交互性强,它不需要使用者具备多少编程知识和编程经验就可在极短的时间内轻松完成制作,该软件还支持当前所有的 32 位 Windows 操作系统的程序,包括 Windows 95、98、ME、NT4、2000、XP 等。软件还自带工程向导帮助你快速生成安装项目,像建立快捷方式、写入注册表、文件类型关联、定制对话框及屏幕样式、使用外部工具、修改 INI 文件、添加安装密码、测试运行等等这些功能它都具备,并且你还可以利用 Setup2Go 制作出支持多国语言的安装程序,便于你向外国人出售自己的软件产品。  
--------------------------------------------------------------------------------
【详细过程】:
  最近公司写了一个通信软件,用到了ODBC数据库,为了用户使用方便,决定找一个打包工具,经过比较选择,最后瞄定:Installer2Go 4.1.3,小巧而功能齐全,Down后发现为FREE软件,不过需注册,否则打包后的程序有NAG,心下不爽,开刀!!!!!
  PEID:Microsoft Visual C++ 6.0
  直接用OllyICE折了她!F9运行出现提示注册的对话框,下断点:GetDlgItemText 输入用户名:qqqqqqqq,注册码:78787878,点注册没反应?
  路不对,想想程序启动时一定有判断处理,下注册表断点试试,Ctrl+F2->打开API断点设置工具插件->注册表处理函数,确定。F9运行,OK断下来了,一边F9一边看堆栈窗口,终于发现了可疑这处了 ValueName = "username",
  好,停住!F8进行,

 
  00404A84  |.  51            PUSH ECX                                 ; /pBufSize
  00404A85  |.  52            PUSH EDX                                 ; |Buffer
  00404A86  |.  50            PUSH EAX                                 ; |pValueType
  00404A87  |.  50            PUSH EAX                                 ; |Reserved
  00404A88  |.  8B4424 28     MOV EAX,DWORD PTR SS:[ESP+28]            ; |
  00404A8C  |.  BF 04010000   MOV EDI,104                              ; |
  00404A91  |.  68 84134F00   PUSH builder.004F1384                    ; |username
  00404A96  |.  50            PUSH EAX                                 ; |hKey
  00404A97  |.  897C24 2C     MOV DWORD PTR SS:[ESP+2C],EDI            ; |
  00404A9B  |.  FFD6          CALL ESI                                 ; \RegQueryValueExA
  00404A9D  |.  85C0          TEST EAX,EAX                             ;看看有没有用户名,打开注册表,手动输入一个:)
  00404A9F  |.  75 0A         JNZ SHORT builder.00404AAB
  00404AA1  |.  8B4424 14     MOV EAX,DWORD PTR SS:[ESP+14]
  00404AA5  |.  85C0          TEST EAX,EAX
  00404AA7  |.  76 02         JBE SHORT builder.00404AAB
  00404AA9  |.  B3 01         MOV BL,1
  00404AAB  |>  8B4424 18     MOV EAX,DWORD PTR SS:[ESP+18]
  00404AAF  |.  8D4C24 14     LEA ECX,DWORD PTR SS:[ESP+14]
  00404AB3  |.  8D9424 240100>LEA EDX,DWORD PTR SS:[ESP+124]
  00404ABA  |.  51            PUSH ECX
  00404ABB  |.  52            PUSH EDX
  00404ABC  |.  6A 00         PUSH 0
  00404ABE  |.  6A 00         PUSH 0
  00404AC0  |.  68 90134F00   PUSH builder.004F1390                    ;  regcode
  00404AC5  |.  50            PUSH EAX
  00404AC6  |.  897C24 2C     MOV DWORD PTR SS:[ESP+2C],EDI
  00404ACA  |.  FFD6          CALL ESI                                 ;读注册码,照搬,手动输入一个:)  
  00404ACC  |.  85C0          TEST EAX,EAX
  00404ACE  |.  75 0D         JNZ SHORT builder.00404ADD
  00404AD0  |.  8B4424 14     MOV EAX,DWORD PTR SS:[ESP+14]
  00404AD4  |.  85C0          TEST EAX,EAX
  00404AD6  |.  76 05         JBE SHORT builder.00404ADD
  00404AD8  |.  C64424 13 01  MOV BYTE PTR SS:[ESP+13],1
  00404ADD  |>  8B4424 18     MOV EAX,DWORD PTR SS:[ESP+18]
  00404AE1  |.  8D4C24 14     LEA ECX,DWORD PTR SS:[ESP+14]
  00404AE5  |.  8D9424 280200>LEA EDX,DWORD PTR SS:[ESP+228]
  00404AEC  |.  51            PUSH ECX
  00404AED  |.  52            PUSH EDX
  00404AEE  |.  6A 00         PUSH 0
  00404AF0  |.  6A 00         PUSH 0
  00404AF2  |.  68 98134F00   PUSH builder.004F1398                    ;  admin
  00404AF7  |.  50            PUSH EAX
  00404AF8  |.  897C24 2C     MOV DWORD PTR SS:[ESP+2C],EDI
  00404AFC  |.  FFD6          CALL ESI
  00404AFE  |.  85C0          TEST EAX,EAX
  00404B00  |.  75 0D         JNZ SHORT builder.00404B0F
  00404B02  |.  8B4424 14     MOV EAX,DWORD PTR SS:[ESP+14]
  00404B06  |.  85C0          TEST EAX,EAX
  00404B08  |.  76 05         JBE SHORT builder.00404B0F
  00404B0A  |.  C64424 12 01  MOV BYTE PTR SS:[ESP+12],1
  00404B0F  |>  8B4C24 18     MOV ECX,DWORD PTR SS:[ESP+18]
  00404B13  |.  51            PUSH ECX                                 ; /hKey
  00404B14  |.  FF15 0C904D00 CALL DWORD PTR DS:[<&ADVAPI32.RegCloseKe>; \RegCloseKey
  00404B1A  |.  84DB          TEST BL,BL
  00404B1C  |.  0F84 16020000 JE builder.00404D38
  00404B22  |.  8A4424 13     MOV AL,BYTE PTR SS:[ESP+13]
  00404B26  |.  84C0          TEST AL,AL
  00404B28  |.  0F84 0A020000 JE builder.00404D38
  00404B2E  |.  8D9424 240100>LEA EDX,DWORD PTR SS:[ESP+124]
  00404B35  |.  8D4424 20     LEA EAX,DWORD PTR SS:[ESP+20]
  00404B39  |.  52            PUSH EDX                                 ;假码压栈
  00404B3A  |.  50            PUSH EAX                                 ;用户名压栈
  00404B3B  |.  8BCD          MOV ECX,EBP
  00404B3D  |.  E8 6EFCFFFF   CALL builder.004047B0                    ;F7跟进
  00404B42  |.  84C0          TEST AL,AL
  00404B44  |.  0F84 EE010000 JE builder.00404D38
  00404B4A  |.  8D7C24 20     LEA EDI,DWORD PTR SS:[ESP+20]
  //++++++++++++++++++++++++++++
  004047B0  /$  56            PUSH ESI                                 ;  ADVAPI32.RegQueryValueExA
  004047B1  |.  8B7424 08     MOV ESI,DWORD PTR SS:[ESP+8]
  004047B5  |.  85F6          TEST ESI,ESI
  004047B7  |.  57            PUSH EDI
  004047B8  |.  74 42         JE SHORT builder.004047FC
  004047BA  |.  8B5424 10     MOV EDX,DWORD PTR SS:[ESP+10]
  004047BE  |.  85D2          TEST EDX,EDX
  004047C0  |.  74 3A         JE SHORT builder.004047FC
  004047C2  |.  8BFE          MOV EDI,ESI
  004047C4  |.  83C9 FF       OR ECX,FFFFFFFF
  004047C7  |.  33C0          XOR EAX,EAX
  004047C9  |.  F2:AE         REPNE SCAS BYTE PTR ES:[EDI]
  004047CB  |.  F7D1          NOT ECX
  004047CD  |.  49            DEC ECX
  004047CE  |.  74 2C         JE SHORT builder.004047FC
  004047D0  |.  8BFA          MOV EDI,EDX
  004047D2  |.  83C9 FF       OR ECX,FFFFFFFF
  004047D5  |.  F2:AE         REPNE SCAS BYTE PTR ES:[EDI]
  004047D7  |.  F7D1          NOT ECX
  004047D9  |.  49            DEC ECX
  004047DA  |.  83F9 0A       CMP ECX,0A                                 ;注册码长度必须为0A->10否则飞走
  004047DD  |.  75 1D         JNZ SHORT builder.004047FC
  004047DF  |.  894424 0C     MOV DWORD PTR SS:[ESP+C],EAX
  004047E3  |.  8D4424 0C     LEA EAX,DWORD PTR SS:[ESP+C]
  004047E7  |.  52            PUSH EDX
  004047E8  |.  50            PUSH EAX
  004047E9  |.  68 A0134F00   PUSH builder.004F13A0                    ;  andrey&pasha
  004047EE  |.  56            PUSH ESI
  004047EF  |.  E8 CCCE0900   CALL builder.004A16C0                    ;F7跟进
  004047F4  |.  83C4 10       ADD ESP,10
  004047F7  |.  5F            POP EDI
  004047F8  |.  5E            POP ESI
  004047F9  |.  C2 0800       RETN 8
  004047FC  |>  5F            POP EDI
  004047FD  |.  32C0          XOR AL,AL
  004047FF  |.  5E            POP ESI
  00404800  \.  C2 0800       RETN 8
  //++++++++++++++++++++++++++++++++++++
  004A16C0  /$  53            PUSH EBX
  004A16C1  |.  8B5C24 14     MOV EBX,DWORD PTR SS:[ESP+14]
  004A16C5  |.  56            PUSH ESI
  004A16C6  |.  57            PUSH EDI
  004A16C7  |.  8BFB          MOV EDI,EBX
  004A16C9  |.  83C9 FF       OR ECX,FFFFFFFF
  004A16CC  |.  33C0          XOR EAX,EAX
  004A16CE  |.  F2:AE         REPNE SCAS BYTE PTR ES:[EDI]
  004A16D0  |.  F7D1          NOT ECX
  004A16D2  |.  49            DEC ECX
  004A16D3  |.  8BF9          MOV EDI,ECX
  004A16D5  |.  8D47 01       LEA EAX,DWORD PTR DS:[EDI+1]
  004A16D8  |.  50            PUSH EAX
  004A16D9  |.  E8 0FBF0100   CALL builder.004BD5ED
  004A16DE  |.  8BF0          MOV ESI,EAX
  004A16E0  |.  8B4424 1C     MOV EAX,DWORD PTR SS:[ESP+1C]
  004A16E4  |.  83C4 04       ADD ESP,4
  004A16E7  |.  85C0          TEST EAX,EAX
  004A16E9  |.  74 2C         JE SHORT builder.004A1717
  004A16EB  |.  8A4B 01       MOV CL,BYTE PTR DS:[EBX+1]
  004A16EE  |.  55            PUSH EBP
  004A16EF  |.  51            PUSH ECX
  004A16F0  |.  E8 9BFFFFFF   CALL builder.004A1690
  004A16F5  |.  8A13          MOV DL,BYTE PTR DS:[EBX]
  004A16F7  |.  8BE8          MOV EBP,EAX
  004A16F9  |.  52            PUSH EDX
  004A16FA  |.  E8 91FFFFFF   CALL builder.004A1690
  004A16FF  |.  C1E0 04       SHL EAX,4
  004A1702  |.  03E8          ADD EBP,EAX
  004A1704  |.  8B4424 24     MOV EAX,DWORD PTR SS:[ESP+24]
  004A1708  |.  81F5 FF000000 XOR EBP,0FF
  004A170E  |.  83C4 08       ADD ESP,8
  004A1711  |.  83ED 55       SUB EBP,55
  004A1714  |.  8928          MOV DWORD PTR DS:[EAX],EBP
  004A1716  |.  5D            POP EBP
  004A1717  |>  8B00          MOV EAX,DWORD PTR DS:[EAX]
  004A1719  |.  8B4C24 14     MOV ECX,DWORD PTR SS:[ESP+14]
  004A171D  |.  8B5424 10     MOV EDX,DWORD PTR SS:[ESP+10]
  004A1721  |.  57            PUSH EDI
  004A1722  |.  56            PUSH ESI
  004A1723  |.  50            PUSH EAX
  004A1724  |.  51            PUSH ECX
  004A1725  |.  52            PUSH EDX
  004A1726  |.  E8 35FEFFFF   CALL builder.004A1560                      ;这里F7进(为什么是这个?因为上面几个CALL已经进过了:),现在就发现这里有用)
  004A172B  |.  57            PUSH EDI
  004A172C  |.  53            PUSH EBX
  004A172D  |.  56            PUSH ESI
  //++++++++++++++++++++++++++++++++++++++++++++
  进入核心地带了:)
  004A1560  /$  83EC 08       SUB ESP,8
  004A1563  |.  53            PUSH EBX
  004A1564  |.  8B5C24 20     MOV EBX,DWORD PTR SS:[ESP+20]
  004A1568  |.  55            PUSH EBP
  004A1569  |.  56            PUSH ESI
  004A156A  |.  8D73 01       LEA ESI,DWORD PTR DS:[EBX+1]
  004A156D  |.  57            PUSH EDI
  004A156E  |.  56            PUSH ESI
  004A156F  |.  E8 79C00100   CALL builder.004BD5ED
  004A1574  |.  8BE8          MOV EBP,EAX
  004A1576  |.  56            PUSH ESI
  004A1577  |.  896C24 18     MOV DWORD PTR SS:[ESP+18],EBP
  004A157B  |.  E8 6DC00100   CALL builder.004BD5ED
  004A1580  |.  8BF0          MOV ESI,EAX
  004A1582  |.  8B4424 24     MOV EAX,DWORD PTR SS:[ESP+24]
  004A1586  |.  53            PUSH EBX
  004A1587  |.  50            PUSH EAX
  004A1588  |.  55            PUSH EBP
  004A1589  |.  897424 28     MOV DWORD PTR SS:[ESP+28],ESI
  004A158D  |.  33FF          XOR EDI,EDI
  004A158F  |.  E8 0CFFFFFF   CALL builder.004A14A0
  004A1594  |.  8B6C24 34     MOV EBP,DWORD PTR SS:[ESP+34]
  004A1598  |.  53            PUSH EBX
  004A1599  |.  55            PUSH EBP
  004A159A  |.  56            PUSH ESI
  004A159B  |.  E8 00FFFFFF   CALL builder.004A14A0
  004A15A0  |.  8B7424 44     MOV ESI,DWORD PTR SS:[ESP+44]
  004A15A4  |.  81E6 FF000000 AND ESI,0FF
  004A15AA  |.  83C6 55       ADD ESI,55
  004A15AD  |.  81F6 FF000000 XOR ESI,0FF
  004A15B3  |.  8BCE          MOV ECX,ESI
  004A15B5  |.  C1E9 04       SHR ECX,4
  004A15B8  |.  51            PUSH ECX
  004A15B9  |.  E8 52FFFFFF   CALL builder.004A1510
  004A15BE  |.  8B5424 4C     MOV EDX,DWORD PTR SS:[ESP+4C]
  004A15C2  |.  83E6 0F       AND ESI,0F
  004A15C5  |.  56            PUSH ESI
  004A15C6  |.  8802          MOV BYTE PTR DS:[EDX],AL
  004A15C8  |.  E8 43FFFFFF   CALL builder.004A1510
  004A15CD  |.  8B7424 50     MOV ESI,DWORD PTR SS:[ESP+50]
  004A15D1  |.  83C4 28       ADD ESP,28
  004A15D4  |.  8846 01       MOV BYTE PTR DS:[ESI+1],AL
  004A15D7  |.  33C0          XOR EAX,EAX
  004A15D9  |.  85DB          TEST EBX,EBX
  004A15DB  |.  7E 24         JLE SHORT builder.004A1601
  004A15DD  |>  8A0C28        /MOV CL,BYTE PTR DS:[EAX+EBP]             ;取andrey&pasha
  004A15E0  |.  8BD7          |MOV EDX,EDI
  004A15E2  |.  81E1 FF000000 |AND ECX,0FF
  004A15E8  |.  81E2 FF000000 |AND EDX,0FF
  004A15EE  |.  33CA          |XOR ECX,EDX
  004A15F0  |.  C1EF 08       |SHR EDI,8
  004A15F3  |.  8B0C8D 387D4F>|MOV ECX,DWORD PTR DS:[ECX*4+4F7D38]      ;内存原始数据从何而来?(不明白:()
  004A15FA  |.  33F9          |XOR EDI,ECX
  004A15FC  |.  40            |INC EAX
  004A15FD  |.  3BC3          |CMP EAX,EBX                              ;取10个
  004A15FF  |.^ 7C DC         \JL SHORT builder.004A15DD
  004A1601  |>  83FB 02       CMP EBX,2
  004A1604  |.  7E 58         JLE SHORT builder.004A165E
  004A1606  |.  8B6C24 10     MOV EBP,DWORD PTR SS:[ESP+10]
  004A160A  |.  8D53 FE       LEA EDX,DWORD PTR DS:[EBX-2]
  004A160D  |.  8D4E 02       LEA ECX,DWORD PTR DS:[ESI+2]
  004A1610  |.  2BEE          SUB EBP,ESI
  004A1612  |.  895424 2C     MOV DWORD PTR SS:[ESP+2C],EDX
  004A1616  |>  8A0429        /MOV AL,BYTE PTR DS:[ECX+EBP]             ;从用户名的第三个字符开始"shSeeWater"
  004A1619  |.  8BD7          |MOV EDX,EDI
  004A161B  |.  25 FF000000   |AND EAX,0FF
  004A1620  |.  81E2 FF000000 |AND EDX,0FF
  004A1626  |.  33C2          |XOR EAX,EDX
  004A1628  |.  33D2          |XOR EDX,EDX
  004A162A  |.  C1EF 08       |SHR EDI,8
  004A162D  |.  8B0485 387D4F>|MOV EAX,DWORD PTR DS:[EAX*4+4F7D38]       ;内存原始数据从何而来?(不明白:()
  004A1634  |.  BE 24000000   |MOV ESI,24
  004A1639  |.  33F8          |XOR EDI,EAX
  004A163B  |.  8BC7          |MOV EAX,EDI
  004A163D  |.  F7F6          |DIV ESI
  004A163F  |.  83FA 0A       |CMP EDX,0A
  004A1642  |.  73 05         |JNB SHORT builder.004A1649
  004A1644  |.  80C2 30       |ADD DL,30
  004A1647  |.  EB 03         |JMP SHORT builder.004A164C
  004A1649  |>  80C2 37       |ADD DL,37
  004A164C  |>  8B4424 2C     |MOV EAX,DWORD PTR SS:[ESP+2C]
  004A1650  |.  8811          |MOV BYTE PTR DS:[ECX],DL                  ;计算结果存这里了。   
  004A1652  |.  41            |INC ECX
  004A1653  |.  48            |DEC EAX
  004A1654  |.  894424 2C     |MOV DWORD PTR SS:[ESP+2C],EAX
  004A1658  |.^ 75 BC         \JNZ SHORT builder.004A1616
  004A165A  |.  8B7424 28     MOV ESI,DWORD PTR SS:[ESP+28]              ;在这里ESI会出现 注册码。
  004A165E  |>  8B4C24 10     MOV ECX,DWORD PTR SS:[ESP+10]
  004A1662  |.  C6041E 00     MOV BYTE PTR DS:[ESI+EBX],0
  004A1666  |.  51            PUSH ECX
  004A1667  |.  E8 34080100   CALL builder.004B1EA0
  004A166C  |.  8B5424 18     MOV EDX,DWORD PTR SS:[ESP+18]
  004A1670  |.  52            PUSH EDX
  004A1671  |.  E8 2A080100   CALL builder.004B1EA0
  004A1676  |.  83C4 08       ADD ESP,8
  004A1679  |.  5F            POP EDI
  004A167A  |.  5E            POP ESI
  004A167B  |.  5D            POP EBP
  004A167C  |.  5B            POP EBX
  004A167D  |.  83C4 08       ADD ESP,8
  004A1680  \.  C3            RETN
 

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 7
支持
分享
最新回复 (8)
雪    币: 3689
活跃值: (4247)
能力值: (RANK:215 )
在线值:
发帖
回帖
粉丝
2
这个还是牛,我喜欢,学习了。
2006-7-4 16:16
0
雪    币: 768
活跃值: (530)
能力值: ( LV13,RANK:460 )
在线值:
发帖
回帖
粉丝
3
对了在这里感谢“小虾”版主,程序中的a6变量定义,没您的帮助现在还在郁闷呢

  怎么贴子发出来后,每行文字这么长?怎样让每行字“自动适应”浏览器的宽度?
2006-7-4 16:40
0
雪    币: 47147
活跃值: (20455)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
4
最初由 FishSeeWater 发布

怎么贴子发出来后,每行文字这么长?怎样让每行字“自动适应”浏览器的宽度?


将代码标签去除就行
2006-7-4 16:44
0
雪    币: 338
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
弄了几下注册表.不知道就是加入不进去.最后爆破了!!
2006-7-4 20:03
0
雪    币: 198
活跃值: (1585)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
实验MasmPlus方法成功,但算号错误。
2006-7-4 22:29
0
雪    币: 768
活跃值: (530)
能力值: ( LV13,RANK:460 )
在线值:
发帖
回帖
粉丝
7
最初由 bfqyygy 发布
弄了几下注册表.不知道就是加入不进去.最后爆破了!!

注册表的键值:
[HKEY_LOCAL_MACHINE\SOFTWARE\SDS Software\Installer2Go]
"username"="FishSeeWater"
"regcode"="78787878"

实验MasmPlus方法成功,但算号错误


不会吧:(
2006-7-5 09:59
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
楼上能否多多发这样的贴子,我们菜鸟愿意看
2006-7-5 10:01
0
雪    币: 434
活跃值: (18)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
谢谢提供,学习了!
2006-7-5 12:55
0
游客
登录 | 注册 方可回帖
返回
//