Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3089315
  • 博文数量: 797
  • 博客积分: 10134
  • 博客等级: 上将
  • 技术积分: 9335
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-22 22:57
个人简介

1

文章分类

全部博文(797)

文章存档

2022年(1)

2021年(2)

2017年(2)

2016年(1)

2015年(4)

2014年(1)

2013年(6)

2012年(6)

2011年(10)

2010年(26)

2009年(63)

2008年(61)

2007年(51)

2006年(563)

我的朋友

分类:

2010-11-26 09:31:11

【文章标题】: SetupFactory7脚本获取
【文章作者】: 4nil
【作者邮箱】: 4nil@163.com
【作者主页】: http://devilxlord.shineblog.com/
【软件名称】: 全国计算机等级考试模拟软件二级VB
【下载地址】: 自己搜索下载
【使用工具】: flyOD+Notepad+UltraEdit32
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
前2天有人叫我帮忙看这个软件,我就看了下,后来发现是安装包需要序列号,研究后发现是Setup
Factory 7.0制作。
我想,这种软件,可以搞到脚本应该就可以搞定了。
接着就开始找出它的脚本把。

首先用OD载入安装程序vbsetup.exe,F9运行。
此时它已经在临时文件夹下建立了一个安装程序,用于运行脚本和读取数据。
我们按下F12,让其暂停,看堆栈。。

代码:
0012E80C 00401922 返回到 VBSetup.00401922 来自 kernel32.CreateProcessA 0012E810 0012FC08 ASCII "C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\_ir_sf7_temp_6\irsetup.exe" 0012E814 0012F1FC ASCII "__IRAOFF:520716 "__IRAFN:G:\vbPJ\VBSetup.exe""
如下,其中第二项是临时程序地址,只是一个用于运行脚本的程序,下面那项是用于运行的命令参数。
那我们就找出它,直接用参数运行它就可以了。

打开一个新的OD,载入 irsetup.exe, 参数那填上,__IRAOFF:520716 "__IRAFN:G:\vbPJ\VBSetup.exe"。
因为它是一个脚本运行程序,脚本还在原文件vbsetup.exe,所以它必会读取这个文件,这也就是为什么参
数中会有原程序的绝对路径。那就下断点 bp CreateFileA
F9运行,断下,果然读取,我们继续F9两次,他生成了一个文件irsetup.dat,我用记事本打开看是脚本。
呵呵,脚本就这么容易找到了,你可以复制他,也可以修改它,但是要在现在,一会会被程序删除。

这里我只想破解注册码,我就看脚本。。。
其中有这么一段:
代码:
-- 获取用户输入的序列号 local strSerial = SessionVar.Expand("%SerialNumber%"); -- 你想要使用的序列号列表的名称,如:“序列号列表 1” -- (使用 nil 来仔细搜寻所有的序列号) local strListName = nil; -- 来自 _SUF70_Global_Functions.lua: -- 在指定序列号列表中仔细搜寻匹配项 local bSerialIsValid = g_IsSerialNumberInList(strSerial, strListName); -- 如果用户输入了有效的序列号,则进入下一个屏幕 -- 否则显示错误信息,并检查剩余重试次数 if(bSerialIsValid) then -- 进入下一个屏幕 Screen.Next(); else -- 用户输入了无效的序列号 SerialNumberScreen.AttemptCount = SerialNumberScreen.AttemptCount + 1; -- 显示“无效的序列号”信息 Dialog.Message(SetupData.GetLocalizedString("MSG_ERROR"), SetupData.GetLocalizedString("ERR_INVALID_SERIAL")); -- 如果超过重试次数则退出应用程序 if(SerialNumberScreen.AttemptCount >= SerialNumberScreen.MaxAttempts) then Application.Exit(0); end end
很明显 bSerialIsValid 就表示了注册码是否正确,我直接把他改为1不就ok了。好,我用
UltraEdit32修改,怕记事本改会破坏文件,把 bSerialIsValid 改为 1后面跟空格,符合
bSerialIsValid 这个的长度。好,改好保存,取消断点,OD F9运行,几个下一步之后进入
注册码验证页面,随便输入几个,成功bypass。

--------------------------------------------------------------------------------
【经验总结】
本文简单介绍了对Setup Factory 7.0生成的安装包的脚本的获得。以及简单的注册码bypass,
不足的是没有找到注册码存放的位置,有空再研究。

--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!
阅读(1870) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~