引用 | 编辑
blueprint
2005-01-02 03:40 |
楼主
▼ |
||
x0
顾名思义,写注册机来破解软体注册的方法,就是模仿你的注册码产生算法或者逆向注 册码验证算法而写出来的和你一模一样的注册机。 如果被写出注册机,你的软体只好免费了。或者你必须更换算法,但以前注过册的合法用户都得被迫更换注册码了。 Cracker要写注册机必须详细研究你软体的验证模块,这必须先将你的软体脱壳,再反汇编或者用除错器跟踪。市面上许多加壳和保护软体都吹嘘不可能被脱壳,但到目前为止没有一个软体兑现了自己的诺言。 由于CPU最终执行的都是有效命令,所以等你的程序自解压完成后再从记忆体中Dump出来就可以实现脱壳。因此不要在壳上面花很多功夫,因为没有这个必要。 第一招:制造假相 反汇编和除错器跟踪都是不可能防止的,因为所有的Win32程序都必须通过API来使用Windows系统中的关键DLL的(如Kernel32.dll、无法使用之字串32.dll等),然而API是可以Hook的。我们只能从自己的代码着手来保护我们的劳动果实了。 为了自己调试和以后维护的方便,我们一般采用有意义的名字给我们的函数命名,可这给了Cracker可乘之机。例如这样的函数是什么意思大家应该一目了然吧?IsRegistered(),IsLicensed(),LicenseVerify(),CheckReg()……这样Cracker就可以轻松地从数千个函数中找到他的目标——你的注册码校验函数!而且破解Delphi编写的软体还有一件TMG小组的破解利器——DeDe。 它可以轻松地看到你软体里的Form、Unit和函数名,还可以反汇编一部分代码,更可以和Win32DASM合作反汇编更多的代码,对Delphi编出的程序威胁极大。 为了不给Cracker创造温馨舒适的破解环境,要故意混乱(Obfuscate)我们的代码,将软体中所有的函数名全部替换成随机产生的函数名。 例如Func_3dfsa_fs32zlfv这个函数是什么意思?恐怕只有天知道了。网上有现成的代码混乱器,按你使用的编程语言的种类可以找到一些。 但要注意,只有当你要发布软体时才使用它,而且一定注意备份源程式码。否则,当你看不懂你自己的代码时就着急了:) 第二招:用公匙,并改名 另外,一定要使用公开密匙算法保护你的软体。RSA、DSA和El Gamal之类的算法都可以从网上找到。 但注意 .. 访客只能看到部份内容,免费 加入会员 x2
|
引用 | 编辑
Pein-pieman
2009-04-10 10:32 |
8楼
▲ ▼ |
wow! this is soo difficult to understand:P
x0 |
引用 | 编辑
hunter_dny
2009-04-16 11:56 |
9楼
▲ ▼ |
有点看不懂
有没有更 明理的教学呢 还是感谢大大的教学 x0 |
引用 | 编辑
ray1007jp-86
2009-06-13 02:19 |
10楼
▲ ▼ |
哇!的确要深入研究才有办法完全了解,
向来对这方面还算蛮有兴趣,不过这个恐怕还遥远的呢!! 但还是谢谢楼主贡献!! x0 |