首页
社区
课程
招聘
Ultra Protect脱壳 遇到问题,请老大们来看看!
发表于: 2005-5-5 15:43 4685

Ultra Protect脱壳 遇到问题,请老大们来看看!

2005-5-5 15:43
4685
看了FLY老大的(Ultra Protect脱壳+暗桩解除――股市风暴 V6.0 Build 156)文章后,自己学习脱Ultra Protect壳.遇到问题,请老大帮忙看看.
下载地址:  17fK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3I4&6P5r3S2Q4x3X3g2U0L8$3#2Q4x3V1k6V1L8%4N6F1L8r3!0S2k6q4)9J5c8W2b7J5c8p5E0o6h3g2A6k6i4K6u0W2M7X3q4J5
软件大小:  307K
运行平台:  Windows9X/ME/NT/2000/XP
更新日期:  2005-01-21
软件简介:  

调试环境:WinXP、flyODBG、PEiD、LordPE
设置Ollydbg忽略所有的异常选项。用IsDebug插件去掉Ollydbg的调试器标志。
004B9000 >  60                      pushad                            ; //进入Ollydbg后暂停在这
004B9001    E8 01000000             call T2DKCyzy.004B9007
004B9006    7A 83                   jpe short T2DKCyzy.004B8F8B
004B9008    C40485 C2F987C1         les eax,fword ptr ds:[eax*4+C187F9C2]
004B900F    33D6                    xor edx,esi
004B9011    4A                      dec edx
004B9012    E8 01000000             call T2DKCyzy.004B9018
下断:HE GetModuleHandleA   
Shift+F9运行,中断后取消断点。Alt+F9返回
004CB9FA   /EB 17                   jmp short T2DKCyzy.004CBA13
004CB9FC   |90                      nop
004CB9FD   |90                      nop
004CB9FE   |90                      nop
004CB9FF   |B8 E8030000             mov eax,3E8
004CBA04   |E8 97D2FFFF             call T2DKCyzy.004C8CA0
004CBA09   |8DBD 49614000           lea edi,dword ptr ss:[ebp+406149]
004CBA0F   |03F8                    add edi,eax
004CBA11   |AB                      stos dword ptr es:[edi]
004CBA12   |58                      pop eax
Ctrl+F在当前位置下搜索命令:rep stos byte ptr es:[edi]
找到在004CBC9A处,直接F4至004CBC9A
004CBC9A    F3:AA                   rep stos byte ptr es:[edi]
//清除DLL、函数名            不让壳清除,NOP掉 ★
004CBC9C    C3                      retn

004CE6BC    E8 0CD3FFFF             call T2DKCyzy.004CB9CD   处理输入表
004CE6C1    E8 3EF9FFFF             call T2DKCyzy.004CE004
//返回这里

继续下断:HE GetModuleHandleA   
Shift+F9运行,中断后取消断点。Alt+F9返回

004CD848    8366 0C 00              and dword ptr ds:[esi+C],0   
//清除输入表NAME,已经NOP掉
004CD84C    03C2                    add eax,edx
004CD84E    8BD8                    mov ebx,eax
004CD850    56                      push esi
004CD851    57                      push edi
004CD852    50                      push eax
004CD853    8BF3                    mov esi,ebx
004CD855    8BFB                    mov edi,ebx
004CD857    AC                      lods byte ptr ds:[esi]
004CD858    C0C0 03                 rol al,3
004CD85B    AA                      stos byte ptr es:[edi]
004CD85C    803F 00                 cmp byte ptr ds:[edi],0
004CD85F  ^ 75 F6                   jnz short T2DKCyzy.004CD857
004CD861    58                      pop eax
004CD862    5F                      pop edi
004CD863    5E                      pop esi
004CD864    50                      push eax
004CD865    FF95 90E24100           call dword ptr ss:[ebp+41E290]
004CD86B    0BC0                    or eax,eax
//返回到这里
程序返回到这里,此时输入表已经运行一次,清除了第一个Name指针,根据Fly老大的脱文,我把指针NAME修复了.
此时我的ESI = 004A2768 +上NOP掉那里的C = 004A276A 因为EBX = 004A3800 "KERNEL32.DLL" 所以004A276A =004A3800 -去基地址 =000A3800

