| net环境下的程序破解一例 |
|
| 作者:未知 文章来源:网络收集 点击数: 更新时间:2006-3-29 15:18:48
|
这是我的第二篇破文,在下菜鸟一只,写如此文章,希望没污染大家的眼睛。 现在.net开始流行起来,网上许多共享软件开始用.net编写。我们Cracker也应该与时俱进,至少 要能够对付简单的.net软件吧!曾经看到过GREENLEMON(菩提!)[FCG]写的破文,获益良多!经过 一番摸索,本人也试着破破.net的软件,于是有了下文。
目标软件:法语助手1.5.3版
下载地址:www.francochinois.com
编程语言:VB.NET
破解工具:ILDasm,还没找到比较好的动态分析软件,就静态将就着吧!该工具微软提供的dotnetsdk 软件包中可以找到。想在此说一句,我曾试着用softice和Ollydbg跟踪了一次,没把我 累了个半死,除了知道注册码为10位外,其它一无所获。我还用过apis32.25监视过该软件调用过 哪些api,不幸的是apis一个api都没有捕捉到,难道.net下不调用winapi32?还请各位大侠指正。
破解方式:爆破,想找算法的自己试试吧! 要求:要对.net和IL语言有一定的了解! 目的:学习,练手,交流。
破解过程:
1、安装完本软件后,进入软件注册的菜单,点注册,会知道软件根据提供的机器码判断输入的注 册是否正确。随便输入注册码,提示“注册失败”或“注册错误”。由于.net采用Unicode保存字 符,在程序中是找不到现成的中文字串的。也就是说,如果还希望通过Ollydbg运行程序后找中文 提示字符串是不可行的,不仅找中文字串不行,就是找winapi也行不能。W32Dasm就更不行了。 (希望高手不要笑哦!)不要紧,把ASCII转Unicode,用UltraEdit把“注册失败”或“注册错 误”分别转成Unicode为“e8 6c 8c 51 31 59 25 8d”和“e8 6c 8c 51 19 95 ef 8b”。
2、反编译主程序frhelper15.exe。即在开始-->运行内输入ildasm,对其反编译。发现作者为 了加大破解难度,所有的方法、类全部用小写字母a、b、c表示,而不是用平常用的英文单词。 (我靠,这也做得出来!)这样就无法从方法、类的名称上大致判断其作用是什么了。那我们就 采用最笨的办法吧,呵呵!将反编译结果保存为il文件,然后用记事本或其他的文本工具打开, 在其中查找“e8 6c 8c 51 31 59 25 8d”和“e8 6c 8c 51 19 95 ef 8b”。FT!居然也没有。 猜想程序还调用了DLL来判断注册码了。到安装目录找找吧,DLL文件还真多,你看commondll.dll, 看他这张脸都像!就他了。依然对其反编译,保存为il文件,然后用记事本打开, 找“e8 6c 8c 51 31 59 25 8d”和“e8 6c 8c 51 19 95 ef 8b”,太妙,果然在这里。
.method private instance bool a() cil managed { // Code size 171 (0xab) .maxstack 3 .locals init (bool V_0, unsigned int8[] V_1, unsigned int8[] V_2, class [mscorlib]System.Security.Cryptography.RSACryptoServiceProvider V_3, &n [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>
|
|
[ 收藏此页到: 天天|和讯|博采|ViVi|狐摘|我摘|天极 ] 文章录入:kinda 责任编辑:kinda |
|
上一篇文章: flat使用经验谈 下一篇文章: 黑客侵入Linux主要下载网站的服务器 |
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |