首页
社区
课程
招聘
[求助]TMD脱壳求助,搞了一周不见效果!
发表于: 2012-2-12 07:16 19406

[求助]TMD脱壳求助,搞了一周不见效果!

2012-2-12 07:16
19406
不知道放在这里是否合适,若不合适请版主帮忙转移!PEID查壳为TMD的壳,用大大们的脚本跑了多遍无果,内存地址和硬件断点都弄了,还是不行,望高手能分析一下。。。难道的真的无敌了!

感谢大侠的帮助!

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (20)
雪    币: 208
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
请下载的大侠给点思路!
2012-2-13 08:06
0
雪    币: 208
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
看样是不好脱了!
2012-2-16 21:25
0
雪    币: 454
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
应该不是TMD壳吧!
2012-2-16 22:39
0
雪    币: 111
活跃值: (29)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
确实是TMD的壳,如下结构为典型的TMD壳开头代码:
(跟踪了以下,可以确定是TMD 1.8以上版本的)

0059F000 g>  83EC 04         sub esp,4
0059F003     50              push eax
0059F004     53              push ebx
0059F005     E8 01000000     call get.0059F00B
0059F00A     CC              int3
0059F00B     58              pop eax
0059F00C     8BD8            mov ebx,eax
0059F00E     40              inc eax
0059F00F     2D 00200A00     sub eax,0A2000
0059F014     2D 2BE85F00     sub eax,5FE82B
0059F019     05 20E85F00     add eax,5FE820
0059F01E     803B CC         cmp byte ptr ds:[ebx],0CC
0059F021     75 19           jnz short get.0059F03C
0059F023     C603 00         mov byte ptr ds:[ebx],0
0059F026     BB 00100000     mov ebx,1000
0059F02B     68 0444E562     push 62E54404
0059F030     68 0D53C339     push 39C3530D
0059F035     53              push ebx
0059F036     50              push eax
0059F037     E8 0A000000     call get.0059F046
0059F03C     83C0 00         add eax,0
0059F03F     894424 08       mov dword ptr ss:[esp+8],eax
0059F043     5B              pop ebx
0059F044     58              pop eax
0059F045     C3              retn

跟踪到这里就是老版本TMD的壳开始特征代码了(也就是1.8之前的版本)

004FD000     B8 00000000     mov eax,0
004FD005     60              pushad
004FD006     0BC0            or eax,eax
004FD008     74 68           je short get.004FD072
004FD00A     E8 00000000     call get.004FD00F
004FD00F     58              pop eax
004FD010     05 53000000     add eax,53
004FD015     8038 E9         cmp byte ptr ds:[eax],0E9
004FD018     75 13           jnz short get.004FD02D
004FD01A     61              popad
004FD01B     EB 45           jmp short get.004FD062
004FD01D     DB2D 50146500   fld tbyte ptr ds:[651450]
004FD023     FFFF            ???                                     ; 未知命令
004FD025     FFFF            ???                                     ; 未知命令
004FD027     FFFF            ???                                     ; 未知命令
004FD029     FFFF            ???                                     ; 未知命令
004FD02B     3D 40E80000     cmp eax,0E840
004FD030     0000            add byte ptr ds:[eax],al
004FD032     58              pop eax
004FD033     25 00F0FFFF     and eax,FFFFF000
004FD038     33FF            xor edi,edi
004FD03A     66:BB 195A      mov bx,5A19
004FD03E     66:83C3 34      add bx,34
004FD042     66:3918         cmp word ptr ds:[eax],bx
004FD045     75 12           jnz short get.004FD059

开OD,用Themida - Winlicense 1.x - 2.x Imports Fixer Edition 1.1 by SnD脚本直接跑完,得到如下IAT修复数据。
用LPE截取内存镜象,先纠正内存镜象大小,再完整转存;用IAT修复工具修复IAT数据。

IAT的修复数据地址:

IAT start: 0041BFFC
IAT end: 0041C33C
IAT Size: 00000340

这是假OEP入口:(有部分开始代码被偷了,修复请看我以前发的VC程序被偷OEP代码的修复教程)

