• 标 题:ASProtect 1.23RC4-1.3.08.24 脱壳+破解——VideoSplitter V2.31
  • 作 者:fly
  • 时 间:2004-1-04 周日, 下午5:29
  • 链 接:http://bbs.pediy.com

ASProtect 1.23RC4-1.3.08.24 脱壳+破解——VideoSplitter V2.31
 
 
 
下载页面: http://www.fixdown.com/soft/8414.htm
软件语言: 英文  
软件类型: 国外软件 / 文件分割 
运行环境: Win9x/NT/2000/XP/ 
软件大小: 705KB 
软件等级: *** 
整理时间: 2003-9-27 0:43:36 
开 发 商: http://www.boilsoft.com/videosplitter 

【软件简介】:一个AVI/MPEG/ASF/WMV分机的分割,合并工具,也包括了AVI和MPEG的播放器在里面,你可以很轻松的利用这个播放器把你喜欢的片断截取下来。 

【保护方式】:ASProtect壳+试用期限

【作者声明】:只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!

【调试环境】:WinXP、Ollydbg1.09、PEiD、LordPE、AsprDbgr、ImportREC

————————————————————————————————— 
【脱壳过程】:
          
        

一、寻找OEP


设置Ollydbg忽略除了“内存访问异常”之外的所有其它异常选项。老规矩:用IsDebug 1.4插件去掉Ollydbg的调试器标志。载入后弹出“是压缩代码——要继续进行分析吗?”,点“否”。


00401000     68 01604B00          push VideoSpl.004B6001//进入OD后停在这!
00401005     E8 01000000          call VideoSpl.0040100B
0040100A     C3                   retn

F9运行,程序会在异常处中断。Shift+F9通过异常,26次,看见如下代码就要停下了:

00A639EC     3100                 xor dword ptr ds:[eax],eax//第26次异常 

这整段代码几乎是固定的,很好判断。另外:再按一次Shift+F9程序就会运行。

00A639EE     64:8F05 00000000     pop dword ptr fs:[0]
00A639F5     58                   pop eax
00A639F6     833D B07EA600 00     cmp dword ptr ds:[A67EB0],0
00A639FD     74 14                je short 00A63A13
00A639FF     6A 0C                push 0C
00A63A01     B9 B07EA600          mov ecx,0A67EB0
00A63A06     8D45 F8              lea eax,dword ptr ss:[ebp-8]
00A63A09     BA 04000000          mov edx,4
00A63A0E     E8 2DD1FFFF          call 00A60B40
00A63A13     FF75 FC              push dword ptr ss:[ebp-4]
00A63A16     FF75 F8              push dword ptr ss:[ebp-8]
00A63A19     8B45 F4              mov eax,dword ptr ss:[ebp-C]
00A63A1C     8338 00              cmp dword ptr ds:[eax],0
00A63A1F     74 02                je short 00A63A23
00A63A21     FF30                 push dword ptr ds:[eax]
00A63A23     FF75 F0              push dword ptr ss:[ebp-10]
00A63A26     FF75 EC              push dword ptr ss:[ebp-14]
00A63A29     C3                   retn//直接在这下断!Shift+F9断在这!返回到00A75FE0


00A75FE0     E9 08000000          jmp 00A75FED
00A75FED     E8 0D000000          call 00A75FFF

TC EIP<700000   使用模拟跟踪吧!几十秒后Ollydbg自动暂停在 0044E404

————————————————————————
查看 运行跟踪 ,很容易看见从壳中返回程序的地方:

00A761FF     F3:AA                rep stos byte ptr es:[edi]
00A76201     9D                   popfd
00A76202     5F                   pop edi
00A76203     59                   pop ecx
00A76204     C3                   retn//这里返回程序 0044E404

00A76205     55                   push ebp
00A76206     8BEC                 mov ebp,esp
00A76208     53                   push ebx
00A76209     56                   push esi
00A7620A     8B75 0C              mov esi,dword ptr ss:[ebp+C]
00A7620D     8B5D 08              mov ebx,dword ptr ss:[ebp+8]

————————————————————————

0044E404     FF15 EC314700        call dword ptr ds:[4731EC]//暂停在这!


—————————————————————————————————
二、补上OEP处的Stolen Code



直接在Ollydbg里复制00A76205-00A7620F处的的2进制代码,粘贴到0044E3F9-0044E403处,补上Stolen Code


0044E3F9     55                   push ebp//在这儿用LordPE纠正ImageSize后完全DUMP这个进程
0044E3FA     8BEC                 mov ebp,esp
0044E3FC     53                   push ebx
0044E3FD     56                   push esi
0044E3FE     8B75 0C              mov esi,dword ptr ss:[ebp+C]
0044E401     8B5D 08              mov ebx,dword ptr ss:[ebp+8]//这上面的字节是补上的Stolen Code