004CD86D    75 43                   jnz short T2DKCyzy.004CD8B2
004CD86F    90                      nop
004CD870    90                      nop
004CD871    90                      nop
004CD872    90                      nop
004CD873    53                      push ebx
004CD874    FF95 94E24100           call dword ptr ss:[ebp+41E294]
004CD87A    0BC0                    or eax,eax
004CD87C    75 34                   jnz short T2DKCyzy.004CD8B2
004CD87E    90                      nop
004CD87F    90                      nop
004CD880    90                      nop
004CD881    90                      nop
004CD882    8B95 1FFC4000           mov edx,dword ptr ss:[ebp+40FC1F]
004CD888    0195 1D1F4000           add dword ptr ss:[ebp+401F1D],edx
004CD88E    0195 211F4000           add dword ptr ss:[ebp+401F21],edx
004CD894    6A 00                   push 0
004CD896    FFB5 1D1F4000           push dword ptr ss:[ebp+401F1D]
004CD89C    FFB5 211F4000           push dword ptr ss:[ebp+401F21]
004CD8A2    6A 00                   push 0
004CD8A4    FF95 9CE24100           call dword ptr ss:[ebp+41E29C]
004CD8AA    6A 00                   push 0
004CD8AC    FF95 98E24100           call dword ptr ss:[ebp+41E298]
004CD8B2    60                      pushad
004CD8B3    2BC0                    sub eax,eax
004CD8B5    8803                    mov byte ptr ds:[ebx],al         
//用完之后清空DLL名   NOP掉
004CD8B7    43                      inc ebx
004CD8B8    3803                    cmp byte ptr ds:[ebx],al
004CD8BA  ^ 75 F9                   jnz short T2DKCyzy.004CD8B5
004CD8BC    61                      popad
004CD8BD    8985 17FC4000           mov dword ptr ss:[ebp+40FC17],eax
004CD8C3    C785 1BFC4000 00000000  mov dword ptr ss:[ebp+40FC1B],0
004CD8CD    8B95 1FFC4000           mov edx,dword ptr ss:[ebp+40FC1F]
004CD8D3    8B06                    mov eax,dword ptr ds:[esi]
004CD8D5    0BC0                    or eax,eax
004CD8D7    75 07                   jnz short T2DKCyzy.004CD8E0
004CD8D9    90                      nop
004CD8DA    90                      nop
004CD8DB    90                      nop
004CD8DC    90                      nop
004CD8DD    8B46 10                 mov eax,dword ptr ds:[esi+10]
004CD8E0    03C2                    add eax,edx
004CD8E2    0385 1BFC4000           add eax,dword ptr ss:[ebp+40FC1B]
004CD8E8    8B18                    mov ebx,dword ptr ds:[eax]
004CD8EA    8B7E 10                 mov edi,dword ptr ds:[esi+10]
004CD8ED    03FA                    add edi,edx
004CD8EF    03BD 1BFC4000           add edi,dword ptr ss:[ebp+40FC1B]
004CD8F5    85DB                    test ebx,ebx
004CD8F7    0F84 62010000           je T2DKCyzy.004CDA5F
004CD8FD    F7C3 00000080           test ebx,80000000
004CD903    75 1D                   jnz short T2DKCyzy.004CD922
004CD905    90                      nop
004CD906    90                      nop
004CD907    90                      nop
004CD908    90                      nop
004CD909    03DA                    add ebx,edx
004CD90B    83C3 02                 add ebx,2
004CD90E    56                      push esi
004CD90F    57                      push edi
004CD910    50                      push eax
004CD911    8BF3                    mov esi,ebx
004CD913    8BFB                    mov edi,ebx
004CD915    AC                      lods byte ptr ds:[esi]
004CD916    C0C0 03                 rol al,3
004CD919    AA                      stos byte ptr es:[edi]
004CD91A    803F 00                 cmp byte ptr ds:[edi],0
004CD91D  ^ 75 F6                   jnz short T2DKCyzy.004CD915
004CD91F    58                      pop eax
004CD920    5F                      pop edi
004CD921    5E                      pop esi
004CD922    3B9D 1FFC4000           cmp ebx,dword ptr ss:[ebp+40FC1F]
004CD928    7C 11                   jl short T2DKCyzy.004CD93B
004CD92A    90                      nop
004CD92B    90                      nop
004CD92C    90                      nop
004CD92D    90                      nop
004CD92E    83BD 02244000 00        cmp dword ptr ss:[ebp+402402],0
004CD935    75 0A                   jnz short T2DKCyzy.004CD941
004CD937    90                      nop
004CD938    90                      nop
004CD939    90                      nop
004CD93A    90                      nop
004CD93B    81E3 FFFFFF0F           and ebx,0FFFFFFF
004CD941    53                      push ebx
004CD942    FFB5 17FC4000           push dword ptr ss:[ebp+40FC17]
004CD948    FF95 8CE24100           call dword ptr ss:[ebp+41E28C]
004CD94E    3B9D 1FFC4000           cmp ebx,dword ptr ss:[ebp+40FC1F]
004CD954    7C 0F                   jl short T2DKCyzy.004CD965
004CD956    90                      nop
004CD957    90                      nop
004CD958    90                      nop
004CD959    90                      nop
004CD95A    60                      pushad
004CD95B    2BC0                    sub eax,eax
004CD95D    8803                    mov byte ptr ds:[ebx],al      
//用完之后清空函数名   NOP掉
004CD95F    43                      inc ebx
004CD960    3803                    cmp byte ptr ds:[ebx],al
004CD962  ^ 75 F9                   jnz short T2DKCyzy.004CD95D
004CD964    61                      popad
004CD965    0BC0                    or eax,eax
004CD967  ^ 0F84 15FFFFFF           je T2DKCyzy.004CD882
004CD96D    3B85 9CE24100           cmp eax,dword ptr ss:[ebp+41E29C]
004CD973    74 20                   je short T2DKCyzy.004CD995
004CD975    90                      nop
004CD976    90                      nop
004CD977    90                      nop
004CD978    90                      nop
004CD979    3B85 9D014100           cmp eax,dword ptr ss:[ebp+41019D]
004CD97F    74 09                   je short T2DKCyzy.004CD98A
004CD981    90                      nop
004CD982    90                      nop
004CD983    90                      nop
004CD984    90                      nop
004CD985    EB 14                   jmp short T2DKCyzy.004CD99B
004CD987    90                      nop
004CD988    90                      nop
004CD989    90                      nop
004CD98A    8D85 0A024100           lea eax,dword ptr ss:[ebp+41020A]
004CD990    EB 09                   jmp short T2DKCyzy.004CD99B
004CD992    90                      nop
004CD993    90                      nop
004CD994    90                      nop
004CD995    8D85 24024100           lea eax,dword ptr ss:[ebp+410224]
004CD99B    56                      push esi
004CD99C    FFB5 17FC4000           push dword ptr ss:[ebp+40FC17]
004CD9A2    5E                      pop esi
004CD9A3    39B5 FA234000           cmp dword ptr ss:[ebp+4023FA],esi
004CD9A9    74 15                   je short T2DKCyzy.004CD9C0
004CD9AB    90                      nop
004CD9AC    90                      nop
004CD9AD    90                      nop
004CD9AE    90                      nop
004CD9AF    39B5 FE234000           cmp dword ptr ss:[ebp+4023FE],esi
004CD9B5    74 09                   je short T2DKCyzy.004CD9C0
004CD9B7    90                      nop
004CD9B8    90                      nop
004CD9B9    90                      nop
004CD9BA    90                      nop
004CD9BB    EB 63                   jmp short T2DKCyzy.004CDA20
004CD9BD    90                      nop
004CD9BE    90                      nop
004CD9BF    90                      nop
004CD9C0    80BD D2594100 00        cmp byte ptr ss:[ebp+4159D2],0
004CD9C7    74 57                   je short T2DKCyzy.004CDA20
004CD9C9    90                      nop
004CD9CA    90                      nop
004CD9CB    90                      nop
004CD9CC    90                      nop
004CD9CD    EB 07                   jmp short T2DKCyzy.004CD9D6
004CD9CF    90                      nop
004CD9D0    90                      nop
004CD9D1    90                      nop
004CD9D2    0100                    add dword ptr ds:[eax],eax
004CD9D4    0000                    add byte ptr ds:[eax],al
004CD9D6    8BB5 E4FC4000           mov esi,dword ptr ss:[ebp+40FCE4]
004CD9DC    83C6 0D                 add esi,0D
004CD9DF    81EE EA1B4000           sub esi,T2DKCyzy.00401BEA
004CD9E5    2BF5                    sub esi,ebp
004CD9E7    83FE 00                 cmp esi,0
004CD9EA    7F 34                   jg short T2DKCyzy.004CDA20
004CD9EC    90                      nop
004CD9ED    90                      nop
004CD9EE    90                      nop
004CD9EF    90                      nop
004CD9F0    8BB5 E4FC4000           mov esi,dword ptr ss:[ebp+40FCE4]
004CD9F6    53                      push ebx
004CD9F7    50                      push eax
004CD9F8    E8 A3B2FFFF             call T2DKCyzy.004C8CA0
004CD9FD    8BD8                    mov ebx,eax
004CD9FF    58                      pop eax
004CDA00    33C3                    xor eax,ebx
004CDA02    C606 68                 mov byte ptr ds:[esi],68
004CDA05    8946 01                 mov dword ptr ds:[esi+1],eax
004CDA08    C746 05 81342400        mov dword ptr ds:[esi+5],243481
004CDA0F    895E 08                 mov dword ptr ds:[esi+8],ebx
004CDA12    C646 0C C3              mov byte ptr ds:[esi+C],0C3
004CDA16    5B                      pop ebx
004CDA17    8BC6                    mov eax,esi
004CDA19    8385 E4FC4000 0D        add dword ptr ss:[ebp+40FCE4],0D
004CDA20    5E                      pop esi
004CDA21    60                      pushad
004CDA22    8BD0                    mov edx,eax
004CDA24    2BBD 1FFC4000           sub edi,dword ptr ss:[ebp+40FC1F]
004CDA2A    8BC7                    mov eax,edi
004CDA2C    B9 01010000             mov ecx,101
004CDA31    8DBD D3F04000           lea edi,dword ptr ss:[ebp+40F0D3]
004CDA37    F2:AF                   repne scas dword ptr es:[edi]
004CDA39    0BC9                    or ecx,ecx
004CDA3B    74 13                   je short T2DKCyzy.004CDA50
004CDA3D    90                      nop
004CDA3E    90                      nop
004CDA3F    90                      nop
004CDA40    90                      nop
004CDA41    81E9 01010000           sub ecx,101
004CDA47    F7D1                    not ecx
004CDA49    89948D D3EC4000         mov dword ptr ss:[ebp+ecx*4+40ECD3],edx
004CDA50    61                      popad
004CDA51    8907                    mov dword ptr ds:[edi],eax   
//API函数的系统地址(或者加密地址)填充到IAT中    NOP掉
004CDA53    8385 1BFC4000 04        add dword ptr ss:[ebp+40FC1B],4
004CDA5A  ^ E9 6EFEFFFF             jmp T2DKCyzy.004CD8CD
004CDA5F    83C6 14                 add esi,14
004CDA62    8B95 1FFC4000           mov edx,dword ptr ss:[ebp+40FC1F]
004CDA68  ^ E9 D0FDFFFF             jmp T2DKCyzy.004CD83D
004CDA6D    8DBD D3F04000           lea edi,dword ptr ss:[ebp+40F0D3]
//修改完后,直接F4到这里,Alt + M 设置内存访问断点在401000第二区段上设置内存访问断点,Shift+F9运行

