吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6901|回复: 13
收起左侧

[分享] 第一次破解,大家鼓励一下

[复制链接]
lovejgx 发表于 2010-11-27 15:57
先发几句感叹..
在两年前我就想学习破解了,当时还在学校,那时候确实有很多时间,
可是我下载了茫茫多的教程和资料都没怎么看,就学了一点点汇编...
后来就把这事儿丢一边儿了,一直到前几天由于某原因,我又回来了,
这是我第一次破解软件,发这个贴子直是希望大家鼓励一下!

没发过这类贴子,有不足之处大家多指教!以下格式还是从别的贴子弄过来的 呵呵

【文章标题】: 第一次破解,大家鼓励一下
【软件名称】: XXXX物流系统
【加壳方式】: 无
【保护方式】:注册码,重启动验证
【编写语言】: VB
【使用工具】: od
【操作平台】: xp
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
我是在虚拟机里搞的,XP系统
软件安装完后点主程序进入的时候会出来一个序列号,注册按钮默认是不可用的,我随便输入注册码,按钮还是禁用的,由于我以前看过几个破解教程,
上边有的会提示注册码错误等信息,然后根据提示信息来下手,可这个什么都没提示,当时就傻了。 我两年前下载的破解工具包还在,里边工具挺全的,
其实都还不会用,我用OD载入了程序,然后运行跑了一下,没出什么错,我本人就是学编程的,是搞JAVA的,上班半年了,所以对程序调试还是很懂的,
我在OD中找到了断点插件,在里边看看有什么能用的,我想如果程序要验证肯定要拿我的假注册码来和真的比,于是我把字符比较的断点全选上了,结果
不知道为什么没效果。我又看了看插件上其他的断点,忽然看到了一个限制断点,里边有禁用按钮的,狂喜啊!要不是我看到,我也不知道会有这样一个断点,
以后一定要看看windows编程里的API,我把这个断点选上后输入了假注册码,才输入一个字符程序就断下来了,我向上找啊找,想看看程序是不是比较了注册码,
然后才断下的,结果向上找了N行也没啥信息,这时候我才发现汇编块儿中的很多都是MSVBVM60什么的DLL啊,我才想到以前看的程序的领空问题,我就百度
了一下OD领空,然后发现我现在的OD果然没在程序的领空,而是在系统上... 明白了我就找到以前存的资料看了一下OD的操作,主要看怎么返回程序领空,按照
资料操作,正常返回到程序里了,我又向上找,找了一会儿终于发现了比较还有跳转命令! 我想起了以前看过的教程,改标志可以让跳转改变,可是我实在不知道
什么标志影响什么,无赖之下又想起了可以改汇编代码,我就在工具包里扒出了汇编手册,对着上边将跳转给改了。重新运行,输入字符,注册按钮变成可用了,
高兴啊.. 点了注册却发现报了个错,说缺少个什么DLL,郁闷啊.... 我把这个名字搞到去搜索了一把,找到了,看来是个常用的DLL,下载下来搞到 system32下,
重新运行,注册,然后程序就进入了用户登录界面,因为系统很老,用的ACCESS数据库,我找了个软件把密码搞出来,然后打开看了默认的用户和密码,我用
管理员登录,然后程序就卡了10几秒,然后竟然退出了...  我又傻了 然后我想肯定是程序又验证了,这样改了程序也用不了,不如我找到真的注册码就万事大吉了,
就这样我又回到我修改跳转的地方往上找,找了很多CALL,大部分都是MSVBVM60什么的,好像是VB带的方法吧,终于找到了一个是程序自己的CALL,进去后
一直跟了很久,也没发现什么... 我又出去继续向找,又找到一个CALL,发现CALL下边紧跟着的汇编是比较语句,我想可能就是这个吧,我进去单步跟着走,没走多久
发现了机器码,又走了一会儿发现了我输入的注册码,我就耐着心走啊走,走了很久,这个CALL还真长啊... 发现了机器码转成数字了,带小数点,一串0,我猜想可能
在计算了,又走了几步发现了 堆栈 ss:[0012EE10]=181DA33A (十进制 404595514.) 我一看这很像啊,就复制下来了,又重载入程序,粘贴 404595514 这个
,然后一路F9程序走完,注册按钮竟然可用,真的找到注册码了! 一看时间都12点多了,我早上8点多开搞的,激动啊,没想到半天搞出来了,吃了午饭找了个教程,
做注册机的,看完了发现要分析算法什么的,我就继续进入那个主要的CALL找到了那段,本来想比着教程做个内存注册机的,我想我汇编这么差,就分析一下,就当练练,
然后就开始百度啊对着资料一句句分析代码,分析完后发现算法很简单,直是我技术实在菜,所以还是花了点时间,大牛不要笑话 !下边是CALL里重点分析的一段代码:

