偶的破解(附详细流程和图片)

一直想学反汇编、脱壳之类的技术,但一直以各种借口在拖延自己的懒惰。自己还是要定个目标,所以就先找一个程序来练练手。想起前段时间帮侄子起名字用过的一个起名软件,可惜之能用2次,没人会为起一次名字去注册它吧,所以就用它练手了。(本文纯技术讨论,请勿用于任何其它目的,谢谢)
下载地址 华军软件园:http://nc.onlinedown.net/down/ynamej.zip
例行步骤,检查文件信息,看用啥编的,加了啥壳,有没有附加数据等。
先用最常用的PeiD,结果如下图,看样子是未知壳且有附加数据。
 
换到流行的Die,看到是修改版的UPX的壳。
 
下面就尝试用UPX及其修改版的脱壳工具来脱一下试试。试了几种,没有一种可以成功脱壳的,也许不是流行的UPX修改版吧,看样子只能手工试试脱一下了。
用OllyICE装载运行起来如下图,选择Y继续,开始就进入pushad,明显加过壳的痕迹,我们的任务是找到对应的popad,一直单步下去,根据<<手工脱壳入门十八篇>>中的理论“手动脱壳时,用Olldbg载入程序,脱壳程序里面会有有好多循环。对付循环时,只能让程序往前运行,基本不能让它往回跳,要想法跳出循环圈。“,一般遇到往回跳的jmp我们就用F4跳到它的下一行,实际经验可以练习一下<<手工脱壳入门十八篇>>来总结。
 
好了,直到我们找到下面的,也就是第一个popad,我们按F8继续,看看它会jmp到什么样的地方去,以确认是不是我们需要的入口点。
 
看样子不是我们需要的OEP,为什么呢,L,因为又是一个pushad,应该还是在脱壳的过程中,那我们就只有继续往下跟了,
 
好了,我们又来了到了一个popad,上面的继续经常会跟丢,多试几次就知道规律,继续,
 
我们再看JMP到什么地方,呵呵,很明显,这里非常像OEP了,

那我们就试着dump看一下吧,用OllyICE带的插件,如下图
 
Dump完成之后,我们运行一下试试,结果提示如下,经高手指点说这很显是自校验在作怪,看样子dump的程序不能运行,主要是大小相差也挺多,dump出来的文件大小是131K,重建import table后的是136K,原先的大小是387K。
 
没办法,只好在原文件上继续跟,crack的时候不一定要脱壳的,只是脱了壳之后比较好看,容易跟踪处理了,继续跟,跟了半天,有点没底,好像感觉跟丢了,直到下面这图,通过vfp6r.dll的DllWinMain来运行了一个dll,之后程序就运行起来了,不在OllyICE控制之内了,上网查了一下vfp6r.dll和DllWinMain方法,原来是Visual Foxpro用来执行visual foxpro程序的,那说明这里的nameprg.dll不是一个真正的dll,而是一个foxpro程序,而且是一个没有引导部分的foxpro程序(请参考看雪中对foxpro程序的讲解)。通过系统的vfp6r.dll调用的,只要找visual foxpro的反编译工具来反编译一下就可以得到源代码,
 
但试了一上没有想象中的容易,试了unfoxall2.x,3.0都不行,又试了foxtools2.2,可以反编译部分(而且文件扩展名要改成.exe),但form部分中有些乱,后来在看雪论坛中找到了传说中的foxtools3.0,这个要强大一些,反编译时,选中“创建生成项目文件的build.prg“选项,然后用Visual Foxpro打开这个build.prg来运行整个程序,它会自动把各个部分修复好,但菜单还有些问题,但所有的prg和form都没问题,我们主要看的是它的注册逻辑部分。
 
关键源代码都有了,写注册机就不算啥了,主要是能搞明白里面的foxpro代码,我没弄过foxpro,倒花了不少时间来搞清楚里面的逻辑。因为这个程序采用的是注册文件的形式,所以注册机也是以生成注册文件的方式提供的。用java编写的,有兴趣的可以下下来玩玩。
下载

使用说明: 1.VfpDecoder V1.5 支持Visual FoxPro Runtime Library 的版本为: 6.0.8961.0, 7.0.0.9465, 8.0.0.3117, 9.0.0.2412 2.VfpDecoder 利用Hook的原理进行工作。V1.5使用的钩子与V1.1不同, 提高了切入VFP程序的成功率,但缺点是无法判断出VFP程序的主文件,所以FileList.TXT中没有MainFile一项,另外对系统资源(主要是CPU)的占用率也有所增大。 3.V1.5比V1.1增加了一个Stop按钮,当不需要解析时按下它即可,不用退出VfpDecoder。 4.运行时有两种方法: (1).先启动VfpDecoder,按下后再运行VFP程序,在此期间可对一些参数进行调整,用修改,注意有的程序修改了标准运行库的文件名,要在中填入正确的DLL文件名;有的程序可能会直接进入到界面而VfpDecoder没有动作,那么继续在VFP程序中任意进行一些操作,一般会有结果的。 (2).先运行VFP程序,再启动VfpDecoder,按下后再在VFP程序中任意进行一些操作,有时多试几次可能就会有较理想的结果。 5.有些VFP程序,把FXP及MPX文件的Size改成天文数字,所以我在V1.5中作了限制,最大400K,(一般的程序不会有这么大的FXP文件),如果得到的FXP文件是400K,那么它是由一个正常的FXP文件和后面一些垃圾数据组成,没关系,用FoxTools可以正确反编译的。 6.本程序是在Windows XP下编译测试的,估计在2000及NT环境中能正常工作,98下就不确定了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值