【文章标题】: 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,
  不足的是没有找到注册码存放的位置,有空再研究。
  
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2007年02月13日 下午 01:55:34