| 
注册时间2008-6-1
阅读权限30
最后登录1970-1-1UID52384 龙战于野 
 
 TA的每日心情|  | 开心 2025-1-14 17:53
 | 
|---|
 签到天数: 235 天 [LV.7]常住居民III | 
 
 发表于 2010-3-5 09:14:08
|
显示全部楼层 
| 最简单的方法是用脚本搞定 
 /*Script written by ~icy~**
 Script: Acpr 1.41-2.0_unpacker全自动脱壳
 日期: 2007-03-26
 调试环境: OllyDbg 1.1, ODBGScript 1.51, Winxp Win2003
 调试选项: 设置 OllyDbg 忽略所有异常选项
 工具: OllyDbg, ODBGScript 1.51, Import Reconstructor.*/
 
 //Support ACprotect1.41-2.0
 
 var eipaddr1
 var esiadd
 var ebxadd
 var cbase
 var csize
 var imgbase
 var iatrva
 var add1
 
 GMI eip, MODULEBASE
 cmp $RESULT,0
 je lblabort
 mov imgbase,$RESULT
 gmi eip,CODEBASE                        //获得代码基址
 cmp $RESULT,0
 je lblabort
 mov cbase,$RESULT
 mov cbase,$RESULT
 gmemi cbase,MEMORYsize
 cmp $RESULT,0
 je lblabort
 
 mov csize,$RESULT
 gpa "GetModuleHandleA","kernel32.dll"
 cmp $RESULT,0
 je lblabort
 mov add1,$RESULT
 bprm add1,ff
 esto
 bpmc
 rtu
 
 findop eip,#F3AA#                      //查找指定内容
 cmp $RESULT,0
 je lblabort
 repl $RESULT,#F3AA#,#9090#,2
 bp $RESULT
 run
 bc $RESULT
 sto
 sto
 sto
 bprm add1,ff
 esto
 bpmc
 rtu
 mov eipaddr1,eip
 mov eipaddr1,eipaddr1-30
 mov esiadd,esi+0c
 mov ebxadd,ebx-imgbase
 mov [esiadd],ebxadd
 mov iatrva,esi-imgbase
 findop eipaddr1,#83660c00#            //地址中查找:and dword ptr ds:[esi+C],0
 cmp $RESULT,0
 je lblabort
 repl $RESULT,#83660C00#,#90909090#,4
 find eipaddr1,#2BC08803#              //内存中查找:sub eax,eax mov byte ptr ds:[ebx]
 cmp $RESULT,0
 je lblabort
 repl $RESULT,#2BC08803#,#90909090#,4
 find eipaddr1,#2BC08803#
 cmp $RESULT,0
 je lblabort
 repl $RESULT,#2BC08803#,#90909090#,4
 find eipaddr1,#80BD16564100007457#    //魔法跳
 je lblabort
 repl $RESULT,#80BD16564100007457#,#80BD1656410000eb57#,9 //jmp
 find eipaddr1,#8DBD??????0033C0#
 cmp $RESULT,0
 je lblabort
 bp $RESULT
 esto
 bc $RESULT
 bpmc
 
 
 bprm cbase,csize
 esto
 cmt eip,"传说中的光明之颠~OEP~"
 dpe "\\dumped.exe", eip
 eval "程序已脱壳请直接用ImportREC修复IAT"
 msg $RESULT
 ret
 
 lblabort:
 msg "脚本失败!"
 ret
 | 
 |