首页
社区
课程
招聘
[旧帖] [求助]UltraProtect 1.x 按步骤脱,出现问题 0.00雪花
发表于: 2008-11-4 13:38 3928

[旧帖] [求助]UltraProtect 1.x 按步骤脱,出现问题 0.00雪花

2008-11-4 13:38
3928
文件在这里:http://www.namipan.com/d/040915wgzz.rar/3888b5e02dc54f33fe2de60676230d60c52936ad32933b00

我的步骤:用PEid0.95查壳 :为UltraProtect 1.x -> RISCO Software Inc.
用OD载入,忽略除内存访问外的其它异常
00440000 >  60              PUSHAD                                  ;停在这里
00440001    41              INC ECX
00440002    0F8C 01000000   JL 外挂制作.00440009
00440008    FC              CLD
00440009    FC              CLD
0044000A    F9              STC
0044000B    F9              STC
0044000C    85DD            TEST EBP,EBX
0044000E    BB 4B004400     MOV EBX,外挂制作.0044004B
00440013    68 F50C8389     PUSH 89830CF5
00440018    66:C1CD D7      ROR BP,0D7                           ; 移位常量超出 1..31 的范围
0044001C    59              POP ECX
.......
然后按F9运行
......
0044E829    CD 01           INT 1                                       ;停在这里
0044E82B    40              INC EAX
0044E82C    40              INC EAX
0044E82D    0BC0            OR EAX,EAX
0044E82F    75 05           JNZ SHORT 外挂制作.0044E836
0044E831    90              NOP
0044E832    90              NOP
0044E833    90              NOP
0044E834    90              NOP
0044E835    61              POPAD
0044E836    33C0            XOR EAX,EAX
0044E838    64:8F00         POP DWORD PTR FS:[EAX]
0044E83B    58              POP EAX

然后在堆栈中找SE句柄
0012FF70   0012FFE0  指向下一个 SEH 记录的指针
0012FF74   0044E80D  SE处理程序
0012FF78   74E895EF
0012FF7C   D5F6BB56
0012FF80   0000003B

再在数据窗口跟随,接着下内存访问断点,按shift+F9
第一次停在
0044E80D    8B5C24 0C       MOV EBX,DWORD PTR SS:[ESP+C]     ;停在这里,按F2下断
0044E811    8383 B8000000 0>ADD DWORD PTR DS:[EBX+B8],2
0044E818    33C0            XOR EAX,EAX

再按shift+F9
0044E85D    8B048E          MOV EAX,DWORD PTR DS:[ESI+ECX*4]              ;停在这里,再按F2下断
0044E860    8B5C8E 04       MOV EBX,DWORD PTR DS:[ESI+ECX*4+4]
0044E864    2BC3            SUB EAX,EBX
0044E866    C1C8 02         ROR EAX,2
0044E869    2BC2            SUB EAX,EDX
0044E86B    81F2 679DF3AB   XOR EDX,ABF39D67
0044E871    89048E          MOV DWORD PTR DS:[ESI+ECX*4],EAX     ;第三次按shift+F9停在这里,然后取消所有断点,包括内存访问断点
0044E874    49              DEC ECX
0044E875  ^ EB E1           JMP SHORT 外挂制作.0044E858
0044E877    61              POPAD
0044E878    61              POPAD
0044E879    C3              RETN                ;光标点这里,按F4运行到此。

然后按Ctrl+T 设置条件 在命令是一个框里输入:Push ebp
接着跟踪进入,这时停在了
7C864B49    55              PUSH EBP                 ;停在这里
7C864B4A    8BEC            MOV EBP,ESP
7C864B4C    83EC 0C         SUB ESP,0C

7C864B4F    56              PUSH ESI
7C864B50    8B75 0C         MOV ESI,DWORD PTR SS:[EBP+C]
----------------------------------------------------------------------------------------------------
但是有时前面步骤相同,却会停在
6600357C >  55              PUSH EBP         ;停在这里
6600357D    8BEC            MOV EBP,ESP
6600357F    6A FF           PUSH -1

----------------------------------------------------------------------------------------------------

