风色幻想吧 关注:29,121贴子:1,000,796
  • 12回复贴,共1

[转]Securom7保护技术初步解密

只看楼主收藏回复

Securom7应该是现在最新版本的Securom了,现在我们来初步研究下。这次的目标是发明工坊2繁体版(其实被Securom7保护的游戏很多,但是像发明工坊2这样只有1CD容量的极少......)
首先入口与前一代有了区别,在区段上这次多了一个.INIT段,入口也指向这个区段内,而前一代是指向.text段内,通过跟踪得知这个区段的作用仅仅是为了解码并填充.text区段的代码(文件中.text区段的文件大小是0)。然后为了以后能跳过这一步,我们在运行到达.text区段的时候dump并修正OEP。这样的文件并不会影响Securom7的正确运行。
然后,从这里的OEP来看,Securom7像是用C++写的,当然这只是题外话。然后在他的WinMain里面才体现出与前一代明显的不同。这一次Securom7的代码非常的难以阅读,模式化的花指令使用,一片片的T标志位检查,还有对随处对代码的计算和的使用,其实如果只是前面2个,完全可以使用工具去处。但是第3个就会出问题,Securom7对代码计算和的使用有两种:一、判断是否与预期的计算和一致,不一致就引发异常;二、使用计算和参与2次加法运算,并以计算结果为下一个EIP。在这两种方法的交替使用下,想看懂代码确实很难。
之后Securom将出现异常,原因是他将检查每个0x1000的整数倍的地址的起始字节是不是"MZ",从程序的ImageBase+ImageSize至0xC0000000,估计目的是枚举内存中的模块。
下面如果你使用OD调试状态来运行,Securom会给你一个提示说一个必要的安全模块不能激活,不能继续执行。以分析而言,Securom7在运行中解压了一个DLL,它的注释是Securom context library for Explorer(好象是这个,忘了,因为后面并不需要关心它)。所以推测Securom在运行中会向父进程加载这个DLL,然后这个DLL在写入一些什么东西给Securom,以实现继续正确运行。
鉴于此,我们使用其他方法获取了程序的OEP,并dump后使用PEID检测为Borland C++ 1999。
下面我们来看这个dump出来的程序,首先我们看见区段表中不再有Securom的4个区段,然后我们使用OD载入之后发现IAT很完整,调用也没什么问题,但是有些call却是指向一个jmp [],其内存地址处于.Securom区段中,所以我们修改区段表,把被隐藏的Securom的部分重新补出。
然后我们进入了第一个JMP [](地址忘了,不是在自己机器上写的这个帖子...),首先是3个PUSH,然后PUSHFD,修改[ESP+4],然后POPFD,然后RETN至解码重定向过程。当然我们可以例遍所有的重定向将他们还原。
之后,我们看见大部分的这些跳转都回到了游戏的.text区段中,但是有一些还是在其他的地方,那些是Securom7的最大变态之处。这种偷代码的技术在很多保护软件中都有,但是像Securom7这种一偷就是一个过程,而且数量高达500个以上的我想不会太多。
在被偷走的代码里,被变形的并不多,只是会在遇到call的时候进行下变形,会是下面几种可能:
push 下一段代码的起点
jmp 调用位置
垃圾字节
下一段代码开始
或者是:
push 下一段代码的起点
push 调用位置
retn
垃圾字节
下一段代码开始

之中还会有一些对某个地址内的值减1的操作,然后你会发现减之前这些内存位置中的值就是1,为什么呢?其实只是为了下面那个je指令能成立,然后那个je指令会带我们回到游戏的.text区段中的一条让刚才做过减法的内存地址获得一个新的值,然后再下面是一个jmp指令回到前面je指令后面一条指令继续执行,也就是说实际上是一段没有任何意义的代码。
当然其中还有另一种变形的方式,只不过用的相对较少:
push Loc1
push Loc1
retn
垃圾字节
Loc1:
mov reg, 常量1 <-随机产生,或者是某个垃圾字节的位置
xor reg, 常量2 <-随机产生,或者是某个垃圾字节的位置
push reg
add [esp+4], 常量3 <-修改返回的地址
retn
好了,目前我也就到了这一步,希望没说什么让大家觉得奇怪的话。:D:


1楼2007-07-14 16:58回复
    - -!...这样还是破解不了风6吧...


    2楼2007-07-14 17:25
    回复
      2025-09-04 00:41:00
      广告
      不感兴趣
      开通SVIP免广告
      发明工坊2?

      正版也才56块

      没有破的必要啊—


      3楼2007-07-14 17:27
      回复
        破戒游戏最垃圾的行为你门也干啊~~(一点也不时尚)
        时尚的人都买正版~~~土包子才破戒游戏和买D版~
        一般买正版的品位都比土包子们高出大节~~~
        唉~~~中国的游戏市场就这样被土包子们摧残啊??
        真理好象往往在少数人手里啊~~


        4楼2007-07-14 19:11
        回复
          • 59.107.17.*
          摧一摧又没所谓....就算没破解.大部分人也不会买正版.最多不玩....

          俺们中国的穷人是斩不尽杀不绝的~~~!!!!!


          6楼2007-07-14 19:46
          回复
            • 125.93.175.*
            4楼的,才是垃圾


            7楼2007-07-14 19:46
            回复
              • 124.129.180.*
              ...可以说某种程度上正是有了四楼这种人的存在才使中国的Z版总是不行


              8楼2007-07-14 19:52
              回复
                • 218.95.161.*
                说白了支持正版也要有个东西...
                个人而言,喜欢的游戏如果正版能第一时间买到我下载都嫌麻烦...
                同样.不管多喜欢的游戏,MLGB下载外地玩上几个月快半年我才能买
                到个残缺不全,面目全非,毛病一堆的正版的话,我还能说什么呢?
                现在大多人就算支持正版,意义就在于一个收藏,然,盗版猖獗是中国
                特色,正版被当作收藏品又何尝不是中国特色?
                相隔没多远的台湾正版上市几天,我们这边连个时间都没有...
                那么,继续发扬个人一贯作风,等破解,玩完了游戏,正版能在3个月内
                见到就买,见不到无视


                10楼2007-07-14 21:18
                回复
                  2025-09-04 00:35:00
                  广告
                  不感兴趣
                  开通SVIP免广告
                  • 121.26.132.*
                  LS说了大实话啊!:


                  11楼2007-07-15 10:47
                  回复
                    • 125.34.199.*
                    谁让咱们现在是河蟹蛇会

                    东说一句,西改一块,游戏能活着不被整容就不错了。真是河蟹阿


                    12楼2007-07-15 10:58
                    回复
                      • 124.224.45.*
                      精神上支持一下楼主,没技术唉- -b


                      13楼2007-07-15 11:50
                      回复
                        • 60.191.13.*
                        偶倒是买的正版,不过Securom的BT线下注册哪是给人用的,花了我¥47+7DAY3H(大约时间)还没破解,为此千方百计的搅和圜宇弘煜,今天看到这古董帖,激动啊…


                        14楼2008-03-22 18:32
                        回复
                          风六?已经破了啊

                          Y。A。S。U破的


                          IP属地:吉林15楼2008-03-23 23:34
                          回复