00996B52   .  52            push edx                           ;  这里出现机器码
00996B53   .  FF15 88124000 call dword ptr ds:[<&MSVBVM60.#581>;  MSVBVM60.rtcR8ValFromBstr
00996B59   .  833D 0090A500>cmp dword ptr ds:[A59000],0                //上边一行将机器码转为实数比,这行比较长度是否等于0
00996B60   .  75 08         jnz short Cargo.00996B6A                //如果上边是0跳转
00996B62   .  DC35 90854000 fdiv qword ptr ds:[408590]                //将机转换后的机器码除以 ds:[408590] 中的数
00996B68   .  EB 11         jmp short Cargo.00996B7B                //跳到 00996B7B
00996B6A   >  FF35 94854000 push dword ptr ds:[408594]
00996B70   .  FF35 90854000 push dword ptr ds:[408590]
00996B76   .  E8 6943A7FF   call <jmp.&MSVBVM60._adj_fdiv_m64>
00996B7B   >  DC0D 981D4000 fmul qword ptr ds:[401D98]                //相乘
00996B81   .  DC05 88854000 fadd qword ptr ds:[408588]                //相加
00996B87   .  DFE0          fstsw ax                                //将状态给ax
00996B89   .  A8 0D         test al,0D                                //比较
00996B8B   .  0F85 0A010000 jnz Cargo.00996C9B                        //没跳
00996B91   .  FF15 30124000 call dword ptr ds:[<&MSVBVM60.__vb>;  MSVBVM60.__vbaFpI4 //转换字符
00996B97   .  8945 B4       mov dword ptr ss:[ebp-4C],eax
00996B9A   .  DB45 B4       fild dword ptr ss:[ebp-4C]         ;  这里出现注册码

以下是当时的计算数据:
st=1038691006.5000000000
ds:[00408590]=18.00000000000000
除以
st=57705055.916666664960
ds:[00401D98]=7.000000000000000
乘以
st=403935391.41666667520
ds:[00408588]=660123.0000000000
加上
结果:404595514.4166666752
取整数部分 404595514
最终注册码为:404595514

分析完后终于自己做了第一个注册机! 我怕算出来的两个参数是根据其他什么算出来的,我又装了2003的虚拟机,然后用生成的注册码试了一下,我想多了,两个参数是死的。
另外我找到了程序读取的一个文件,发现里边是存注册码的地方,我才知道为什么改了跳转不行!

呵呵 到这里就彻底结束了! 没什么技术含量,以后我会努力做好的,谢谢大家!

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

tcwjw 发表于 2010-11-27 16:05
沙发我的
支持楼主
q13774748552 发表于 2010-11-27 16:09
a20549304 发表于 2010-11-27 16:22
e32 发表于 2010-11-27 16:30
顶lz 学习下lz的毅力
sin3322 发表于 2010-11-27 16:43
第一次破解就这么强的分析能力啊???

不是第一次吧??
‖圊煙 发表于 2010-11-27 16:47
感觉好迷茫  不知道 该不该坚持...
leizihui 发表于 2010-11-27 17:44
看得出来虽然为第一次但是基本功了得
yuzf 发表于 2010-11-27 18:48
分析很详细哦
liaoyl 发表于 2011-8-16 22:14
第一次破解真是不错!谢谢分享!学习啦!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 10:31

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表