0046968C    55                      push ebp
//中断在程序OEP LOADPE完全Dump进程.修复OPE为0006968C ,输入表000A2768或000a3800
//处理输入表为004cb9cd
运行程序就出错,用PE标准扫描还有壳在里面,深度扫描为VC++6.0

我试用OD载入
0046968C >/$  55                    push ebp                  ;  Structured exception handler
0046968D  |.  8BEC                  mov ebp,esp
0046968F  |.  83EC 08               sub esp,8
00469692  |.  53                    push ebx
00469693  |.  56                    push esi
00469694  |.  57                    push edi
00469695  |.  55                    push ebp
00469696  |.  FC                    cld
00469697  |.  8B5D 0C               mov ebx,dword ptr ss:[ebp+C]
0046969A  |.  8B45 08               mov eax,dword ptr ss:[ebp+8]
0046969D  |.  F740 04 06000000      test dword ptr ds:[eax+4],6
004696A4      0F85 82000000         jnz (2load)d.0046972C         //程序在这里跳走
004696AA  |.  8945 F8               mov dword ptr ss:[ebp-8],eax
004696AD  |.  8B45 10               mov eax,dword ptr ss:[ebp+10]

0046972C  |> \55                    push ebp
//来到这里
0046972D  |.  8D6B 10               lea ebp,dword ptr ds:[ebx+10]
00469730  |.  6A FF                 push -1
00469732  |.  53                    push ebx
00469733  |.  E8 9692FFFF           call (2load)d.004629CE   //运行这里出错,追进!!
00469738  |.  83C4 08               add esp,8

