- UID
- 943
注册时间2005-4-15
阅读权限50
最后登录1970-1-1
感悟天道
TA的每日心情 | 开心 6 天前 |
---|
签到天数: 1949 天 [LV.Master]伴坛终老
|
【文章标题】: 牧场专家2005
【作 者】: KILL
【软件名称】: CE2005.exe
【大 小】: 8.65MB
【编写语言】:Microsoft Visual Basic 5.0 / 6.0
【工 具】: WinXP、OllyDbg、PEiD。
【操作平台】: WinXP sp2
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
【软件限制】使用次数
--------------------------------------------------------------------------------
【软件介绍】
随着肉牛业的不断发展,养牛业正在从传统的生产管理方式向现代化的管理方式转变,对牛群的管理也正在逐步由传统的粗放型松散化管理向精养型集约化管理方向发展,这本身就要求对牛群的总体状况有细致的了解,对肉牛的喂养,产乳,繁殖,疾病的预防与诊治有严格的监控,而且,随着我国乳业产业的不断发展,提高肉牛单体产乳量,提高牛群总体经济效益已经是养牛业主要的发展方向,在这种形式下,肉牛场引入计算机管理已成为必然趋势。
《牧场专家》是专门针对于现代肉牛场而开发,提供养肉牛场的全面管理,可以随时准确获取肉牛场的运营信息及全部牛只的生产状况,本软件图文并茂易于操作,基于Windows的图形化界面,稍有计算机基础的人都能操作,可以稳定的的运行于win98/win2000/winXP等操作系统。
系统包含牛群管理,牛群繁殖,饲养与饲料,疾病与防疫,生产管理,统计与分析,牛场管理,系统管理几大模块。系统以遵循牛的生长发育规律为原则组织系统流程,系统把对肉牛的管理作为核心,以肉牛的生长作为主线,从肉牛的降生到肉牛的出栏,实现全程化的计算机监控管理。
【详细过程】
熟话说:“知已知彼,百战百胜。”,再强的防护措施也有它的弱点。VB程序有它的特殊性,因为它很大程度上是依靠MSVBVM**.DLL,这个动态链接库,解释执行的。上面文件名上打*号的部分,会随着编写程序所用的VB版本的不同而不同。现在的VB程序一般是用到6.0的版本了,所以上面的文件名一般是MSVBVM60.DLL。正是因为这个原因,使我们看到的静态的反汇编程序,大部分是在几个动态链接库上转来转去,很少能看到有用的东东(有用的东东还是有的,只是藏起来了), 所以用VB编写的程序用通用的如W32DASM等静态反汇编软件是不好分析的(至少对我来说还是像看天书)。不过,以前好像有过,专门反汇编VB程序软件,不过我没有用过,也好像听说现在高版本的程序它不支持。即然静态分析不太行,那我们就用动态分析吧。
安装完毕,用PEID一查,是Microsoft Visual Basic 5.0 / 6.0,运行程序,出现试用次数,不管他直接找注册位置。
终于在系统管理里面的-系统参数设置里面找到注册位置。随便输入注册码,提示注册码不正确,请重新注册。
呵呵,你千万不要讨厌这个出错提示,它可是我们分析成功的好开始啊,它给了我们分析它关键点(当然是有关注册的代码段)的切入口。因为我们可以在VB的函数_rtcmsgbox上下断点,这个函数的作用是显示一个对话框。如果我们在点注册按纽后能成功的断下程序,我们就有了一个好的开始。
有人会问为什么我们要在这个地方下断点呢?这是因为,当我们在程序要显示出错提示的时候断下程序,说明程序已经执行过了判断注册码对错的代码段,由于我们填的注册码肯定是错误的,程序在判断后,一般会有一个跳转,跳到显示注册码错的代码段上来,而且这外跳转一般不会跳很过,也就是说判断注册码对错的关键代码离显示注册码错的代码段一般不是很远,只要我们向上去找几下,一般就可以发现关键处。找到了关键处,我们就成功了一半。好,现在开始动工。
现在轮到我们的主角出场了,Ollydbg加载程序,等它自动分析完之后,按ALT+E打开可执行模块,找到MSVBVM60.DLL,双击它,到了这个模块里面,再按Ctrl+N显示出这个模块里面的函数名称,下拉滚动条找到rtcmsgbox这个函数,按F2下断点。按F9执行程序,填试验码后点注册,程序就被断下来了,如下:
660DC5F3 > 55 push ebp #程序断在此处。
660DC5F4 8BEC mov ebp,esp
660DC5F6 83EC 4C sub esp,4C
660DC5F9 8B4D 14 mov ecx,dword ptr ss:[ebp+14]
这里是在MSVBVM60.DLL模块里,我们要回到原程序的空间去,所以我们按Ctrl+F9,意思是执行到返回处。这时注册出错框出现了,点确认之后,程序断在此处。
660DC707 C2 1400 retn 14 #此处按F8就回到了原程序的空间。
代码如下:
00B09C42 . 56 push esi
00B09C43 . 51 push ecx
00B09C44 . FF15 AC104000 call dword ptr ds:[<&MSVBVM60.>; MSVBVM60.rtcMsgBox #rtcmsgbox函数调用,用于显示注册码错的信息。
00B09C4A . 8D95 10FFFFFF lea edx,dword ptr ss:[ebp-F0] #程序停在了这里。
00B09C50 . 8D85 20FFFFFF lea eax,dword ptr ss:[ebp-E0]
跟据上面所讲的,关键的语句应该在这段代码的上面,我们去找找,我们向上找了几下,看到如下代码。
00B09BCE . /E9 93000000 jmp CE2005.00B09C66 #这个无条件跳转,跳过了显示出错对话框的代码。
00B09BD3 > \B9 0A000000 mov ecx,0A
#注意上面00B09BD3 后面有一个">"符号,说明有上面某处有一个跳转跳到这里。这很可能是,程序再判断注册码错后,一个条件跳转实验,跳到显示出错对话框的代码段来。我们只要找到这个跳转,关键处就近在眼前了。好,我们在00B09BD3处用鼠标左键点一下,下面的提示窗口会显示,这个跳转来自00B09A1B,MY GOD,有点远啊,要是人工看,得看几分钟啊。呵呵,好了,我们只接找到那个地方吧。我们在00B09BD3处用鼠标左键点一下,再右键出现一菜单,选择“前往”出现的子菜单选择下面说的"JE 来自00B09A1B"。
通过上面的操作,我们来到了,00B09A1B处,代码如下:
00B09A1B . /0F84 B2010000 je CE2005.00B09BD3 #如果条件成立,就跳到显示出错对框的代码处。
00B09A21 . |3935 88A3CA00 cmp dword ptr ds:[CAA388],esi
00B09A27 . |75 10 jnz short CE2005.00B09A39
呵呵,懒得追出注册码,直接把 je CE2005.00B09BD3 改成 jnz CE2005.00B09BD3。
然后击右键,选复制到可执行文件-选择部分。保存为OK.EXE。
好了,现在运行OK.EXE,进入注册位置,随便输入8888-8888-8888-8888,点确定。
提示什么?注册码已保存。
呵呵,注册成功!!! |
评分
-
查看全部评分
|