0041582F     6A 02           push 2                                  ; The (near) OEP, by quosego/SnD
00415831     FF15 0CC24100   call dword ptr ds:[41C20C]              ; msvcrt.__set_app_type
00415837     59              pop ecx
00415838     830D 24FA4200 F>or dword ptr ds:[42FA24],FFFFFFFF
0041583F     830D 28FA4200 F>or dword ptr ds:[42FA28],FFFFFFFF
00415846     FF15 10C24100   call dword ptr ds:[41C210]              ; msvcrt.__p__fmode
0041584C     8B0D D8F94200   mov ecx,dword ptr ds:[42F9D8]
00415852     8908            mov dword ptr ds:[eax],ecx
00415854     FF15 14C24100   call dword ptr ds:[41C214]              ; msvcrt.__p__commode
0041585A     8B0D D4F94200   mov ecx,dword ptr ds:[42F9D4]
00415860     8908            mov dword ptr ds:[eax],ecx
00415862     A1 18C24100     mov eax,dword ptr ds:[41C218]
00415867     8B00            mov eax,dword ptr ds:[eax]
00415869     A3 20FA4200     mov dword ptr ds:[42FA20],eax
0041586E     E8 1C010000     call get.0041598F
00415873     391D 30284200   cmp dword ptr ds:[422830],ebx
00415879     75 0C           jnz short get.00415887
0041587B     68 8C594100     push get.0041598C
00415880     FF15 1CC24100   call dword ptr ds:[41C21C]              ; msvcrt.__setusermatherr
00415886     59              pop ecx
00415887     E8 EE000000     call get.0041597A

修复完真实OEP被偷的代码,补上修复代码,重定位EIP到修复代码的开始地址,保存修改数据,就完工了。过程不是很详细,望好运。
2012-2-19 23:30
0
雪    币: 208
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
感谢兄弟指教,按照你的方法修复保存后,无法运行,能否把修复的文件上传上了,看能否运行!
2012-2-20 12:16
0
雪    币: 111
活跃值: (29)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
既然是学习,就按我说的思路去试试看吧。不要总是做伸手党,有些知识需要自己实践才能理解透彻的。
VC程序的OEP头代码修复的方法我发过教程的,百度上有转载的,可以搜到。
2012-2-20 19:37
0
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
8
修复完毕的 OEP

00415804                /. >push    ebp                       // 传说中的光明之巅
00415805                |. >mov     ebp, esp
00415807                |. >push    -1
00415809                |. >push    0041C438
0041580E                |. >push    <jmp.&msvcrt._except_handler3>             ;  SE handler installation   -----》 415990
00415813                |. >mov     eax, dword ptr fs:[0]
00415819                |. >push    eax
0041581A                |. >mov     dword ptr fs:[0], esp
00415821                |. >sub     esp, 68
00415824                |. >push    ebx
00415825                |. >push    esi
00415826                |. >push    edi
00415827                |. >mov     dword ptr [ebp-18], esp
0041582A                |. >xor     ebx, ebx
0041582C                |. >mov     dword ptr [ebp-4], ebx
0041582F                |. >push    2

以上是偷取的部分

