首页
社区
课程
招聘
[旧帖] [求助]EXECryptor 2.2.4脱壳后的修复? 0.00雪花
发表于: 2007-10-25 13:04 6263

[旧帖] [求助]EXECryptor 2.2.4脱壳后的修复? 0.00雪花

2007-10-25 13:04
6263
一个服务管理软件,二次加密的
下载地址:http://it.dudu.com/xingyeguanli/jiankangyiyao/ling_chuang_yi_yuan_xin_xi_guan_li_xi_tong_113075.shtml
是EXECryptor 2.2.4 -> Strongbit/SoftComplete Development (h1) *的壳
脱完壳无法运行,高手请帮看看
设置忽略所有异常,事件停在系统断点。
  
  ---系统断点---
0169E9E9    E8 EBFEFFFF     CALL lzwhis.0169E8D9
0169E9EE    05 621A0000     ADD EAX,1A62
0169E9F3    FFE0            JMP EAX
0169E9F5    E8 04000000     CALL lzwhis.0169E9FE
0169E9FA    FFFF            ???                                      ; 未知命令
0169E9FC    FFFF            ???                                      ; 未知命令
0169E9FE    5E              POP ESI
0169E9FF    C3              RETN

运行Bypass AntiDBG OEP-ESTO脚本。
  
  1、出现2个异常,Shift+F9通过。
  2、来到OEP。
  
011A8709  ^\E9 9A63FCFF     JMP lzwhis.0116EAA8                      ; True or fake OEP!
011A870E  ^ E9 D74CFEFF     JMP lzwhis.0118D3EA
011A8713  ^ E9 452FFCFF     JMP lzwhis.0116B65D
011A8718    E9 F2F10300     JMP lzwhis.011E790F
011A871D    E9 3CE70400     JMP lzwhis.011F6E5E
011A8722    9D              POPFD
011A8723    873424          XCHG DWORD PTR SS:[ESP],ESI
011A8726    E9 2B750200     JMP lzwhis.011CFC56
011A872B    C3              RETN

---解密IAT----
  1、Ctrl+G:00401000,新建EIP。
  2、确定加密IAT表地址。LordPE查看区段表,BSS下面的c3usshcz即加密IAT区段。
  A、虚拟偏移 54D000+400000=94D000。
  B、在OD数据窗口定位Ctrl+G: 94D000
  C、确定IAT表开始、结束位置。

0094D331    0000            ADD BYTE PTR DS:[EAX],AL                 ; IATstart
0094D333    006E 58         ADD BYTE PTR DS:[ESI+58],CH
0094D336    16              PUSH SS
0094D337    0173 48         ADD DWORD PTR DS:[EBX+48],ESI
0094D33A    2001            AND BYTE PTR DS:[ECX],AL
0094D33C    63D0            ARPL AX,DX
0094D33E    1B01            SBB EAX,DWORD PTR DS:[ECX]
0094D340    57              PUSH EDI
0094D341    8E1B            MOV DS,WORD PTR DS:[EBX]                 ;段寄存器修饰
0094D343    01FA            ADD EDX,EDI
....................
0094DDB9    28D4            SUB AH,DL
0094DDBB    0200            ADD AL,BYTE PTR DS:[EAX]
0094DDBD    0000            ADD BYTE PTR DS:[EAX],AL
0094DDBF    0020            ADD BYTE PTR DS:[EAX],AH
0094DDC1    28D4            SUB AH,DL
0094DDC3    0200            ADD AL,BYTE PTR DS:[EAX]
0094DDC5    0000            ADD BYTE PTR DS:[EAX],AL
0094DDC7    0020            ADD BYTE PTR DS:[EAX],AH
0094DDC9    28D4            SUB AH,DL
0094DDCB    0200            ADD AL,BYTE PTR DS:[EAX]
0094DDCD    0000            ADD BYTE PTR DS:[EAX],AL                 ; IATend
0094DDCF    0000            ADD BYTE PTR DS:[EAX],AL
0094DDD1    0000            ADD BYTE PTR DS:[EAX],AL