不知道上面那六个字节(五字节)是不是被偷的代码,请高手指点
我把那六个字节(五字节)当成被偷代码。接下来按Alt+M在401000处下断,再按F9运行,来到了
00401B2D    E8 EEFFFFFF     CALL 外挂制作.00401B20                  ; JMP 到 MSVBVM60.ThunRTMain
00401B32    0000            ADD BYTE PTR DS:[EAX],AL
00401B34    0000            ADD BYTE PTR DS:[EAX],AL
00401B36    0000            ADD BYTE PTR DS:[EAX],AL
00401B38    3000            XOR BYTE PTR DS:[EAX],AL

将复制过来的那六个字节拷到了00401B2D之前,再在PUSH EBP处设为新的EIP,然后就在这个位置Dump出程序
————————————————————————————————————
不知道以上过程有没有做错?
————————————————————————————————————
接下来是用ImportREC1.6来修复,OEP地址为1B27
修复后的文件不能运行,双击后会弹出程序运行错误的框框
请教,这是为什么?

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

收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 102
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
怎么连个坐沙发的人都没有啊!等大哥们来教小弟啊
可别把一个crack爱好者就这么扼杀在脱壳之上啊
2008-11-4 15:02
0
雪    币: 317
活跃值: (93)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
3
我给你脱了一份ACProtec被抽取OEP好象还有一层UPX,是VB编写的,我给你把OEP也补回来啦
上传的附件:
2008-11-4 15:50
0
雪    币: 102
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
谢谢大哥,我试试,难怪在code段还有 UPX0
2008-11-4 15:54
0
雪    币: 102
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
能不能给我讲一下简单的过程,还有我脱acprotect时候做错了什么没有?
2008-11-4 15:56
0
雪    币: 102
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我也在OEP处加了
PUSH  004045cc
call     00401B20
但是还是运行不起来,
哪位大大给我说说啊
2008-11-4 17:04
0
雪    币: 317
活跃值: (93)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
7
VB写的,你没有到真的OEP,在怎么添加都是徒劳!
2008-11-4 18:01
0
雪    币: 102
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
00401B2D    E8 EEFFFFFF     CALL 外挂制作.00401B20                       ; JMP 到 MSVBVM60.ThunRTMain
00401B32    0000            ADD BYTE PTR DS:[EAX],AL
00401B34    0000            ADD BYTE PTR DS:[EAX],AL
00401B36    0000            ADD BYTE PTR DS:[EAX],AL

我找到这里了啊,这个不是OEP吗?在这个之前添加
PUSH  004045cc
call     00401B20
这样做不对的吗?请老大指点
2008-11-4 18:24
0
雪    币: 102
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
大哥看看我脱的壳,大小也和你的一样了,为什么我的不能运行呢?
上传的附件:
2008-11-4 19:17
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
楼主可能还没用过AC的脱壳机吧,去网上搜索一下ACKiller 0.12,上面脱的就是用这个脱的,因为用这个脱壳机脱的内部留有脱壳机的信息。
脱壳机自动修复壳解码验证的!你手工脱的那个没有修复解码验证,壳检测入口点错误所以运行错误,最简单的就是手工修改,把脱壳软件的入口点修改为原加壳入口点!
然后 jMP 到你脱壳后的入口点。
看看我修改你的那个脱壳文件你就明白了。

还有就是这个作者之前是加的UPX , ACprotect是别人脱壳后重新加上去的。
上传的附件:
2008-11-4 20:38
0
雪    币: 210
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
楼上真是高人啊~学到了
2008-11-5 00:16
0
雪    币: 102
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
太谢谢各位大哥的指教了。
PS:peeler大哥,我也改过了入口地址了,把原来的440000     pushad 改为了440000   jmp  401B28
然后用lordPE重建PE,但是还是不行。
我感觉是我重建PE过程有问题,我把这个过程写下来你帮我看一下。
修改后有文件用lorder打开,然后选PE编辑器,改入口地址为440000,然后保存确定,再重退PE
我的选项设置你看一下
不知道哪里错了,请老大指点。
上传的附件:
2008-11-5 10:35
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
自己看演示教程,我不愿意过多打字。

AC演示教程.rar
2008-11-5 12:33
0
游客
登录 | 注册 方可回帖
返回
//