首页
社区
课程
招聘
较完善的旧版Acprotect1.0x-1.2x脱壳脚本
发表于: 2004-12-20 20:58 12674

较完善的旧版Acprotect1.0x-1.2x脱壳脚本

David 活跃值
20
2004-12-20 20:58
12674

历时7小时写成,要兼容各版本Ac,语言,处理方法,哎,累。

环境,Win2k/xp,UnkillOD,Flyod1.10,脚本器0.92,忽略除内存异常外的全部异常.

// Acprotect OEP or FOEP and Patch IAT  v0.3
// 作者: Mr.David
// 主页: www.chinadfcg.com

msg "请设置OD异常设置不忽略内存异常,其它全部忽略,然后从菜单处继续运行脚本"

pause

dbh  //隐藏调试器

var cbase

gmi eip, CODEBASE
mov cbase, $RESULT   
log cbase            //记录代码段基地址,一般是401000

var k
var imgbase

gmi eip,MODULEBASE      //模块基地址400000
mov imgbase,$RESULT
mov k,imgbase
add k,3C               //40003C
mov k,[k]
add k,imgbase         
add k,f8              //第一区段名
log k
add k,8              //地址加8字节的偏移就是区段大小      
mov k,[k]           //401000处第一区段大小
log k        

var addr1           //通用临时变量

var addr2
mov addr2,ebp      //保存ebp=12fff0判断后面是否到达OEP 或 FOEP

var addr3
sub ebp,30        //实际取ebp=12ffc0判断后面是否到达OEP 或 FOEP
mov addr3,ebp
add ebp,30      //修改了寄存器值得还原

var addr6      //Replace Code判断变量

Msg "请耐心等候IAT处理"

gpa "GlobalAlloc","kernel32.dll"
mov addr1,$RESULT                    //捷径 API断点GlobalAlloc
bp addr1
run
bc addr1    //Clear break point  //取消断点

gpa "GetProcAddress","kernel32.dll"
mov addr1,$RESULT                  //AC敏感捷径 API断点GetProcAddress
add addr1,5                       //GetProcAddress+5
bp addr1     

eoe end2      //Acprotect1.10 Build123之C语言篇的IAT处理在INT1中断前面,设置INT1陷阱            
esto

loop:                      //循环标记

Bc addr1
rtu                      //Alt+F9
cmp eip,70000000       //判断是否在系统领空

ja loop              //地址大于70000000则循环

find eip,#0BC0#     //查找特征指令 or eax,eax 以定位处理MessageBoxA的位置
                   //有些版本这里返回后还要bp GetProcAddress+5 中断一次后返回才处理IAT,如记事本                                                   
               
            
cmp eip,$RESULT  //如果当前返回指令是 or eax,eax 则需要继续中断处理

je BGPA  //跳到标签BGPA即是 Bp GetProcAddress 缩写

Back1:  //返回或正常流程

find eip,#750A#    //特征指令  
mov addr1,$RESULT
repl addr1, #750A#, #EB??#,10      //有病治病,无病强身,处理MessageBoxA

find eip,#7F??#    //特征指令     //jg xxxxx 不确定调转路径用7F??,处理IAT
mov addr1,$RESULT
repl addr1, #7F??#, #EB??#,10     //有病治病,无病强身  //这里结束处理IAT 是否加密

//下面开始分界,有些Acprotect有Replace Code,有些没有,给脚本编写加大难度,这里处理方法不同。

cmp addr6,1  //如果确认没有Replace Code,则直接跳到取OEP位置代码处
je label69

gpa "GlobalAlloc","kernel32.dll"
mov addr1,$RESULT                    //如果要寻找Replace Code处理位置就得继续下捷径 API断点GlobalAlloc
bp addr1

eoe end
run  //INT1陷阱,异常则去end处理

bpmc //内存不中断执行这里则清除内存断点。
bc addr1  //清除GlobalAlloc断点。
rtu

label32: //这里我们寻找Replace Code位置。

find eip,#8BF8#    //如果当前返回点代码就是mov edi,eax,则可确认就是Replace Code位置,否则循环。
cmp eip,$RESULT
je label77       //如果发现mov edi,eax则跳出循环。

label66:
gpa "GlobalAlloc","kernel32.dll"
mov addr1,$RESULT                    //捷径 API断点GlobalAlloc
bp addr1
run
rtu
jmp label32

label77:

bc addr1