D、修改ExeCryptor 2.xx IAT Rebuilder v1.1脚本。
mov IATstart,0094D331
mov IATend,0094DDCD
3、运行ExeCryptor 2.xx IAT Rebuilder v1.1脚本。

0094D330  00000000
0094D334  7C808FBC  ASCII "NTDLL.RtlDeleteCriticalSection"
0094D338  7C80911B  ASCII "NTDLL.RtlLeaveCriticalSection"
0094D33C  7C80900F  ASCII "NTDLL.RtlEnterCriticalSection"
0094D340  7C809EF1  kernel32.InitializeCriticalSection
0094D344  7C809AE4  kernel32.VirtualFree
0094D348  7C809A51  kernel32.VirtualAlloc
0094D34C  7C80992F  kernel32.LocalFree
0094D350  7C80998D  kernel32.LocalAlloc
0094D354  7C80929C  kernel32.GetTickCount
0094D358  7C80A427  kernel32.QueryPerformanceCounter
0094D35C  7C8111DA  kernel32.GetVersion
0094D360  7C809728  kernel32.GetCurrentThreadId

................
IAT解密完成,脚本结束。
---转存、修复转存---
  1、用PETools转存为dumped.exe。
  2、用ImportREC,OEP=00DA8709,RVA=54D330
  3、保存为dumped_.exe。
  修复转存结束。

---还原TLS---
  
  1、确定原TLS表地址。LordPE查看区段表,.rdata头部即原TLS表地址。      ;这里用这办法失败
  2、修改TLS表RVA=00552000,保存。                                     ;这里把他清零先

----修复OEP---
  
  OD载入dumped_.exe,来到伪OEP。
  011A8709  ^\E9 9A63FCFF     JMP lzwhis.0116EAA8                      ; True or fake OEP!
011A870E  ^ E9 D74CFEFF     JMP lzwhis.0118D3EA
011A8713  ^ E9 452FFCFF     JMP lzwhis.0116B65D
011A8718    E9 F2F10300     JMP lzwhis.011E790F
011A871D    E9 3CE70400     JMP lzwhis.011F6E5E
011A8722    9D              POPFD
011A8723    873424          XCHG DWORD PTR SS:[ESP],ESI
011A8726    E9 2B750200     JMP lzwhis.011CFC56
011A872B    C3              RETN
  
  Ctrl+G:00401000。
  Ctrl+S:jmp 011A8709。
  
0093D280   .- E9 84B48600   JMP Dumped_.<模块入口点>
0093D285   .  845A 8B       TEST BYTE PTR DS:[EDX-75],BL
0093D288   >  6A 00         PUSH 0
0093D28A   .  6A 00         PUSH 0
0093D28C   .  49            DEC ECX
0093D28D   .^ 75 F9         JNZ SHORT Dumped_.0093D288
0093D28F   .  53            PUSH EBX
0093D290   .  56            PUSH ESI
0093D291   .  57            PUSH EDI
0093D292   .  B8 68C19300   MOV EAX,Dumped_.0093C168
0093D297   .  E8 6C9EACFF   CALL Dumped_.00407108

  参考一 软件修复OEP。
  
00938968 >  55              push    ebp
00938969    8BEC            mov     ebp, esp
0093896B    B9 12000000     mov     ecx, 12
00938970    6A 00           push    0
00938972    6A 00           push    0
00938974    49              dec     ecx
00938975  ^ 75 F9           jnz     short 00938970
00938977    53              push    ebx
00938978    56              push    esi
00938979    57              push    edi
0093897A    B8 40789300     mov     eax, 00937840
0093897F    E8 DCECACFF     call    00407660
00938984    33C0            xor     eax, eax
00938986    55              push    ebp
00938987    68 F8919300     push    009391F8
0093898C    64:FF30         push    dword ptr fs:[eax]
0093898F    64:8920         mov     dword ptr fs:[eax], esp
00938992    A1 340C9400     mov     eax, dword ptr [940C34]
00938997    8B00            mov     eax, dword ptr [eax]
00938999    E8 2666B6FF     call    0049EFC4

  
  保存为dumped_A.exe。用LordPE修改已修复OEP的脱壳文件dumped_A.exe,OEP=0053D280。至此文件还无法运行!!!

  ====================================================================================================