//来到这里

004629CE  /$  53                    push ebx
004629CF  |.  56                    push esi
004629D0  |.  57                    push edi
004629D1  |.  8B4424 10             mov eax,dword ptr ss:[esp+10]
004629D5  |.  50                    push eax
004629D6  |.  6A FE                 push -2
004629D8  |.  68 AC294600           push (2load)d.004629AC          ;  SE handler installation
004629DD  |.  64:FF35 00000000      push dword ptr fs:[0]
004629E4  |.  64:8925 00000000      mov dword ptr fs:[0],esp
004629EB  |>  8B4424 20             /mov eax,dword ptr ss:[esp+20]
004629EF  |.  8B58 08               |mov ebx,dword ptr ds:[eax+8]   //在这里出错程序终止!!!!1
004629F2  |.  8B70 0C               |mov esi,dword ptr ds:[eax+C]

不知出错在什么地方,请fly等大大们指正

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (13)
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
UPX
2
先把论坛Ultra Protect/ACPr教程中提到的目标程序都脱一下
2005-5-5 17:13
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我是看了fly老大(Ultra Protect脱壳+暗桩解除――股市风暴 V6.0 Build 156)文章,脱成功后,再试脱其它相同壳的.但是遇到这个问题了!
2005-5-5 19:05
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
老大什么时候来啊??搞三四天了,找不出头绪啊,加密解密都翻好几遍了.....5555555555
2005-5-5 22:41
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
键盘的F7 F8 都快给我搞烂了!!!!头发也乱了!!!!
才发现还有一重壳!help me
2005-5-6 01:50
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
昨晚用 Ultra Protect加壳记事本试脱,用了不同的选项,都能脱下,但是用了变形OEP就不行了.请问下我上面是不是到了真的OEP?

