首页
社区
课程
招聘
第5篇破文!
发表于: 2006-7-7 01:43 4106

第5篇破文!

2006-7-7 01:43
4106
下载地址:http://free5.ys168.com/?lzmo123
名字:Dxpack 0.86加壳的记事本!

PEID查为 未知壳!

OD载入!
0040D000 >  60              PUSHAD                                   ; 加载到这里!
0040D001    E8 00000000     CALL NOTEPAD.0040D006                    ; 这个CALL很近F7步入。免费麻烦!
0040D006    5D              POP EBP
0040D007    8BFD            MOV EDI,EBP
0040D009    81ED 06104000   SUB EBP,NOTEPAD.00401006
0040D00F    2BBD 94124000   SUB EDI,DWORD PTR SS:[EBP+401294]
0040D015    81EF 06000000   SUB EDI,6
0040D01B    83BD 14134000 0>CMP DWORD PTR SS:[EBP+401314],1
0040D022    0F84 2F010000   JE NOTEPAD.0040D157                      ; 一个大跳!有可能是循环的出口点!

经过几次的跟踪发现,这个跳就是跳出循环的路子。可以省很多麻烦!  

第2次加载:
0040D000 >  60              PUSHAD                                   ; 加载到这里!
0040D001    E8 00000000     CALL NOTEPAD.0040D006                    ; 这个CALL很近F7步入。免费麻烦!
0040D006    5D              POP EBP
0040D007    8BFD            MOV EDI,EBP
0040D009    81ED 06104000   SUB EBP,NOTEPAD.00401006
0040D00F    2BBD 94124000   SUB EDI,DWORD PTR SS:[EBP+401294]
0040D015    81EF 06000000   SUB EDI,6
0040D01B    83BD 14134000 0>CMP DWORD PTR SS:[EBP+401314],1
0040D022    0F84 2F010000   JE NOTEPAD.0040D157                      ; 在这个大跳这里回车!

0040D157    8B85 9C124000   MOV EAX,DWORD PTR SS:[EBP+40129C]        ;一看就知道,到达目的地!F2下断,F9运行,在F2取消下断。接着F8单步向下走!
0040D15D    03C7            ADD EAX,EDI
0040D15F    894424 1C       MOV DWORD PTR SS:[ESP+1C],EAX
0040D163    61              POPAD                                    ;在明显不过的出口标志!
0040D164    FFE0            JMP EAX                                  ;OEP的入口跳!
0040D166    4B              DEC EBX
0040D167    45              INC EBP
0040D168    52              PUSH EDX

004010CC    55              PUSH EBP                                 ;这就是记事本的OEP入口!
004010CD    8BEC            MOV EBP,ESP
004010CF    83EC 44         SUB ESP,44
004010D2    56              PUSH ESI
004010D3    FF15 E4634000   CALL DWORD PTR DS:[4063E4]               ; KERNEL32.GetCommandLineA
004010D9    8BF0            MOV ESI,EAX
004010DB    8A00            MOV AL,BYTE PTR DS:[EAX]
004010DD    3C 22           CMP AL,22
004010DF    75 1B           JNZ SHORT NOTEPAD.004010FC
004010E1    56              PUSH ESI
004010E2    FF15 F4644000   CALL DWORD PTR DS:[4064F4]               ; USER32.CharNextA
004010E8    8BF0            MOV ESI,EAX
004010EA    8A00            MOV AL,BYTE PTR DS:[EAX]
004010EC    84C0            TEST AL,AL
004010EE    74 04           JE SHORT NOTEPAD.004010F4
004010F0    3C 22           CMP AL,22
004010F2  ^ 75 ED           JNZ SHORT NOTEPAD.004010E1
004010F4    803E 22         CMP BYTE PTR DS:[ESI],22
004010F7    75 15           JNZ SHORT NOTEPAD.0040110E
004010F9    46              INC ESI
004010FA    EB 12           JMP SHORT NOTEPAD.0040110E

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

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 110
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
脱壳的不会,支持一下
2006-7-7 09:11
0
雪    币: 237
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
向楼主多学习学习壳是基础啊
2006-7-7 09:40
0
雪    币: 47147
活跃值: (20405)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
4
最初由 软件天敌 发布
0040D01B 83BD 14134000 0>CMP DWORD PTR SS:[EBP+401314],1
0040D022 0F84 2F010000 JE NOTEPAD.0040D157 ; 一个大跳!有可能是循环的出口点!

........


这个是外壳处理DLL时用的,DLL文件退出时还会到入口点走一遍,变量ebp+401314是存放运行次数的。

0040D01B    83BD 14134000 0>cmp     dword ptr [ebp+401314], 1
0040D022    0F84 2F010000   je      0040D157
0040D028    C785 14134000 0>mov     dword ptr [ebp+401314], 1  //第一次进入时,将标志1放进ebp+401314变量里

当DLL退出时,再来到入口点时,就直接走捷径了:
0040D01B    cmp     dword ptr [ebp+401314], 1  //判断第几次进入口点
0040D022    je      0040D157                   //如果是第二次以上,则直接跳到  040D157      
0040D028    mov     dword ptr [ebp+401314], 1

所以,脱这个壳时,你直接跳到 040D157就能找到OEP。
2006-7-7 09:47
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
学习顶一下!
2006-7-7 15:29
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
适合新手学习!!!
2006-7-26 12:13
0
游客
登录 | 注册 方可回帖
返回
//