首页
社区
课程
招聘
[求助]UPX脱壳后提示:range check error,该怎么办?
发表于: 2006-3-17 10:31 6916

[求助]UPX脱壳后提示:range check error,该怎么办?

2006-3-17 10:31
6916
用peid查壳
UPX 0.89.6 - 1.02 / 1.05 - 1.24 (Delphi) stub -> Markus & Laszlo
参考前辈们的文章!脱壳
脱壳完毕后修复都成功了,但是运行时提示range check error,我查找字符串也找不到这个字段,不知道如何入手该怎么破掉自检?(小菜一个请别拍我)

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 159
活跃值: (339)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
2
从bp MessageBoxA下手
2006-3-17 13:34
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
这个属于什么验证啊??
我如果用OD一步一步运行的话,这个错误提示就变成了
privileged instruction

点确定后出来程序界面,但是中间的一部分是空的,好奇怪
2006-3-17 13:49
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我用OD载入后程序后,中断:bp MessageBoxA,运行F9,但是马上就进入
77E8BC3F    5F              POP EDI
77E8BC40    5E              POP ESI
77E8BC41    C9              LEAVE
77E8BC42    C2 1000         RETN 10
77E8BC45 >  8B4C24 04       MOV ECX,DWORD PTR SS:[ESP+4]
77E8BC49    A1 F0A1EB77     MOV EAX,DWORD PTR DS:[77EBA1F0]
77E8BC4E    890D F0A1EB77   MOV DWORD PTR DS:[77EBA1F0],ECX
77E8BC54    C2 0400         RETN 4
77E8BC57    55              PUSH EBP
77E8BC58    8BEC            MOV EBP,ESP
77E8BC5A    6A FF           PUSH -1

状态栏提示:异常OEEDFADE,使用shift+F7/F8/F9忽略
没办法我就一步一步来,参照原程序追入重要CALL,终于在
00405393    3B45 E8         CMP EAX,DWORD PTR SS:[EBP-18]
00405396    74 07           JE SHORT 111.0040539F                    ; 原程序在这里是跳转成功的,但是脱壳后的并不跳!因为不知道它的运算,所以只好把这个跳转改成跳Jmp SHORT 111.0040539F
00405398    B0 04           MOV AL,4
0040539A    E8 CDD4FFFF     CALL 111.0040286C
0040539F    8345 E4 08      ADD DWORD PTR SS:[EBP-1C],8
004053A3    85DB            TEST EBX,EBX

继续追下来还发现
00402781    B0 01           MOV AL,1
00402783    E9 E4000000     JMP 111.0040286C
00402788    85D2            TEST EDX,EDX
0040278A    74 10           JE SHORT 111.0040279C
0040278C    50              PUSH EAX
0040278D    89D0            MOV EAX,EDX
0040278F    FF15 3C104700   CALL DWORD PTR DS:[47103C]               ; 111.0040213C
00402795    59              POP ECX
00402796    09C0            OR EAX,EAX
00402798  ^ 74 E7           JE SHORT 111.00402781            //原程序在这里不会跳回的,但是脱壳后的跳回了,于是我又改
JNZ SHORT 111.00402781
0040279A    8901            MOV DWORD PTR DS:[ECX],EAX
但是追到下面的时候就出错了
0040543F    C703 01000000   MOV DWORD PTR DS:[EBX],1   //在这里状态栏:提示访问违规:正在写入[00000000]
00405445    83C3 04         ADD EBX,4
00405448    893B            MOV DWORD PTR DS:[EBX],EDI
0040544A    83C3 04         ADD EBX,4
0040544D    8BD7            MOV EDX,EDI
0040544F    2B55 F0         SUB EDX,DWORD PTR SS:[EBP-10]
00405452    0FAF55 E8       IMUL EDX,DWORD PTR SS:[EBP-18]
00405456    8B45 E8         MOV EAX,DWORD PTR SS:[EBP-18]
00405459    0FAF45 F0       IMUL EAX,DWORD PTR SS:[EBP-10]

我把修改的复制保存成另外一个文件运行时提示out of mouory!
晕死,没办法继续下去了,但是如果刚才那两个地方不改就在前面的CALL后直接转到错误(最上面的代码)!高手千万不要笑我,如果有好的方法请指点一二(头疼中.....)
2006-3-17 18:35
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
5
输入表等都修好了?
upx尽量用upx来脱
2006-3-17 18:45
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
用ImportREC修复过了,还那样,用UPX脱壳软件脱不了的
2006-3-18 14:38
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
还有人知道吗?
2006-3-22 09:21
0
游客
登录 | 注册 方可回帖
返回
//