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

一直想学反汇编、脱壳之类的技术,但一直以各种借口在拖延自己的懒惰。自己还是要定个目标,所以就先找一个程序来练练手。想起前段时间帮侄子起名字用过的一个起名软件,可惜之能用2次,没人会为起一次名字去注册它吧,所以就用它练手了。(本文纯技术讨论,请勿用于任何其它目的,谢谢)
下载地址 华军软件园:http://nc.onlinedown.net/down/ynamej.zip
例行步骤,检查文件信息,看用啥编的,加了啥壳,有没有附加数据等。
先用最常用的PeiD,结果如下图,看样子是未知壳且有附加数据。
  偶的破解(附详细流程和图片)_第1张图片
换到流行的Die,看到是修改版的UPX的壳。
  偶的破解(附详细流程和图片)_第2张图片
下面就尝试用UPX及其修改版的脱壳工具来脱一下试试。试了几种,没有一种可以成功脱壳的,也许不是流行的UPX修改版吧,看样子只能手工试试脱一下了。
用OllyICE装载运行起来如下图,选择Y继续,开始就进入pushad,明显加过壳的痕迹,我们的任务是找到对应的popad,一直单步下去,根据<<手工脱壳入门十八篇>>中的理论“手动脱壳时,用Olldbg载入程序,脱壳程序里面会有有好多循环。对付循环时,只能让程序往前运行,基本不能让它往回跳,要想法跳出循环圈。“,一般遇到往回跳的jmp我们就用F4跳到它的下一行,实际经验可以练习一下<<手工脱壳入门十八篇>>来总结。
  偶的破解(附详细流程和图片)_第3张图片
好了,直到我们找到下面的,也就是第一个popad,我们按F8继续,看看它会jmp到什么样的地方去,以确认是不是我们需要的入口点。
偶的破解(附详细流程和图片)_第4张图片 
看样子不是我们需要的OEP,为什么呢,L,因为又是一个pushad,应该还是在脱壳的过程中,那我们就只有继续往下跟了,
  偶的破解(附详细流程和图片)_第5张图片
好了,我们又来了到了一个popad,上面的继续经常会跟丢,多试几次就知道规律,继续,
  偶的破解(附详细流程和图片)_第6张图片
我们再看JMP到什么地方,呵呵,很明显,这里非常像OEP了,
偶的破解(附详细流程和图片)_第7张图片
那我们就试着dump看一下吧,用OllyICE带的插件,如下图
  偶的破解(附详细流程和图片)_第8张图片
Dump完成之后,我们运行一下试试,结果提示如下,经高手指点说这很显是自校验在作怪,看样子dump的程序不能运行,主要是大小相差也挺多,dump出来的文件大小是131K,重建import table后的是136K,原先的大小是387K。
  偶的破解(附详细流程和图片)_第9张图片
没办法,只好在原文件上继续跟,crack的时候不一定要脱壳的,只是脱了壳之后比较好看,容易跟踪处理了,继续跟,跟了半天,有点没底,好像感觉跟丢了,直到下面这图,通过vfp6r.dll的DllWinMain来运行了一个dll,之后程序就运行起来了,不在OllyICE控制之内了,上网查了一下vfp6r.dll和DllWinMain方法,原来是Visual Foxpro用来执行visual foxpro程序的,那说明这里的nameprg.dll不是一个真正的dll,而是一个foxpro程序,而且是一个没有引导部分的foxpro程序(请参考看雪中对foxpro程序的讲解)。通过系统的vfp6r.dll调用的,只要找visual foxpro的反编译工具来反编译一下就可以得到源代码,
  偶的破解(附详细流程和图片)_第10张图片
但试了一上没有想象中的容易,试了unfoxall2.x,3.0都不行,又试了foxtools2.2,可以反编译部分(而且文件扩展名要改成.exe),但form部分中有些乱,后来在看雪论坛中找到了传说中的foxtools3.0,这个要强大一些,反编译时,选中“创建生成项目文件的build.prg“选项,然后用Visual Foxpro打开这个build.prg来运行整个程序,它会自动把各个部分修复好,但菜单还有些问题,但所有的prg和form都没问题,我们主要看的是它的注册逻辑部分。
  偶的破解(附详细流程和图片)_第11张图片
关键源代码都有了,写注册机就不算啥了,主要是能搞明白里面的foxpro代码,我没弄过foxpro,倒花了不少时间来搞清楚里面的逻辑。因为这个程序采用的是注册文件的形式,所以注册机也是以生成注册文件的方式提供的。用java编写的,有兴趣的可以下下来玩玩。
下载

你可能感兴趣的:(偶的破解(附详细流程和图片))