首页
社区
课程
招聘
[求助]脱壳的疑惑
发表于: 2007-9-28 21:02 4583

[求助]脱壳的疑惑

2007-9-28 21:02
4583
这话要从半个月前说起
那日在坛子里下了脱壳的艺术,看完后颇有感悟,从网上随便抽起一个软件,开膛破肚
首先问人家有没有加壳PEID
显示PECompact 2.x -> Jeremy Collake [Overlay]
心里一个高兴,因为以前有过这个脚本,懒得动手,直接上脚本,一下来到OEP直接DUMP
看看还能运行
乐呀!!

可是两分钟后,我乐不起来了,里面有一个按钮不能用,怪了,脱壳前能用呀,难道是保护,还是脱壳不完整!!

分步来,先修复看行不行,这一修,修出麻烦来了,查壳工具死活不认,深度探测Borland Delphi 4.0 - 5.0

OD载入看一下
00401000 >    04 10              add al,10  /停在这里
00401002      40                 inc eax
00401003      0003               add byte ptr ds:[ebx],al
00401005      07                 pop es
00401006      42                 inc edx
00401007      6F                 outs dx,dword ptr es:[edi]
00401008      6F                 outs dx,dword ptr es:[edi]
00401009      6C                 ins byte ptr es:[edi],dx

这下郁闷了,刚才入口还好好的,看看区段多了两个
这个这个……

再脱一下,我断那个按钮事件看看
DEDE也拉上来干活

能正常反编译,找到那个按钮地址,下断运行,程序自动退出……
自效验??自效验我知道的方法都用完了,没效果。
ANTI DEBUGGER??
拿起其它的调试工具,找个没名的,再上
10001EE3   . 8908           MOV DWORD PTR DS:[EAX],ECX//这回在这了
10001EE5   . 50             PUSH EAX
10001EE6   . 45             INC EBP
10001EE7   . 43             INC EBX
10001EE8   . 6F             OUTS DX,DWORD PTR ES:[EDI]               ;  I/O command
10001EE9   . 6D             INS DWORD PTR ES:[EDI],DX                ;  I/O command
10001EEA   . 70 61          JO SHORT NTFSys.10001F4D
10001EEC   . 637432 00      ARPL WORD PTR DS:[EDX+ESI],SI
10001EF0   . 8BFA           MOV EDI,EDX
10001EF2   . EB 04          JMP SHORT NTFSys.10001EF8
10001EF4     01             DB 01
10001EF5   > 37             AAA
10001EF6   . 95             XCHG EAX,EBP
10001EF7   . EE             OUT DX,AL                                ;  I/O command
10001EF8   > 83E7 00        AND EDI,0
10001EFB   . 7E 0C          JLE SHORT NTFSys.10001F09
10001EFD   . F2:            PREFIX REPNE:                            ;  Superfluous prefix
10001EFE   . CA 7D09        RETF 97D                                 ;  Far return
10001F01     50             DB 50                                    ;  CHAR 'P'

我找找有没有反调试的啥的,一点一点摸,一无所获(菜呀)
看了一下PE结构唉,看也是白看又不懂装啥呀
拿上来各位给分析一下看我哪里出错了
[ATTACH]



[/ATTACH]

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

上传的附件:
收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 202
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
Display of File E:\sz_.exe

Old Executable Header

DOS File Size                                     14A000h  (1351680. )
Load Image Size                                      210h  (   528. )
Relocation Table entry count                        0000h  (     0. )
Relocation Table address                            0040h  (    64. )
Size of header record      (in paragraphs)          0004h  (     4. )
Minimum Memory Requirement (in paragraphs)          000Fh  (    15. )
Maximum Memory Requirement (in paragraphs)          FFFFh  ( 65535. )
File load checksum                                  0000h  (     0. )
Overlay Number                                      001Ah  (    26. )

Initial Stack Segment  (SS:SP)                         0000:00B8
Program Entry Point    (CS:IP)                         0000:0000

Portable Executable (PE) File

Header base: 00000100

CPU type                 80386
Flags                    818E [ executable 32bit ]
DLL flags                0000 [ ]
Linker Version           2.19
Time stamp               2A425E19
O/S Version              1.0
User Version             0.0
Subsystem Version        4.0
Subsystem                0002 [ Windows GUI ]
Object count             00000004
Symbols offset           00000000
Symbols count            00000000
Optional header size     00E0
Magic #                  10B
Code size                000D0400
Init Data size           00067400
Uninit Data size         00000000
Entry RVA                00001000
Image base               00400000
Code base                00001000
Data base                000D2000
Object/File align        00001000/00000200
Image size               0014A000
Header size              00000400
Checksum                 00000000
Stack reserve/commit     00100000/00004000
Heap reserve/commit      00100000/00001000
Number interesting RVAs  00000010
Name                   RVA       Size
------------------  --------  --------
Exports             00000000  00000000
Imports             00147000  000001E0
Resources           00140000  000023AC
Exceptions          00000000  00000000
Security            00000000  00000000
Fixups              00000000  00000000
Debug               00000000  00000000
Description         00109018  0000000F
TLS                 00143144  00000044
Callbacks           00000000  00000000
reserved            00000000  00000000
reserved            00000000  00000000
reserved            00000000  00000000
reserved            00000000  00000000
reserved            00000000  00000000

Object table:
#   Name      VirtSize    RVA     PhysSize  Phys off  Flags
--  --------  --------  --------  --------  --------  --------
1  CODE      0013F000  00001000  0013F000  00001000  E0000020 [CERW]
2  .rsrc     00004000  00140000  00004000  00140000  E0000020 [CERW]
3  .idata2   00003000  00144000  00002600  00144000  C0000040 [IRW]
4  .mackt    00003000  00147000  00003000  00147000  E0000060 [CEIRW]
2007-9-28 21:04
0
雪    币: 202
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我一直在想应该是脱壳过程出的问题,如果是软件保护,为什么作者不直接将其退出,而是做功能限制呢?
2007-9-28 21:05
0
雪    币: 229
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
oep都不怎么像Delphi的,据我说知PECompact 2.x -> Jeremy Collake [Overlay]
这个壳不抽代码吧?
2007-9-29 04:06
0
游客
登录 | 注册 方可回帖
返回
//