OD载入dumped_A.exe,来出错的地方
00404658   .  3BF3          CMP ESI,EBX
0040465A   .  7E 14         JLE SHORT Dumped_A.00404670
0040465C   >  8B04DF        MOV EAX,DWORD PTR DS:[EDI+EBX*8]
0040465F   .  43            INC EBX
00404660   .  891D 44769400 MOV DWORD PTR DS:[947644],EBX
00404666   .  85C0          TEST EAX,EAX
00404668   .  74 02         JE SHORT Dumped_A.0040466C
0040466A   .  FFD0          CALL EAX
0040466C   >  3BF3          CMP ESI,EBX
0040466E   .^ 7F EC         JG SHORT Dumped_A.0040465C
在这里循环,后出错,我在0040466A下条件记录断点EAX,出错后看记录
地址=004070D2  消息=访问违例: 读取 [00000000]
到004070D2看下
004070BC  /$  8A0D 64769400 MOV CL,BYTE PTR DS:[947664]
004070C2  |.  A1 A4F09300   MOV EAX,DWORD PTR DS:[93F0A4]
004070C7  |.  84C9          TEST CL,CL
004070C9      74 26         JE SHORT Dumped_A.004070F1
004070CB  |.  64:8B15 2C000>MOV EDX,DWORD PTR FS:[2C]
004070D2  |.  8B0482        MOV EAX,DWORD PTR DS:[EDX+EAX*4]         ;在这里访问违例
004070D5  |.  C3            RETN
004070D6  |>  E8 9DFFFFFF   CALL Dumped_A.00407078
004070DB  |.  A1 A4F09300   MOV EAX,DWORD PTR DS:[93F0A4]
004070E0  |.  50            PUSH EAX                                 ; /TlsIndex => 0
004070E1  |.  E8 6EFFFFFF   CALL <JMP.&kernel32.TlsGetValue>         ; \TlsGetValue
004070E6  |.  85C0          TEST EAX,EAX
004070E8  |.  74 01         JE SHORT Dumped_A.004070EB
004070EA  |.  C3            RETN
004070EB  |>  A1 70769400   MOV EAX,DWORD PTR DS:[947670]
004070F0  |.  C3            RETN
004070F1  |>  50            PUSH EAX                                 ; /TlsIndex
004070F2  |.  E8 5DFFFFFF   CALL <JMP.&kernel32.TlsGetValue>         ; \TlsGetValue
004070F7  |.  85C0          TEST EAX,EAX
004070F9  |.^ 74 DB         JE SHORT Dumped_A.004070D6
004070FB  \.  C3            RETN

看上面有一个比较跳转,我试着改变跳转004070C9 74 26  JE SHORT Dumped_A.004070F1改为004070C9  75 26   JNZ SHORT

Dumped_A.004070F1,重载入程序,Ctrl+G:004070C9修改运行,看到程序介面了,还是自动终止程序,不开OD运行,程序介面一出来就自动关

