首页
社区
课程
招聘
[求助]遇到一个找不到下手的地方ASProtect壳
发表于: 2005-5-31 22:08 4598

[求助]遇到一个找不到下手的地方ASProtect壳

2005-5-31 22:08
4598
最近遇到一个ASProtect加壳的程序,试了很多方法,看了资料,还是没有什么头绪,特请教大人们,看看大家能不能给我些建议。
    首先,这个程序用peid0.92检测出来是ASProtect 1.2x - 1.3x [Registered] -> Alexey Solodovnikov,用stripper 2.07无法脱壳,因为脱壳过程中会出现一个程序保护提示框。无法用fs0 的loader.exe找OEP,因为,一用loader加载改程序,则会弹出提示,说“你正在用SOFTICE调试,请关掉调试程序”,并且程序结束。直接用peid0.92查出来的OEP是4011d0。
     用OD隐藏调试标志后加载,只开内存访问异常。
00401000 m>/$  68 01B06100       push mland.0061B001
00401005   |.  E8 01000000       call mland.0040100B
0040100A   \.  C3                retn
0040100B    $  C3                retn
0040100C       75     db75                                            
0040100D       1E                db 1E
0040100E       F9                db F9
0040100F       3E                db 3E
00401010       51    db51                                             
00401011       D4                db D4
00401012       F7                db F7
00401013       B2                db B2
00401014       F2                db F2
00401015       8B                db 8B
00401016    .  AE                scas byte ptr es:[edi]
00401017    .  5C                pop esp
00401018    .  4D                dec ebp
00401019    .  92                xchg eax,edx

     异常30次后,程序开始运行,在最后一次程序异常时如下:
00D6FAA5     C700 EFCA5C85       mov dword ptr ds:[eax],855CCAEF
00D6FAAB     67:64:8F06 0000     pop dword ptr fs:[0]
00D6FAB1     83C4 04             add esp,4
00D6FAB4     83E8 AF             sub eax,-51
00D6FAB7     83C8 4B             or eax,4B
00D6FABA     58                  pop eax
00D6FABB     A1 0C38D700         mov eax,dword ptr ds:[D7380C]
00D6FAC0     8B00                mov eax,dword ptr ds:[eax]
00D6FAC2     8B68 1C             mov ebp,dword ptr ds:[eax+1C]
00D6FAC5     A1 0C38D700         mov eax,dword ptr ds:[D7380C]
00D6FACA     8B00                mov eax,dword ptr ds:[eax]
00D6FACC     8B00                mov eax,dword ptr ds:[eax]
00D6FACE     894424 04           mov dword ptr ss:[esp+4],eax
00D6FAD2     A1 0C38D700         mov eax,dword ptr ds:[D7380C]
00D6FAD7     8B00                mov eax,dword ptr ds:[eax]
00D6FAD9     8D78 18             lea edi,dword ptr ds:[eax+18]
00D6FADC     A1 8C37D700         mov eax,dword ptr ds:[D7378C]
     如果我到最近的RET处返回,程序则不能正常启动,会出现一个报错的框,然后程序结束。

     请各位大人给我一点建议吧。我权限不够,不能上传这个程序,如果想要这个程序研究的朋友加我QQ:****,我把程序发送给你。也可以到以下邮箱中草稿箱中唯一的一封信中下载附件:*** 密码为:****

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

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
2
禁止在此类帖子后面要求私下联系
免得误会!
2005-5-31 22:15
0
雪    币: 356
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
对不起,老大,下次一定注意。我只是想让大家帮帮我,帮我分析分析看应该从什么地方入手。
2005-6-1 18:39
0
雪    币: 356
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我使用以下ollyscript的脚本查找OEP。
/*
//////////////////////////////////////////////////
1) Find OEP
2) Hide Olly !

Support with:
ASProtect 1.2x - 1.3x [Registered]

important:
check ignore ... in KERNEL32
check Memory access violation
uncheck any others
(in Exception)
//////////////////////////////////////////////////
*/
MSG "Please see script for details !"

var cbase
var csize
var eip_
var check

gmi eip, CODEBASE
mov cbase, $RESULT
log cbase
gmi eip, CODESIZE
mov csize, $RESULT
log csize

eob lab1
esto

lab1:
mov check,0
sto
log "Find anti Debugger call:"
trace:
inc check
log check
cmp check,20
je error
sto
mov eip_,[eip]
log eip_
cmp eip_,C084D0FF
jne trace
cmt eip,"[ IsDebuggerPresent ]"
log "call eax is found"
FIND eip,#74#
cmp $RESULT,0
je error
eob lab4
log $RESULT
bp $RESULT
esto

lab4:
cmt eip,"[ Anti Olly ]"
mov eip_,[eip]
log eip_
log "Change flag !ZF"
mov !ZF,1
eob end1
bc $RESULT
esto

end1:
bprm cbase, csize
eob end2
esto

end2:
eob end
esto

end:
cmt eip," :::[ OEP ]:::"
bpmc
ret

error:
log "Not found"
MSG "Error"
ret

//

忽略KERNEL32异常和内存访问异常后,执行脚本,找到OEP如下:

004B37BB    .  CC                int3
004B37BC    ?  CC                int3
004B37BD    .  CC                int3
004B37BE    ?  CC                int3
004B37BF    .  CC                int3
004B37C0    ?  3D 00100000       cmp eax,1000
004B37C5    .  73 0E             jnb short mland.004B37D5;:::OEP  004B37C7    .  F7D8              neg eax
004B37C9    .  03C4              add eax,esp
004B37CB    .  83C0 04           add eax,4
004B37CE    ?  8500              test dword ptr ds:[eax],eax
004B37D0    ?  94                xchg eax,esp
004B37D1    .  8B00              mov eax,dword ptr ds:[eax]
004B37D3    .  50                push eax
004B37D4    ?  C3                retn
004B37D5    .  51                push ecx
004B37D6    ?  8D4C24 08         lea ecx,dword ptr ss:[esp+8]
004B37DA    ?  81E9 00100000     sub ecx,1000
004B37E0    ?  2D 00100000       sub eax,1000
004B37E5    .  8501              test dword ptr ds:[ecx],eax
004B37E7    .  3D 00100000       cmp eax,1000
004B37EC    ?^ 73 EC             jnb short mland.004B37DA
004B37EE    ?  2BC8              sub ecx,eax
004B37F0    ?  8BC4              mov eax,esp
004B37F2    ?  8501              test dword ptr ds:[ecx],eax
004B37F4    ?  8BE1              mov esp,ecx
004B37F6    ?  8B08              mov ecx,dword ptr ds:[eax]
004B37F8    ?  8B40 04           mov eax,dword ptr ds:[eax+4]
004B37FB    .  50                push eax
004B37FC    ?  C3                retn

不知道B37C5是否就是OEP,不过我怎么看也不象。现在正在DUMP出来试着恢复一下IAT。
2005-6-1 19:04
0
雪    币: 622
活跃值: (294)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
5
可能这个ASPr选了自校检之类的东西,不同断点不行就试试下硬件断点吧。
2005-6-1 19:06
0
雪    币: 200
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
你脱的这是什么软件?
2005-6-2 02:36
0
游客
登录 | 注册 方可回帖
返回
//