Msg "IAT已经修复,想狸猫换太子吗?请修改信息框处EAX值,处理完从菜单处继续运行!"
pause

label69:

bprm cbase, k //然后就是跳OEP或FOEP了,内存镜像断点

esto //Shift+F9

label444:  //这里我用一个条件判断OEP OR FOEP,有些AC壳到OEP或FOEP时候EBP一般是12fff0,或是12ffc0,401000处中断一般都是OEP。

cmp eip,401000           //汇编比较常用

je label333

cmp ebp,addr2         //12fff0一般没有抽代码

je label333

cmp ebp,addr3       //12ffc0,抽代码常见

je label333

cmp ebp,12fff2    //12fff2,VB类

je label333

var addr4

add addr4,1

cmp addr4,70   //定义循环上限,如果Code段执行70行代码仍然无法发现OEP则认为死循环。

ja Sorry

esto

jmp label444  //循环直到条件成立,当然有些AC版本会跑飞。
   
label333:
        
Msg "IAT已经修复,FOEP请补上被盗字节"
cmt eip,"OEP Or Next Shell To Get,Please dumped it,Enjoy!"
bpmc
ret

BGPA:  //继续GetProcAddress+5中断

gpa "GetProcAddress","kernel32.dll"
mov addr1,$RESULT                    //捷径 API断点GetProcAddress+5
add addr1,5
bp addr1
run

bc addr1
rtu

jmp Back1

end:      //INT1

coe
bprm 401000, k //内存镜像断点     //意外情况,没有Replace Code的程序,这时要跳FOEP了,得拦住
bc addr1 //清除GlobalAlloc断点

jmp label444

Sorry:

Msg "估计脚本陷入死循环,提前结束。"
ret

end2:   //INT1

coe
mov addr6,1 //如果INT1在IAT处理以前,这些版本的AC一般没有Replace Code,赋标记1让他直接去内存镜像断点处。
esto

jmp loop


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

收藏
免费 7
支持
分享
最新回复 (36)
雪    币: 411
活跃值: (1160)
能力值: ( LV9,RANK:810 )
在线值:
发帖
回帖
粉丝
2
下面Av认证表全部通过。

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

Acprotect1.09g标准版脱壳+伪修复

Acprotect1.10 Build123之C语言篇

Acprotect1.10 Build123之Dephi语言篇 X

Acprotect1.10 Build123之VB语言篇

Acprotect1.10 Build123之汇编语言篇

ACProtect1_09主程序脱壳+简单破解

Acprotect之完美卸载XP V9.13脱壳修复+伪破解

Acprotect之完美卸载XP V9.14脱壳修复+伪破解篇 X

Acprotect之完美卸载XP V9.15脱壳修复+伪破解篇 X

Divx Avi Asf Wmv Wma Rm Rmvb 3.23脱壳破解

loveboom之ACP 1.1专业版脱壳手记(非它的主程序)

UltraProtect 1.x 代码段的还原

UltraProtect 1.x之 Divx Avi Asf Wmv Wma Rm Rmvb V3.00 脱壳修复 IATX

阿达连连看 3.80再脱再爆 X

带发修行ACProtect v1.21

梦幻Ollydbg之ACPr修复篇Divx Avi Asf Wmv Wma Rm Rmvb V3.23

梦幻Ollydbg之寻找OEP篇――Divx Avi Asf Wmv Wma Rm Rmvb修复器 V3.21

模拟跟踪+修复方法之ACProtect脱壳――完美卸载XP V9.12

浅谈 ACProtect V1.09 Pro 的反跟踪And脱壳

新版Acprotect1.21 VB程序试刀

妖幻TRW and videofixer的脱壳方法之我之拙见

再次进阶Acprotect1.09的壳

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
2004-12-20 20:58
0
雪    币: 411
活跃值: (1160)
能力值: ( LV9,RANK:810 )
在线值:
发帖
回帖
粉丝
3
新脚本文件下载

附件:Acprotect1.x.rar
2004-12-20 21:01
0
雪    币: 97697
活跃值: (200824)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
4
支持!!!
2004-12-20 21:03
0
雪    币: 266
活跃值: (269)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
5
辛苦  :)
2004-12-20 21:18
0
雪    币: 61
活跃值: (160)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
6
辛苦拉!!!
2004-12-20 21:47
0
雪    币: 389
活跃值: (912)
能力值: ( LV9,RANK:770 )
在线值:
发帖
回帖
粉丝
7
辛苦了,继续吧.
2004-12-20 22:47
0
雪    币: 82
活跃值: (291)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8