004CDA49    89948D D3EC4000         mov dword ptr ss:[ebp+ecx*4+40ECD3],edx
004CDA50    61                      popad
004CDA51    8907                    mov dword ptr ds:[edi],eax   
//API函数的系统地址(或者加密地址)填充到IAT中    NOP掉
004CDA53    8385 1BFC4000 04        add dword ptr ss:[ebp+40FC1B],4
004CDA5A  ^ E9 6EFEFFFF             jmp T2DKCyzy.004CD8CD
004CDA5F    83C6 14                 add esi,14
004CDA62    8B95 1FFC4000           mov edx,dword ptr ss:[ebp+40FC1F]
004CDA68  ^ E9 D0FDFFFF             jmp T2DKCyzy.004CD83D
004CDA6D    8DBD D3F04000           lea edi,dword ptr ss:[ebp+40F0D3]
//修改完后,直接F4到这里,Alt + M 设置内存访问断点在401000第二区段上设置内存访问断点,Shift+F9运行

0046968C    55                      push ebp
//中断在程序OEP LOADPE完全Dump进程.修复OPE为0006968C ,输入表000A2768或000a3800
//处理输入表为004cb9cd
运行程序就出错,用PE标准扫描还有壳在里面,深度扫描为VC++6.0
2005-5-6 13:52
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
谁可以给点思路啊???一点点就行???脱不了这壳饭都吃不下了!!!1
2005-5-6 14:56
0
雪    币: 898
活跃值: (4054)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
8
ACProtect的壳
Stolen OEP Code如下,其他的自己努力

