首页
社区
课程
招聘
[原创][新手练习]UnpackMe_006[分析及脱壳-图文+动画]
发表于: 2009-5-16 06:21 14951

[原创][新手练习]UnpackMe_006[分析及脱壳-图文+动画]

2009-5-16 06:21
14951
先来个快速到达 OEP 方法,目的是让你先有点成功感,想了解为什么这么做,怎么知道要这么做的朋友可以看下面详细分析过程。

后面详细分析过程中我会用不同的方法来脱壳及修复,图文教程用了一种方法,动画中也略有不同,脚本中修复 IAT 又用了跟图文教程中也不一样的方法来修复 IAT。

OD 载入程序后在 00401000 断下个"设置内存写入断点",SHIFT + F9 中断后删除刚才的断点。

然后再下一条指令 POP ESI 上下 F2 断点,中断后删除 F2 断点再在 00401000 断下个"设置内存写入断点"。

中断后删除刚才的断点,因为是 C 或汇编写的程序,所以下 bp GetModuleHandleA 后 SHIFT + F9 4 次就到 OEP 了。

这里断在 00401007 处,真正的 OEP 应该是 00401000。
004059F2 >  55              PUSH EBP                                 ; OD 载入后停在 EP 处
004059F3    8BEC            MOV EBP,ESP
004059F5    83C4 F4         ADD ESP,-0C
004059F8    83C4 0C         ADD ESP,0C
004059FB    50              PUSH EAX
004059FC    EB 02           JMP SHORT 00405A00
004059FE    0000            ADD BYTE PTR DS:[EAX],AL
7C80AE40 kernel32.GetProcAddress          8BFF            MOV EDI,EDI
7C80AE42                            55              PUSH EBP
7C80AE43                            8BEC            MOV EBP,ESP
7C80AE45                            51              PUSH ECX                                 ; 断在这里
7C80AE46                            51              PUSH ECX
7C80AE47                            53              PUSH EBX
7C80AE48                            57              PUSH EDI
00950AA3      33DB            XOR EBX,EBX                              ; 返回到这里
00950AA5      60              PUSHAD
00950AA6      EB 03           JMP SHORT 00950AAB
00950AA8      EB 03           JMP SHORT 00950AAD
00950AAA      C7              ???                                      ; 未知命令
00940B42    83C4 04         ADD ESP,4
00940B45    85D2            TEST EDX,EDX
00940B47  ^ 75 D6           JNZ SHORT 00940B1F
00940B49    61              POPAD
00940B1F    F0:0FC7C8       LOCK CMPXCHG8B EAX                       ; 非法使用寄存器
00940B23    EB 03           JMP SHORT 00940B28
00940B25    EB 03           JMP SHORT 00940B2A
00940B27    C7              ???                                      ; 未知命令
009511D3      C40485 D275D661 LES EAX,FWORD PTR DS:[EAX*4+61D675D2]
009511DA      8B85 AD234000   MOV EAX,DWORD PTR SS:[EBP+4023AD]
009511E0      894424 1C       MOV DWORD PTR SS:[ESP+1C],EAX
009511E4      61              POPAD
009511E5      FFE0            JMP EAX                                  ; 找到这里,在这句上下断
009511E7      60              PUSHAD
009511E8      8BF0            MOV ESI,EAX
009511EA      8BF9            MOV EDI,ECX
00970000      C7C7 72AFB4DF   MOV EDI,DFB4AF72                         ; 这下面可以一直 F8 大步走了
00970006      8D3D 5FBA581A   LEA EDI,DWORD PTR DS:[1A58BA5F]
0097000C      FFCF            DEC EDI
0097000E      0FACF7 F2       SHRD EDI,ESI,0F2
00970012      0FBDFE          BSR EDI,ESI
009707EB      8BFE            MOV EDI,ESI
009707ED      19F7            SBB EDI,ESI
009707EF      6A 00           PUSH 0                                ; 这里偷了 OEP 处的第一句的代码
009707F1      65:81E7 70E3980>AND EDI,398E370
009707F8      65:87FF         XCHG EDI,EDI
009707FB      F2:             PREFIX REPNE:
00970C4A      69FE CB2BC651   IMUL EDI,ESI,51C62BCB
00970C50      85F7            TEST EDI,ESI
00970C52      F7C7 1CDC4C87   TEST EDI,874CDC1C
00970C58      81E7 43C67893   AND EDI,9378C643
00970C5E    - E9 9F03A9FF     JMP UnpackMe.00401002                    ; 到 OEP 了
00970C63      0000            ADD BYTE PTR DS:[EAX],AL
00970C65      0000            ADD BYTE PTR DS:[EAX],AL
00970C67      0000            ADD BYTE PTR DS:[EAX],AL
00970C69      0000            ADD BYTE PTR DS:[EAX],AL
0012FF98   00000000
0012FF9C   00405A12  返回到 UnpackMe.00405A12 来自 UnpackMe.00405A36
0012FFA0   FFFFFFFF
0012FFA4   0012FFC0
00401002      E8            DB E8
00401003      F3            DB F3
00401004      0E            DB 0E
00401005      00            DB 00
00401006      00            DB 00
00401007      A3            DB A3
00401008      4C            DB 4C                                    ;  CHAR 'L'
00401009      36            DB 36                                    ;  CHAR '6'
0040100A      40            DB 40                                    ;  CHAR '@'
0040100B      00            DB 00
0040100C      6A            DB 6A                                    ;  CHAR 'j'
0040100D      00            DB 00
0040100E      68            DB 68                                    ;  CHAR 'h'
0040100F      66            DB 66                                    ;  CHAR 'f'
00401010      10            DB 10
00401011      40            DB 40                                    ;  CHAR '@'
00401012      00            DB 00
00401013      6A            DB 6A                                    ;  CHAR 'j'
00401014      00            DB 00
00401015      68            DB 68                                    ;  CHAR 'h'
00401000    6A 00           PUSH 0                                   ; 这里就是 OEP 了
00401002    E8 F30E0000     CALL 00401EFA
00401007    A3 4C364000     MOV DWORD PTR DS:[40364C],EAX
0040100C    6A 00           PUSH 0
0040100E    68 66104000     PUSH 00401066
00401013    6A 00           PUSH 0
00401015    68 00304000     PUSH 00403000                            ; ASCII "TESTWIN"
0040101A    FF35 4C364000   PUSH DWORD PTR DS:[40364C]
00401020    E8 750E0000     CALL 00401E9A
00401025    50              PUSH EAX
00401026    E8 C30E0000     CALL 00401EEE
0040102B    C3              RETN
0040102C    8925 803D4000   MOV DWORD PTR DS:[403D80],ESP
00401032    68 F4344000     PUSH 004034F4                            ; ASCII "Unpack started..."
00401037    E8 9B020000     CALL 004012D7
0040103C    E8 A9060000     CALL 004016EA
009603C6     /EB 01           JMP SHORT 009603C9
009603C8     |C9              LEAVE
009603C9     \60              PUSHAD
009603CA      0F31            RDTSC
009603CC      EB 01           JMP SHORT 009603CF

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 7
支持
分享
最新回复 (29)
雪    币: 8159
活跃值: (3321)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
好文,下载收藏之
2009-5-16 07:10
0
雪    币: 443
活跃值: (200)
能力值: ( LV9,RANK:1140 )
在线值:
发帖
回帖
粉丝
3
我爱深南大道
2009-5-16 07:57
0
雪    币: 107
活跃值: (1683)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
4
好文 听说是AlexProtect
2009-5-16 08:10
0
雪    币: 191
活跃值: (345)
能力值: ( LV9,RANK:450 )
在线值:
发帖
回帖
粉丝
5
28 篇精华,膜拜你啊。QQ 里好久没看到你了?在哪个群里呢?我Q里人太多,找不到你了。呵呵。
2009-5-16 08:34
0
雪    币: 443
活跃值: (200)
能力值: ( LV9,RANK:1140 )
在线值:
发帖
回帖
粉丝
6
我天天都看到你啊,你天天这个群那个群发。。。。。实在受不了来顶下。。。
2009-5-16 09:57
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
经典,收藏了!!!!
2009-5-16 10:03
0
雪    币: 213
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
8
哈哈,书生也受不了啊。
2009-5-16 10:12
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
好文,下载收藏之
2009-5-16 11:31
0
雪    币: 557
活跃值: (10)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
10
好详细  图文并茂...
2009-5-16 11:34
0
雪    币: 240
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
11
呵呵,非常棒,学习了
2009-5-16 21:40
0
雪    币: 240
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
12
前辈,怎么能到这里啊?
00941586    8933            MOV DWORD PTR DS:[EBX],ESI               ; 这里就关键代码了
00941588    8BF8            MOV EDI,EAX
0094158A    60              PUSHAD
0094158B    EB 03           JMP SHORT 00941590
0094158D    EB 03           JMP SHORT 00941592
0094158F    C7              ???
我现在就只会一步一步的来,太长了
2009-5-16 21:53
0
雪    币: 236
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
这个动画包括了好多知识。!
2009-5-17 11:58
0
雪    币: 191
活跃值: (345)
能力值: ( LV9,RANK:450 )
在线值:
发帖
回帖
粉丝
14
[QUOTE=xlyvip;625248]前辈,怎么能到这里啊?
00941586    8933            MOV DWORD PTR DS:[EBX],ESI               ; 这里就关键代码了
00941588    8BF8            MOV EDI,EAX
0094158A    60 ...[/QUOTE]