00415831                |. >call    dword ptr [<&msvcrt.__set_app_type>]       ;  msvcrt.__set_app_type
00415837                |. >pop     ecx
00415838                |. >or      dword ptr [42FA24], FFFFFFFF
0041583F                |. >or      dword ptr [42FA28], FFFFFFFF
00415846                |. >call    dword ptr [<&msvcrt.__p__fmode>]           ;  msvcrt.__p__fmode
0041584C                |. >mov     ecx, dword ptr [42F9D8]
00415852                |. >mov     dword ptr [eax], ecx
00415854                |. >call    dword ptr [<&msvcrt.__p__commode>]         ;  msvcrt.__p__commode
0041585A                |. >mov     ecx, dword ptr [42F9D4]
00415860                |. >mov     dword ptr [eax], ecx
00415862                |. >mov     eax, dword ptr [<&msvcrt._adjust_fdiv>]
00415867                |. >mov     eax, dword ptr [eax]
00415869                |. >mov     dword ptr [42FA20], eax
0041586E                |. >call    0041598F
00415873                |. >cmp     dword ptr [422830], ebx
00415879                |. >jnz     short 00415887
0041587B                |. >push    0041598C
00415880                |. >call    dword ptr [<&msvcrt.__setusermatherr>]     ;  msvcrt.__setusermatherr
00415886                |. >pop     ecx
00415887                |> >call    0041597A
0041588C                |. >push    0041E028
00415891                |. >push    0041E024
00415896                |. >call    <jmp.&msvcrt._initterm>
0041589B                |. >mov     eax, dword ptr [42F9D0]
004158A0                |. >mov     dword ptr [ebp-6C], eax
004158A3                |. >lea     eax, dword ptr [ebp-6C]
004158A6                |. >push    eax
004158A7                |. >push    dword ptr [42F9CC]
004158AD                |. >lea     eax, dword ptr [ebp-64]
004158B0                |. >push    eax
004158B1                |. >lea     eax, dword ptr [ebp-70]
004158B4                |. >push    eax
004158B5                |. >lea     eax, dword ptr [ebp-60]
004158B8                |. >push    eax
004158B9                |. >call    dword ptr [<&msvcrt.__getmainargs>]        ;  msvcrt.__getmainargs
004158BF                |. >push    0041E020
004158C4                |. >push    0041E000
004158C9                |. >call    <jmp.&msvcrt._initterm>
004158CE                |. >add     esp, 24
004158D1                |. >mov     eax, dword ptr [<&msvcrt._acmdln>]
004158D6                |. >mov     esi, dword ptr [eax]
004158D8                |. >mov     dword ptr [ebp-74], esi
004158DB                |. >cmp     byte ptr [esi], 22
004158DE                |. >jnz     short 0041591A
004158E0                |> >/inc     esi
004158E1                |. >|mov     dword ptr [ebp-74], esi
004158E4                |. >|mov     al, byte ptr [esi]
004158E6                |. >|cmp     al, bl
004158E8                |. >|je      short 004158EE
004158EA                |. >|cmp     al, 22
004158EC                |.^>\jnz     short 004158E0
004158EE                |> >cmp     byte ptr [esi], 22
004158F1                |. >jnz     short 004158F7
004158F3                |> >inc     esi
004158F4                |. >mov     dword ptr [ebp-74], esi
004158F7                |> >mov     al, byte ptr [esi]
004158F9                |. >cmp     al, bl
004158FB                |. >je      short 00415901
004158FD                |. >cmp     al, 20
004158FF                |.^>jbe     short 004158F3
00415901                |> >mov     dword ptr [ebp-30], ebx
00415904                |. >lea     eax, dword ptr [ebp-5C]
00415907                |. >push    eax                                        ; /pStartupinfo
00415908                |. >call    dword ptr [<&kernel32.GetStartupInfoA>]    ; \GetStartupInfoA
0041590E                |. >test    byte ptr [ebp-30], 1
00415912                |. >je      short 00415925
00415914                |. >movzx   eax, word ptr [ebp-2C]
00415918                |. >jmp     short 00415928
0041591A                |> >/cmp     byte ptr [esi], 20
0041591D                |.^>|jbe     short 004158F7
0041591F                |. >|inc     esi
00415920                |. >|mov     dword ptr [ebp-74], esi
00415923                |.^>\jmp     short 0041591A
00415925                |> >push    0A
00415927                |. >pop     eax
00415928                |> >push    eax
00415929                |. >push    esi
0041592A                |. >push    ebx
0041592B                |. >push    ebx                                        ; /pModule
0041592C                |. >call    dword ptr [<&kernel32.GetModuleHandleA>]   ; \GetModuleHandleA
00415932                |. >push    eax
00415933                |. >call    00402AB0
00415938                |. >mov     dword ptr [ebp-68], eax
0041593B                |. >push    eax                                        ; /status
0041593C                |. >call    dword ptr [<&msvcrt.exit>]                 ; \exit
00415942                |. >mov     eax, dword ptr [ebp-14]
00415945                |. >mov     ecx, dword ptr [eax]
00415947                |. >mov     ecx, dword ptr [ecx]
00415949                |. >mov     dword ptr [ebp-78], ecx
0041594C                |. >push    eax
0041594D                |. >push    ecx
0041594E                |. >call    <jmp.&msvcrt._XcptFilter>
00415953                |. >pop     ecx
00415954                |. >pop     ecx
00415955                \. >retn
2012-2-20 20:50
0
雪    币: 612
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
强大
2012-2-20 22:14
0
雪    币: 208
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
希望成功脱壳的大侠们上传个脱壳后的文件!
2012-2-21 15:47
0
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
11
你发个邮箱吧,我也是很久没碰 TMD 了,无聊之作。。。
2012-2-21 17:37
0
雪    币: 91
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
这个壳一般人是很头疼的
2012-2-21 21:14
0
雪    币: 208
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
感谢提供帮助!
2012-2-22 14:52
0
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
14
发了,你去看看
2012-2-22 18:26
0
雪    币: 208
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
感谢!              你的帮助!
2012-2-22 22:12
0
雪    币: 67
活跃值: (581)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
好多大牛........
2012-8-2 18:26
0
雪    币: 51
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
不留样本?
2013-7-18 04:19
0
雪    币: 81
活跃值: (100)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
18
tmd难道已经不算强壳了吗
2013-7-18 20:35
0
雪    币: 23
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
不会 脱TMD啊
2013-7-30 23:53
0
雪    币: 9
活跃值: (334)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
文件  汗
2013-10-12 18:21
0
雪    币: 2375
活跃值: (433)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
花了多久脱壳的?
2013-10-29 06:16
0
游客
登录 | 注册 方可回帖
返回
//