00463A9E    55                   push ebp
00463A9F    8BEC                 mov ebp,esp
00463AA1    6A FF                push -1
00463AA3    68 00814900          push 498100
00463AA8    68 8C964600          push 46968C
00463AAD    64:A1 00000000       mov eax,dword ptr fs:[0]
00463AB3    50                   push eax
00463AB4    64:8925 00000000     mov dword ptr fs:[0],esp
00463ABB    83EC 58              sub esp,58
00463ABE    53                   push ebx
00463ABF    56                   push esi
00463AC0    57                   push edi
00463AC1    8965 E8              mov dword ptr ss:[ebp-18],esp
00463AC4    FF15 60B24800        call dword ptr ds:[48B260]; kernel32.GetVersion
00463ACA    33D2                 xor edx,edx
00463ACC    8AD4                 mov dl,ah
00463ACE    8915 BCEC4A00        mov dword ptr ds:[4AECBC],edx
00463AD4    8BC8                 mov ecx,eax
00463AD6    81E1 FF000000        and ecx,0FF
00463ADC    890D B8EC4A00        mov dword ptr ds:[4AECB8],ecx
00463AE2    C1E1 08              shl ecx,8
00463AE5    03CA                 add ecx,edx
00463AE7    890D B4EC4A00        mov dword ptr ds:[4AECB4],ecx
00463AED    C1E8 10              shr eax,10
00463AF0    A3 B0EC4A00          mov dword ptr ds:[4AECB0],eax
00463AF5    6A 01                push 1
00463AF7    E8 70620000          call 00469D6C
00463AFC    59                   pop ecx
00463AFD    85C0                 test eax,eax
00463AFF    75 08                jnz short 00463B09
2005-5-7 21:37
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
谢谢老大指教,我再看看
2005-5-8 00:32
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
再问个问题,我想知道OEP是怎么找到的啊?我想学学!他这个壳是用了变形的OEP吗?
2005-5-8 00:40
0
雪    币: 898
活跃值: (4054)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
11
我觉得现在该是你看《加密解密》、《看雪论坛精华》的时候
而不是一上来就要脱这个外挂
2005-5-8 09:33
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
老大,你别误会我意思,我只是想学学怎么脱这个壳,还有就是好奇大大怎么找出OEP的,如果你觉得这个不能解释,你可以换别的软件解释一下我听听...满足下我的好奇心....嘿嘿
再次感谢!
2005-5-8 16:39
0
雪    币: 898
活跃值: (4054)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
13
论坛搜索ACProtect的教程
2005-5-8 17:10
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
好的...谢谢
2005-5-8 17:57
0
游客
登录 | 注册 方可回帖
返回