了,追上看下:
0093D9E8   .  B1 01         MOV CL,1
0093D9EA   .  E8 2D8DADFF   CALL Dumped_A.0041671C                    ;这里出现第一个异常Shift+F8过去
0093D9EF   .  8D95 6CFFFFFF LEA EDX,DWORD PTR SS:[EBP-94]
0093D9F5   .  58            POP EAX
0093D9F6   .  E8 79D3ADFF   CALL Dumped_A.0041AD74
0093D9FB   .  8D85 7CFFFFFF LEA EAX,DWORD PTR SS:[EBP-84]
0093DA01   .  E8 3E55ADFF   CALL Dumped_A.00412F44
0093DA06   .  8BD8          MOV EBX,EAX
0093DA08   .  A1 BCC19400   MOV EAX,DWORD PTR DS:[94C1BC]
0093DA0D   .  E8 7EC6ACFF   CALL Dumped_A.0040A090
0093DA12   .  BA 09000000   MOV EDX,9
0093DA17   .  2BD0          SUB EDX,EAX
0093DA19   .  3BDA          CMP EBX,EDX
0093DA1B   .  0F8F 87010000 JG Dumped_A.0093DBA8
0093DA21   .  8D95 64FFFFFF LEA EDX,DWORD PTR SS:[EBP-9C]
0093DA27   .  A1 C4C19400   MOV EAX,DWORD PTR DS:[94C1C4]
0093DA2C      E8 87C0ACFF   CALL Dumped_A.00409AB8                     ;到这里F8-前进

到这里
00404A64   > \F0:FF42 F8    LOCK INC DWORD PTR DS:[EDX-8]            ;  LOCK 前缀
00404A68   >  8710          XCHG DWORD PTR DS:[EAX],EDX
00404A6A   .  85D2          TEST EDX,EDX
00404A6C      74 14         JE SHORT Dumped_A.00404A82
00404A6E   .  8B4A F8       MOV ECX,DWORD PTR DS:[EDX-8]
00404A71   .  49            DEC ECX
00404A72   .  7C 0E         JL SHORT Dumped_A.00404A82
00404A74   .  F0:FF4A F8    LOCK DEC DWORD PTR DS:[EDX-8]            ;  LOCK 前缀  这里就访问违例:写入到7C930730
00404A78   .  75 08         JNZ SHORT Dumped_A.00404A82
00404A7A   .  8D42 F8       LEA EAX,DWORD PTR DS:[EDX-8]
00404A7D   .  E8 1EDEFFFF   CALL Dumped_A.004028A0
00404A82   >  C3            RETN

Shift+F8几次程序自动终止,我把7C930730也贴出来,请各位看下,教教我接下来该怎么办!!!!

7C930730---
7C930730    FFFF            ???                                      ; 未知命令
7C930732    C2 0400         RETN 4

往上看一下就变成这样了:
7C930730    FFFF            ???                                      ; 未知命令
7C930732    C2 0400         RETN 4

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

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
高手们帮我看下,还是没解好,这是下载地址:http://it.dudu.com/xingyeguanli/jiankangyiyao/ling_chuang_yi_yuan_xin_xi_guan_li_xi_tong_113075.shtml
2007-11-6 02:08
0
雪    币: 817
活跃值: (1927)
能力值: ( LV12,RANK:2670 )
在线值:
发帖
回帖
粉丝
3
哪里是二次加密的?  软件作者自身就用的是EXECryptor加密作为授权系统,so 没有人帮是正常的!
2007-11-6 07:53
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
这个是二次加密的,软件原程序下载:http://download.it168.com/05/0507/20316/20316_3.shtml
软件经过破解修改,然后用用EXECryptor加密的!
2007-11-6 22:21
0
雪    币: 817
活跃值: (1927)
能力值: ( LV12,RANK:2670 )
在线值:
发帖
回帖
粉丝
5
难道是同一软件?2个界面?
2007-11-7 16:23
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
仔细看下就知道了,改点介面的东西很简单!
2007-11-8 10:43
0
雪    币: 817
活跃值: (1927)
能力值: ( LV12,RANK:2670 )
在线值:
发帖
回帖
粉丝
7
那肯定是有人放出去了
http://www.0wei.com/viewthread.php?tid=14792
2007-11-8 15:33
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
据我所知,不应该是零位的那个脱壳补丁,这个二次加密版应该是完整版的,无暗病的,经过严格测试的。
2007-11-9 21:55
0
游客
登录 | 注册 方可回帖
返回
//