首页
社区
课程
招聘
Skype-未知壳,求助
2004-7-25 20:03 6004

Skype-未知壳,求助

2004-7-25 20:03
6004
因为我安装 SoftIce 3.0.1, Skype 都会发现他而无法启动
所以想 crack skype

我用 peid 看 Skype 是 Nothing found [Overlay] *
所以就??自己找 OEP

好像还满简单的 @@? 一下子就找到 OEP 是 00A0DFDC
用 LordPE dump 后,用 ImportIAT 1.42+ 修复 (没有无效的记录)

再用 peid 看脱壳后的 Skype, 发现是 Delphi 6.0, 7.0

但是却无法执行,会出现
Error(9901): Unfortunately the Skype executable is corrupted! Please re-install.

想请各位大哥帮帮忙,谢谢 Orn

因为脱壳的 Skype.exe 太大了 (8 mb) 所以无法传上来 QQ

Skype 下载地方:
http://www.skype.com/download.html

[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

收藏
点赞2
打赏
分享
最新回复 (5)
雪    币: 12878
活跃值: (3758)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
LOCKLOSE 2 2004-7-25 20:35
2
0
有自效验喽,慢慢跟一下~
雪    币: 896
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
fly 85 2004-7-26 01:26
3
0
        
        
        
调试环境:WinXP、Ollydbg、PEiD、LordPE、ImportREC、WinHex
―――――――――――――――――――――――――――――――――
一、脱壳
        
      
  
005A0020     B9 B6005A00         mov ecx,Skype.005A00B6//进入OD后停在这
005A0025     B8 39005A00         mov eax,Skype.005A0039
005A002A     29C1                sub ecx,eax
005A002C     BB 12120320         mov ebx,20031212
005A0031     301C01              xor byte ptr ds:[ecx+eax],bl
005A0034     C1C3 03             rol ebx,3
005A0037     E2 F8               loopd short Skype.005A0031
005A0039     BA 31164000         mov edx,Skype.00401631//F4过这个解码循环

        
很短的“壳”,可能是作者自己写的。
直接去下面的ret处下断,F9运行,中断后就走到OEP了。
     
   
――――――――――――――――――――――――
插曲:AnTi SoftIce
用Ollydbg脱壳可以不管他
        
005A0075     E8 26010000         call Skype.005A01A0//检测 SoftIce
005A007A     84C0                test al,al
005A007C     74 1C               je short Skype.005A009A
005A007E     6A 00               push 0
005A0080     FF35 50BCA900       push dword ptr ds:[A9BC50]
005A0086     FF35 54BCA900       push dword ptr ds:[A9BC54]
005A008C     6A 00               push 0
005A008E     E8 7982E6FF         call <jmp.&user32.MessageBoxA>//警告发现
005A0093     6A 01               push 1
005A0095     E8 D276E6FF         call <jmp.&kernel32.ExitProcess>//OVER
        
                  ――CreateFileW――
        
005A0129     E8 D675E6FF         call <jmp.&kernel32.CreateFileW>
005A012E     8945 F4             mov dword ptr ss:[ebp-C],eax
005A0131     837D F4 00          cmp dword ptr ss:[ebp-C],0
005A0135     76 15               jbe short Skype.005A014C
005A0137     837D F4 FF          cmp dword ptr ss:[ebp-C],-1
005A013B     73 0F               jnb short Skype.005A014C
005A013D     C645 FB 01          mov byte ptr ss:[ebp-5],1
005A0141     8B45 F4             mov eax,dword ptr ss:[ebp-C]
005A0144     50                  push eax
005A0145     E8 6A75E6FF         call <jmp.&kernel32.CloseHandle>
005A014A     EB 04               jmp short Skype.005A0150
        
005A00C4  5C 00 5C 00 2E 00 5C 00 4E 00 54 00 49 00 43 00  \.\...\.N.T.I.C.
005A00D4  45 00 00 00 5C 00 5C 00 2E 00 5C 00 53 00 69 00  E...\.\...\.S.i.
005A00E4  77 00 76 00 69 00 64 00 00 00 00 00 5C 5C 2E 5C  w.v.i.d.....\\.\
005A00F4  53 49 43 45 00 00 00 00 5C 5C 2E 5C 53 69 77 76  SICE....\\.\Siwv
005A0104  69 64 00 00 4E 00 55 00 4C 00 00                 id..N.U.L..
――――――――――――――――――――――――

        
005A009A     BA 011E1600         mov edx,161E01
005A009F     81C2 F74F9300       add edx,Skype.00934FF7
//EDX=00161E01 + 00934FF7=00A96DF8     OEP值 ★
005A00A5     52                  push edx
005A00A6     BF 20005A00         mov edi,Skype.<ModuleEntryPoint>
005A00AB     B9 B6005A00         mov ecx,Skype.005A00B6
005A00B0     29F9                sub ecx,edi
005A00B2     31C0                xor eax,eax
005A00B4     F3:AA               rep stos byte ptr es:[edi]//清扫
005A00B6     E8 113F0100         call Skype.005B3FCC
005A00BB     E8 B4FEFFFF         call Skype.0059FF74
005A00C0     C3                  retn//飞向光明之巅!:-)

        
      
 
00A96DF8     55                  push ebp//OEP  ★ DumP ★ 
00A96DF9     8BEC                mov ebp,esp
00A96DFB     B9 0A000000         mov ecx,0A
00A96E00     6A 00               push 0
00A96E02     6A 00               push 0
00A96E04     49                  dec ecx
00A96E05     75 F9               jnz short Skype.00A96E00
00A96E07     51                  push ecx
00A96E08     53                  push ebx
00A96E09     56                  push esi
00A96E0A     57                  push edi
00A96E0B     B8 2067A900         mov eax,Skype.00A96720
00A96E10     E8 FF0597FF         call Skype.00407414

        
用ImportREC修复输入表。
OEP: 00696DF8,IATRVA: 006A822C,IATSize: 00000A74
        
        
―――――――――――――――――――――――――――――――――
二、自校验
        
        
发现程序有Overlay数据,地址908600直至末尾,发现不补上这段数据也可以运行。
还是用WinHex复制、写入脱壳后的程序吧。
        
BP MessageBoxA就可以拦到出错的对话框了
      
 
0059EA70     8B0D C8BAA900       mov ecx,dword ptr ds:[A9BAC8]
0059EA76     8B15 B4BAA900       mov edx,dword ptr ds:[A9BAB4]
0059EA7C     A1 B0BAA900         mov eax,dword ptr ds:[A9BAB0]
0059EA81     E8 96110000         call dumped_1.0059FC1C
0059EA86     8945 F8             mov dword ptr ss:[ebp-8],eax
0059EA89     C645 FF 01          mov byte ptr ss:[ebp-1],1
0059EA8D     8B45 F8             mov eax,dword ptr ss:[ebp-8]
0059EA90     3B05 ECBAA900       cmp eax,dword ptr ds:[A9BAEC]//改为JMP  ★
0059EA96     74 45               je short dumped_1.0059EADD
0059EA98     A1 C8BAA900         mov eax,dword ptr ds:[A9BAC8]
0059EA9D     8B15 CCBAA900       mov edx,dword ptr ds:[A9BACC] 
0059EAA3     2BD0                sub edx,eax
0059EAA5     7C 18               jl short dumped_1.0059EABF
0059EAA7     42                  inc edx
0059EAA8     8955 F0             mov dword ptr ss:[ebp-10],edx
0059EAAB     8945 F4             mov dword ptr ss:[ebp-C],eax
0059EAAE     8B45 F4             mov eax,dword ptr ss:[ebp-C]
0059EAB1     C700 55000000       mov dword ptr ds:[eax],55
0059EAB7     FF45 F4             inc dword ptr ss:[ebp-C]
0059EABA     FF4D F0             dec dword ptr ss:[ebp-10]
0059EABD     75 EF               jnz short dumped_1.0059EAAE
0059EABF     6A 00               push 0
0059EAC1     68 3CEB5900         push dumped_1.0059EB3C ; ASCII "Skype"
0059EAC6     68 44EB5900         push dumped_1.0059EB44 ; ASCII "Error(9901): Unfortunately the Skype executable is corrupted! Please re-install!"
0059EACB     6A 00               push 0
0059EACD     E8 3298E6FF         call <jmp.&user32.MessageBoxA>//错误警告
0059EAD2     6A 00               push 0
0059EAD4     E8 8398E6FF         call <jmp.&user32.PostQuitMessage>
0059EAD9     C645 FF 00          mov byte ptr ss:[ebp-1],0
0059EADD     E8 0A130000         call dumped_1.0059FDEC
0059EAE2     8945 F8             mov dword ptr ss:[ebp-8],eax
0059EAE5     8B45 F8             mov eax,dword ptr ss:[ebp-8]
0059EAE8     3B05 F4BAA900       cmp eax,dword ptr ds:[A9BAF4]
0059EAEE     74 45               je short dumped_1.0059EB35

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

   
     Cracked By 巢水工作坊――fly [FCG][NUKE][DCM]

                2004-07-26  01:00
雪    币: 228
活跃值: (85)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
Skyer 2 2004-7-26 10:07
4
0
谢谢 fly 的帮忙,我已成功执行 Skype 了 ^^

那个 je 我有想过会不会是那边,因为只有那个 je 可以跳过 MessageBox

但是很奇怪的是,我在 OD 直接改 zero flag,然后继续执行 Skype 就会扼掉.. 如果我用原版的(还没脱壳)来Trace,那个 je 也不会 jump, 而还是跳出 Error Message

我不清楚自效验是如何效验的,会不会是中断点让自效验算出不一样的值呢 @@?

关于 Overlay, 不知道那是什么,就按 fly 说的没改,也可正常执行
我要再去找找 Overlay 的说明了 ^^

位址好像有点不一样,我的如下
0059C170   .  8B0D C82AA100            mov ecx,dword ptr ds:[A12AC8]            ; |Skype_d.00925004
0059C176   .  8B15 B42AA100            mov edx,dword ptr ds:[A12AB4]            ; |Skype_d.00A0EA00
0059C17C   .  A1 B02AA100              mov eax,dword ptr ds:[A12AB0]            ; |
0059C181   .  E8 96110000              call Skype_d.0059D31C                    ; \Skype_d.0059D31C
0059C186   .  8945 F8                  mov dword ptr ss:[ebp-8],eax
0059C189   .  C645 FF 01               mov byte ptr ss:[ebp-1],1
0059C18D   .  8B45 F8                  mov eax,dword ptr ss:[ebp-8]
0059C190   .  3B05 EC2AA100            cmp eax,dword ptr ds:[A12AEC]
0059C196   .  EB 45                    jmp short Skype_d.0059C1DD
0059C198   .  A1 C82AA100              mov eax,dword ptr ds:[A12AC8]
0059C19D   .  8B15 CC2AA100            mov edx,dword ptr ds:[A12ACC]            ;  Skype_d.00A08004
0059C1A3   .  2BD0                     sub edx,eax
0059C1A5   .  7C 18                    jl short Skype_d.0059C1BF
0059C1A7   .  42                       inc edx
0059C1A8   .  8955 F0                  mov dword ptr ss:[ebp-10],edx
0059C1AB   .  8945 F4                  mov dword ptr ss:[ebp-C],eax
0059C1AE   >  8B45 F4                  mov eax,dword ptr ss:[ebp-C]
0059C1B1   .  C700 55000000            mov dword ptr ds:[eax],55
0059C1B7   .  FF45 F4                  inc dword ptr ss:[ebp-C]
0059C1BA   .  FF4D F0                  dec dword ptr ss:[ebp-10]
0059C1BD   .^ 75 EF                    jnz short Skype_d.0059C1AE
0059C1BF   >  6A 00                    push 0                                   ; /Style = MB_OK|MB_APPLMODAL
0059C1C1   .  68 3CC25900              push Skype_d.0059C23C                    ; |Title = "Skype"
0059C1C6   .  68 44C25900              push Skype_d.0059C244                    ; |Text = "Error(9901): Unfortunately the Skype executable is corrupted! Please re-install!"
0059C1CB   .  6A 00                    push 0                                   ; |hOwner = NULL
0059C1CD   .  E8 92C0E6FF              call <jmp.&user32.MessageBoxA>           ; \MessageBoxA
0059C1D2   .  6A 00                    push 0                                   ; /ExitCode = 0
0059C1D4   .  E8 E3C0E6FF              call <jmp.&user32.PostQuitMessage>       ; \PostQuitMessage
0059C1D9   .  C645 FF 00               mov byte ptr ss:[ebp-1],0
0059C1DD   >  E8 0A130000              call Skype_d.0059D4EC
0059C1E2   .  8945 F8                  mov dword ptr ss:[ebp-8],eax
0059C1E5   .  8B45 F8                  mov eax,dword ptr ss:[ebp-8]
0059C1E8   .  3B05 F42AA100            cmp eax,dword ptr ds:[A12AF4]
0059C1EE   .  74 45                    je short Skype_d.0059C235


雪    币: 228
活跃值: (85)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
Skyer 2 2004-7-26 18:10
5
0

误会了,没成功 @@

我又重新跟我脱壳的 Skype 跟了好久,跟到这段

007F4E24  |.  84C0                     test al,al
007F4E26  |.  74 18                    je short Skype.007F4E40
007F4E28  |>  8B4C24 4C                /mov ecx,dword ptr ss:[esp+4C]
007F4E2C  |.  55                       |push ebp
007F4E2D  |.  53                       |push ebx
007F4E2E  |.  E8 01080000              |call Skype.007F5634
007F4E33  |.  8D4C24 30                |lea ecx,dword ptr ss:[esp+30]
007F4E37  |.  E8 58CDFAFF              |call Skype.007A1B94
007F4E3C  |.  84C0                     |test al,al
007F4E3E  |.^ 75 E8                    \jnz short Skype.007F4E28
007F4E40  |>  8D4C24 30                lea ecx,dword ptr ss:[esp+30]
007F4E44  |.  C64424 78 00             mov byte ptr ss:[esp+78],0

这段,看起来像是填 IAT, 我稍微看了一下.有
APIEventManager, CommLayer 等等,大概 jnz 跑了 30 次,就扼了..
好像迈入 infinity loop 出不来了 @@

我附上我脱的 Skype,请帮忙看看吧 QQ (3 mb @@)
http://jackyci.host.sk/Skype.rar
雪    币: 896
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
fly 85 2004-7-29 23:02
6
0
OEP和IAT的信息已经说过了
应该没难度的
游客
登录 | 注册 方可回帖
返回