0044E404     FF15 EC314700        call dword ptr ds:[4731EC]
0044E40A     33D2                 xor edx,edx
0044E40C     8AD4                 mov dl,ah
0044E40E     8915 28F44900        mov dword ptr ds:[49F428],edx
0044E414     8BC8                 mov ecx,eax
0044E416     81E1 FF000000        and ecx,0FF
0044E41C     890D 24F44900        mov dword ptr ds:[49F424],ecx
0044E422     C1E1 08              shl ecx,8
0044E425     03CA                 add ecx,edx
0044E427     890D 20F44900        mov dword ptr ds:[49F420],ecx
0044E42D     C1E8 10              shr eax,10
0044E430     A3 1CF44900          mov dword ptr ds:[49F41C],eax
0044E435     6A 01                push 1
0044E437     E8 882C0000          call VideoSpl.004510C4


—————————————————————————————————
三、修复输入表


试试AsprDbgr v1.0beta吧,用AsprDbgr v1.0beta载入VideoSplitter.exe

☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

AsprDbgr v1.0beta (icon_razz.gif) Made by me... Manko.

  iEP=401000 (E:试炼场脱壳学习ASProtectVideoSplitterVideoSplitter.exe)

  GST returns to: A52667
    Trick aspr GST... (EAX=12121212h)
  GV returns to: A61A61
    IAT Start: 473000
          End: 4737A4
       Length: 7A4
      IATentry 4731EC = A61C8C resolved as GetVersion
      IATentry 4731FC = A61CC8 resolved as LockResource
      IATentry 473244 = A61CD8 resolved as GetCommandLineA
      IATentry 4732C8 = A61C64 resolved as GetModuleHandleA
      IATentry 4732F4 = A61CB8 resolved as GetCurrentProcess
      IATentry 473370 = A617A4 resolved as GetProcAddress
    0 invalid entries erased.
  Dip-Table at adress: A67AB4
    0 0 0 0 0 0 0 0 0 0 40D4B0 40D4A0 40D490 0
  Last SEH passed. Searching for signatures. Singlestepping to OEP!
    Call + OEP-jump-setup at: A77458 ( Code: E8000000 5D81ED )
    Mutated, stolen bytes at: A774A3 ( Code: 613EEB02 CD202EEB )
    Erase of stolen bytes at: A77407 ( Code: 9CFCBF46 74A700B9 )
      Repz ... found. Skipping erase of stolen bytes. icon_wink.gif
  Dip from pre-OEP: 44E404 (Reached from: A77418)
  GST returns to: 40BEC4
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

运行ImportREC,选择这个进程。把OEP改为0004E404,点IT AutoSearch,点“Get Import”,呵呵,函数全部有效。把OEP改回0004E3F9 ,FixDump。
 

—————————————————————————————————
四、消除暗桩


程序依然是无法正常运行的,寻找程序是哪里出错的。

0040DD4D     FF15 8CD64800        call dword ptr ds:[48D68C]//进入00A61C08

00A61C55     5E                   pop esi
00A61C56     5B                   pop ebx
00A61C57     5D                   pop ebp
00A61C58     C2 0800              retn 8//返回 0040DD53

Ctrl+F 在程序空间里查找命令:retn 8   随便找一个吧:

00403B74     C2 0800              retn 8

把48D68C处的 00A61C08 改为:00403B74
0048D68C  08 1C A6 00 //旧的指针 icon_sad.gif
0048D68C  74 3B 40 00 //新的指针 icon_biggrin.gif

0040DD4D     FF15 8CD64800        call dword ptr ds:[48D68C]  
00403B74     C2 0800              retn 8


这个暗桩的处理简单点,按照 jingulong 兄的指点,作如上修改就能正常运行了。 icon_biggrin.gif


—————————————————————————————————
五、破解 


0040E8B7     E8 7C540500          call 1-dumped.00463D38
0040E8BC     8B86 00460000        mov eax,dword ptr ds:[esi+4600]
0040E8C2     85C0                 test eax,eax
0040E8C4     75 51                jnz short 1-dumped.0040E917
0040E8C6     A1 98254900          mov eax,dword ptr ds:[492598]

把以上代码改为:

0040E8B7     E8 7C540500          call 1-dumped.00463D38
0040E8BC     C7860046000001000000 mov dword ptr ds:[esi+4600],1
0040E8C6     EB 4F                jmp short 1-dumped.0040E917


[esi+4600]处是全局注册标志,手动给其赋1,一切OK啦!icon_smile.gif

[HKEY_LOCAL_MACHINESOFTWAREBoilSoftVideo SplitterSN]
"name"="fly"
"sn"="1234-2345"

随意填入注册信息,呵呵


—————————————————————————————————
    
                                
         ,     _/ 
        /| _.-~/            _     ,        青春都一饷
       ( /~   /              ~-._ |
       `\  _/                   ~ )          忍把浮名 
   _-~~~-.)  )__/;;,.          _  //'
  /'_,   --~    ~~~-  ,;;___(  (.-~~~-.        换了破解轻狂
 `~ _( ,_..-- (     ,;'' /    ~--   /._` 
  /~~//'   /' `~         ) /--.._, )_  `~
  "  `~"  "      `"      /~'`    `\~~   
                         "     "   "~'  ""

    

     Cracked By 巢水工作坊——fly [OCN][FCG][NUKE]

               2004-01-04  17:05