下下去试试
2004-12-21 00:16
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
how to use .. plz tell me . !!
thanks .  ^_^
2004-12-21 00:40
0
雪    币: 205
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
菜鸟问题:把脚本 Acprotect1.x.txt 放到 Stripper 安装目录下就可以了吗?
2004-12-21 00:56
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
error on line 2
text:dbh
No such command:dbh
2004-12-21 01:16
0
雪    币: 411
活跃值: (1160)
能力值: ( LV9,RANK:810 )
在线值:
发帖
回帖
粉丝
12
最初由 aassdd 发布
error on line 2
text:dbh
No such command:dbh


环境,Win2k/xp,UnkillOD,Flyod1.10,脚本器0.92,忽略全部异常.

0.92脚本器中dbh语法正确,到处都有下载的,且稳定性高.

Od要用1.10正式修改版本
2004-12-21 07:10
0
雪    币: 411
活跃值: (1160)
能力值: ( LV9,RANK:810 )
在线值:
发帖
回帖
粉丝
13
最初由 侠盗 发布
菜鸟问题:把脚本 Acprotect1.x.txt 放到 Stripper 安装目录下就可以了吗?


也可以,这样容易管理.

任意路径也可以,OD0.92脚本器打开实际存放路径就可以使用.
2004-12-21 07:12
0
雪    币: 411
活跃值: (1160)
能力值: ( LV9,RANK:810 )
在线值:
发帖
回帖
粉丝
14
怎么写脚本和如何使用脚本,看这里.

抛砖引玉之自己动手学写脚本,内含如何使用脚本

http://www.chinadfcg.com/viewthread.php?tid=10799

只限DFCG会员,注意经常清空UDD目录中的文件,以免不必要的错误.
2004-12-21 07:16
0
雪    币: 161
活跃值: (231)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
15
DFCG怎么出了这么多写脚本的高手。我也学学去。
2004-12-21 09:18
0
雪    币: 383
活跃值: (786)
能力值: ( LV12,RANK:730 )
在线值:
发帖
回帖
粉丝
16
要写一个通用的脚本很烦的,不是吗;)
2004-12-21 11:22
0
雪    币: 205
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
谢谢 David 帮主!我问错了,以为 Acprotect 的壳当然应该由 Stripper 来脱,所以就问是不是应该放到 Stripper 的安装目录,照您的意思,这个脚本是 FOR OD 的,放哪儿都行,必须由 OD 的插件之一来调用这个脚本。
2004-12-21 14:05
0
雪    币: 411
活跃值: (1160)
能力值: ( LV9,RANK:810 )
在线值:
发帖
回帖
粉丝
18
修正了一下.
2004-12-23 10:38
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
David ,我载入你的新脚本,不管是设置忽略或者不忽略内存访问异常,脚本都没有任何反映。。。。。。。。。请解决一下
2004-12-23 12:15
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
我把第一个msg下的pause去掉了,脚本还是运行到一段时间,程序就运行出来了,根本到不了Msg "IAT已经修复,想狸猫换太子吗?请修改信息框处EAX值,处理完从菜单处继续运行!"这段
2004-12-23 12:21
0
雪    币: 411
活跃值: (1160)
能力值: ( LV9,RANK:810 )
在线值:
发帖
回帖
粉丝
21
你搞的什么软件名,版本可能不是旧版本的Ac

地址是哪里?
2004-12-23 12:41
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
终于有人肯帮我了,我去过CEG\CFG、龙族,求人求了好久啊
地址在
http://www.flwm.com/SoftInst.rar
帮我看看。。感激不尽!!!
2004-12-23 14:58
0
雪    币: 411
活跃值: (1160)
能力值: ( LV9,RANK:810 )
在线值:
发帖
回帖
粉丝
23
最初由 doudoucao 发布
终于有人肯帮我了,我去过CEG\CFG、龙族,求人求了好久啊
地址在
http://www.flwm.com/SoftInst.rar
帮我看看。。感激不尽!!!


  看了,搞不定,太难了.
2004-12-23 15:54
0
雪    币: 898
活跃值: (4039)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
24
请遵守论坛游戏规则!
再发脱壳请求的帖子,坛主将封ID
2004-12-23 16:45
0
雪    币: 215
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
:D :D :D 新版+一大堆内嵌,你找第二梦试试。
2004-12-23 16:59
0
游客
登录 | 注册 方可回帖
返回
//