建议你把图文教程和动画一起看一下,就明白了。
2009-5-17 12:20
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
太强了,好好学习一下,哈哈
2009-5-17 12:40
0
雪    币: 306
活跃值: (153)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
16
写的很不错,适合我这样的新手
2009-5-17 12:45
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
谢谢楼主分享,下载学习
2009-5-17 13:17
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
好帖,谢谢,收藏了仔细研究
2009-5-17 14:04
0
雪    币: 358
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
楼主可否把  Olly Advanced 1.26 beta 12  汉化版插件 共享一下啊?
2009-5-17 17:56
0
雪    币: 2943
活跃值: (1788)
能力值: ( LV9,RANK:850 )
在线值:
发帖
回帖
粉丝
20
路过,顶成热贴
2009-5-17 18:59
0
雪    币: 191
活跃值: (345)
能力值: ( LV9,RANK:450 )
在线值:
发帖
回帖
粉丝
21
我正准备换回英文版呢。呵呵。
上传的附件:
2009-5-18 12:27
0
雪    币: 97697
活跃值: (200744)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
22
Thanks for share.
2009-5-18 12:39
0
雪    币: 358
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
真的很精彩
LZ写的很认真  
冲着LZ这点  也该顶一下
另外谢谢你共享的工具
2009-5-18 13:11
0
雪    币: 1481
活跃值: (874)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
学习~~~~~~~~~~~~~
2009-5-18 13:15
0
雪    币: 238
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
我是纯过来支持楼主的
2009-5-19 15:11
0
游客
登录 | 注册 方可回帖
返回
//