本帖最后由 liaoyl 于 2011-10-6 08:10 编辑
ASProtect 2.1x重启验证 【目标程序】:DVDFabGold.exe 【工 具】:PEiD、LordPE、ImportREC、OllyICE 【脱壳脚本】:IATfixer.1.02.osc 【作 者】:liaoyl ASProtect 2.1x重启验证的脱壳是用IATfixer.1.02.osc脚本,爆破部分也很一般,本文是我学习的笔记,发到论坛只为象我一样的菜鸟借鉴学习,别无它意…,高手掠过! 一、脱壳 用PEiD v0.95查壳:ASProtect 2.1x SKE -> Alexey Solodovnikov 用插件VerA 1.5查壳:ASProtect 2.xx (may be 2.11) Registered [8] 运行DVDFabGold.exe,弹出“欢迎来到DVDFab Gold”窗口,按『输入注册码…』按钮,打开“注册DVDFab Gold”窗口,输入假注册码,打开“DVDFabGold”提示窗口,“谢谢你!请重新启动DVDFab Gold成为注册版本。”。但当你再次打开DVDFabGold.exe时,又会出现同样的注册提示,这就是典型的重启验证的程序。 OD载入,调试设置如图 插件->HideOllyDbg->隐藏如图(也许你的OD上的插件与这里的不一样,只要是隐藏OD就行了) 下面是运行脱壳脚本IATfixer.1.02.osc,插件->ODbgScript->运行脚本,如图 视操作系统的配置不同,运行脚本需要花费了6分钟,最后弹出提示窗口如图
按『确定』进入下面代码 00B7B98C 68 3DD3BAA2 push A2BAD33D // 脚本运行结束后的位置! 00B7B991 68 C0190000 push 19C0 00B7B996 68 C89F0000 push 9FC8 00B7B99B 68 00F00200 push 2F000 00B7B9A0 FF35 D4B4B900 push dword ptr ds:[B9B4D4] 00B7B9A6 E8 51DEFFFF call 00B797FC
按Shift+F9运行就到了OEP 0047572E 55 push ebp // 这里就是OEP 0047572F 8BEC mov ebp,esp 00475731 6A FF push -1 00475733 68 80F14700 push DVDFabGo.0047F180 00475738 68 34554700 push DVDFabGo.00475534 // jmp 到 0047573D 64:A1 00000000 mov eax,dword ptr fs:[0] 00475743 50 push eax 00475744 64:8925 0000000 mov dword ptr fs:[0],esp 0047574B 83EC 68 sub esp,68 0047574E 53 push ebx 0047574F 56 push esi 00475750 57 push edi 下面Dump, 用LordPE,然后用ImportREC修复,按Alt+L或者快捷工具栏上的“L”按钮,打开“记录数据”窗口, 按“获取输入表”按钮,再按“显示无效的”按钮,在“找到的输入表函数”框下,显示有一个无效指针,如图
复制ValIDAteLocale,回到上一个窗口,双击无效的指针,在名称框输入ValidateLocale ,按“确定”后函数ValidateLocale被加入
按“修复转储文件”按钮,保存Dump文件。下面用Unpack_.exe查壳 二、爆破 OD载入脱壳文件Unpack_.exe 按F9运行,弹出“欢迎来到DVDFab Gold”窗口,不用理会它!按“调试”->暂停,或者按
暂停。然后按Alt+K或者快捷工具栏上的“K”按钮
,打开“调用堆栈”窗口,选中0012FDD4双击或者按回车键, 来到下面代码 00403882 B8 ED694700 mov eax,Unpack_.004769ED 00403887 E8 841B0700 call Unpack_.00475410 0040388C 81EC 60040000 sub esp,460 00403892 53 push ebx 向上来到段首004033C7,F2下断,然后重新加载
按F9运行,断下来了,取消断点。按F8单步向下,在这个Call用F7进入,继续F8单步向下, 将标志位Z=1修改为Z=0,让跳转实现。按F9运行,程序界面出现了, 004033D5 E8 A8040000 call Unpack_.00403882
关键跳上面的Call就是关键Call,我们在004033D5这行F2下断。重新加载,F9运行,断下来了!F8单步走,这里的跳不能让它实现,如果跳转实现就跳过了清零的xor eax,eax语句,所以我们将00427407这行代码nop掉!
保存文件CrackED-Fix.exe,到这里爆破完成,OK! 说明: 1.
上面脱壳用LordPE,然后用ImportREC修复,其实这个程序可以直接用OD的插件做Dump,保存的dumper.exe文件不用ImportREC修复就可以运行。这里用LordPE,然后用ImportREC修复,主要是我对无效指针的加入方法觉得可取,以前在少于14个无效指针都是用剪切掉,这个程序且不能用剪切; 2. 用ImportREC修复时,也可以直接按“自动查找IAT”,得到的RAV=7A000和大小=BB4是一样的,因为,用脚本脱壳经常会出现需要手工修改IAT的提示,这里按Alt+L或者快捷工具栏上的“L”按钮,打开“记录数据”窗口,是修改IAT得到RAV和大小的方法之一。 附件:1. 心芯老师视频-破解DVD制作软件 2.目标程序DVDFabGold 3. ASProtect 2.1x重启验证程序的脱壳与破解(图).pdf 4. IATfixer.1.02.osc 于2011.10.06 |