首页
社区
课程
招聘
InstallSheild打包的软件安装时要序列号的问题
发表于: 2010-1-5 20:16 5546

InstallSheild打包的软件安装时要序列号的问题

2010-1-5 20:16
5546
某个软件安装包由InstallSheild制作成EXE格式包,安装时需要输入用户名,公司名和序列号(如图)。序列号处默认是DEMO,点下一步可以安装成试用版软件,如果输出其他内容点下一步会显示“The Serial Number have Error.Please Check again.”

怎么样才能在安装时序列号输入成其他内容时认为序列号正确而能安装正式版而非DEMO版呢?用uniextract解包后再用SID反编译setup.inx得到如下片段,但是看不懂,不知道怎么分析,希望对这类分析有所心得的朋友指点一下,到底怎么修改才能安装正式版而不是试用版。

注意到有个ReturnSN()和CheckSN(),上传此setup.inx文件,盼指点。

......
......
@000074F3:000B   label_74f3:
@000074F5:0006      local_string2 = "";
@000074FF:0006      local_string1 = "";
@00007509:0021      function_625();
@0000750F:0006      local_string21 = LASTRESULT;
@00007519:0014      local_string21 = (local_string21 ^ "JUSOFT_DLL.dll");
@00007534:0039      UseDll(local_string21);
@0000753B:0020      ReturnSN("AB", "12"); // dll: JUSOFT_DLL.dll
@0000754B:0006      local_string12 = LASTRESULT;
@00007555:000D      local_number9 = (local_string12 = "");
@00007562:0004      if(local_number9) then // ref index: 1
@0000756E:0006         local_string12 = "DEMO";
@0000757C:0005      endif;
@0000757C:0005   label_757c:
@0000757E:0021      SdRegisterUserEx(local_string1, local_string2, local_string5, local_string6, local_string12);
@00007593:0006      local_number1 = LASTRESULT;
@0000759D:000D      local_number9 = (local_number1 = 12);
@000075AC:0004      if(local_number9) then // ref index: 1
@000075B8:0005         goto label_7086;
@000075C1:0008      endif;
@000075C1:0008   label_75c1:
@000075C3:000E      local_number9 = (local_string12 != "DEMO");
@000075D4:0004      if(local_number9) then // ref index: 2
@000075E0:0020         CheckSN(local_string12); // dll: JUSOFT_DLL.dll
@000075E9:0006         local_string13 = LASTRESULT;
@000075F3:000E         local_number9 = (local_string13 != "AB");
@00007602:0004         if(local_number9) then // ref index: 1
@0000760E:0021            function_439("The Serial Number have Error.\r\nPlease Check again.", -65533);
@0000764E:0005            goto label_74f3;
@00007657:0001         endif;
@00007657:0001   label_7657:
@00007659:0005         goto label_7695;
@00007662:0003      endif;
@00007662:0003   label_7662:
@00007664:0021      function_396("IDS_DEMO_MESSAGE");
@0000767D:0006      local_string15 = LASTRESULT;
@00007687:0021      function_439(local_string15, -65535);
......
......

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 1478
活跃值: (4007)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
CG-100 SDI字幕软件?

prototype STRING JUSOFT_DLL.CheckSN(STRING);
prototype INT JUSOFT_DLL.RegDB(STRING, STRING, STRING, STRING, STRING);
prototype STRING JUSOFT_DLL.ReturnSN(STRING, STRING);

CheckSN(序列号)必须等于"AB"
RegDB(用户名, 公司名, 序列号, "12", "AB"); // dll: JUSOFT_DLL.dll 必须返回1
返回0是"Setup Error!\r\nPlease use administrator account loing in."
返回2是"Hardware configuration is incorrect."
返回3是"Hardware configuration is incorrect."
在JUSOFT_DLL.dll中应该会检测软件狗??
自己写个程序调用JUSOFT_DLL.dll,构造个序列号,用RegDB去检测吧
2010-1-6 00:07
0
雪    币: 114
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
对,就是CG-100这个软件,JUSOFT_DLL.dll估计在那个CAB包里,看来它在安装时不光要检测序列号,还要检测加密狗,自己写个DLL构造序列号不会呀,呵呵,先学习过再说吧,多谢方向感!!!
2010-1-6 11:12
0
雪    币: 114
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
那个JUSOFT_DLL.dll是在CAB包里,有没有什么办法只修改这个setup.inx而让软件顺利安装?
2010-1-6 15:08
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
5
改inx不就好了
2010-1-6 16:32
0
雪    币: 114
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
果然是这样,修改local_number9 = (local_string13 != "AB");将!=改成=就跳过去了

多谢两位老师提示!
2010-1-6 21:49
0
游客
登录 | 注册 方可回帖
返回
//