以壳解壳:ASProtect 1.23RC4壳的Stolen Code简便解决方案(附图)

日期: 2010-03-14 来源:TechTarget中国

  如今的猛壳们把Stolen Code越做越变态,虽然大部分Stolen Code都可以分析出来,但是有点费时间。这次以Resource Builder 2.1.0.3为例来演示一种ASProtect 1.23RC4壳的Stolen Code简便解决方案。这个方法我曾经见过飞速兄用过。在壳把所有的代码解压之后、处理Stolen Code之前,把进程Dump出来,补上那段壳代码,模仿构造当时的堆栈和寄存器值环境,这样就由壳自己来解决Stolen Code的问题啦。推而广之,这个Stolen Code简便解决方案也适用于某些其他壳。

下载页面:http://www.superdown.com/soft/17405.htm
软件大小:4250KB
软件语言:英文
软件类别:国外软件 / 共享版 / 编程开发
运行环境:Win9x/WinNT/2000/ME/XP
软件介绍:自称是自Borland Resource WorkShop 4.5后的长久期待>可以直接打开资源文件,可以导入.exe文件并可选择指定的资源以便于修改,修改后只能存为资源格式,如果直接打开表但可以类似exescope一样修改,如果是导入的话,只能看到16进制码。
调试环境:WinXP、Ollydbg1.10B、PEiD、LordPE、AsprDbgr、ImportREC 1.42+

  一、Pre-Dip:用自己的名字注册
      
  老规矩:用IsDebug 1.4插件去掉Ollydbg的调试器标志。
因为程序的rbcore.dll和sicmplr.dll也是用了ASProtect加壳,所以我们先忽略所有的异常选项,当Ollydbg弹出“是压缩代码――要继续进行分析吗?”,点“否”。接着设置Ollydbg忽略除了“内存访问异常”之外的所有其它异常选项。
     

  代码:

以壳解壳1

  Shift+F9运行,注意看堆栈,当第2次在堆栈中看见“8wh3JAAQjOI=”硬盘指纹时,可以处理了。
代码:

以壳解壳2

  以壳解壳3

  Alt+M打开内存查看窗口,在00401000段下 内存访问断点,Shift+F9通过异常,断下代码:

以壳解壳4

  过了00578676之后,[620484]处应该是保存的注册用户名,找一段空地,在613B00处写入:fly  [OCN][FCG][NUKE][DCM],然后把[620484]处的值改为613B00。OK,这个Pre-Dip处理完毕。感谢lipton兄的指教。这个程序有几个功能的代码需要真正的Key才能解开,所以这只是伪注册罢了。
           

  二、Dump以及区域脱壳
           
           
  取消内存断点,继续Shift+F9运行。来到ASProtect最后1次典型异常处。
           

  代码:

以壳解壳5

  此时ESP=0012FF5C,看看堆栈,使用ESP定律

以壳解壳6

  0012FF68=0012FFA4,选中0012FF68转存处的4个字节,下“硬件访问->Word”断点。F9运行,中断下来

以壳解壳7

以壳解壳8

以壳解壳9

  OK,现在我们不去分析这个东东的Stolen Code,程序代码已经解开,可以用LordPE纠正ImageSize后完全DUMP这个进程了!
接着 区域脱壳:012C0000,大小=00008000,也就是脱出上面的部分壳处理代码段。
           
  下面走至伪OEP:在012C6A54处下断,F9运行,断下。

以壳解壳10

以壳解壳11

  F7走下去,来到伪OEP处。当然这个东东的Stolen Code也不难分析出来,这里只是作为一个例子来演示罢了。

以壳解壳12

  现在我们来“组装”一下dumped.exe。呵呵,用LordPE打开dumped.exe,从磁盘载入刚才区域脱壳的Region012C0000-012C8000.dmp区段,修改其Voffset=00EC0000,只保留LordPE的“验证PE”选项,重建PE。Dump完成!
           
  三、用AsprDbgr搞定输入表
         
    代码:

以壳解壳13

  运行ImportREC 1.42+,选择这个进程。填入:RVA=0022A21C,Size=00000990,点IT AutoSearch,点“Get Import”,剪切掉几个无效的函数,把OEP改为00EC0000,FixDump!
            
    四、以壳解壳:Stolen Code简便解决方案
           
           
  现在的OEP是012C0000,修改其入口代码为:
           

  代码:

以壳解壳14

  这样就利用了原壳的代码来处理Stolen Code了。保存之后就可以运行了。
             
    五、2个暗桩的修复
           
           
  1、另外当点击“Option”时会自动退出,跟踪程序找到异常出错的地方
           

  代码:

以壳解壳15

以壳解壳16

  2、点击“Link To EXE”时会自动退出

以壳解壳17

  原来005788E4这里还检测了原程序的入口地址,改为JMP就行了。
“Edit as Text”和“Link To EXE”的功能代码是需要真正的Key才能解压的,没办法啦。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。