[原创] Ajax Uploader 研究破解记录

【对于包中米米很多的人而不关心技术层面的东西时,请直接跳过本文,本文从技术的方面来调试和研究】

近日因为后台需要,试图搜索了一些Uploader的Asp.Net控件。也的确找到了很多开源的组件,有的是Flash开发的,有的是Jquery Ajax来实现的。但是在使用中总觉得这些组件要么存在部分兼容性问题,要么就是觉得要引入的资源过多,一会前台一会后台在代码书写上很是不放便。而我追求的是简洁、快速、功能又不能太损。

  后来发现了AjaxUploader (http://ajaxuploader.com/),通过他的演示发现这款组件的确是一个功能强大,操作简单很满足我的需要。一下是其强大的介绍

ASP.NET File Upload like GMail

Ajax Uploader is an easy to use, hi-performance ASP.NET File Upload Control which allows you to upload files to web server without refreshing the page.

It allows you select and upload multiple files and cancel running file uploads, add new files during uploading.

Ajax Uploader allows you to upload large files to a server with the low server memory consumption. The look and feel of file upload controls can be customized to seamlessly blend into your website design.

补充一下,他可以通过多种模式提供上传支持(Flash、普通模式、银光模式……)。不过通过官网上的Pricing就可以知道这是一个收费软件,对于像我这种包中无米的人士还真是麻烦。首先想到的不得不是去百度搜搜有无前人提供的“技术探讨版”,很遗憾的是网上所谓的“技术探讨版”全是吊人胃口的。于是乎只好自己学着操刀做做解剖研究。

   反编译,一路正常,用vs2010打开,我的天啊混淆的还不错啊,名称都混淆成a、b、c、……这样的东东了。肯定是没有办法再编译了。我突然觉得自己好蠢,人家那么有名难道会不考虑混淆就让你来个反编译么?咋办?

   模拟生成注册码。通过对代码的分析定位到对lic判断的函数块。恩!语句比较简单,于是乎写个window窗口程序将其提供的lic文件按照他的DES对称算法解析出来。再和源码对应,这下见到了lic的真面目,知道了每个分号段的含义。这里说一下,ajaxuploader采取了多种认证方式,有过期时间认证,域名认证,ip认证,无限制 等认证方式。而这些认证是通过lic中某个分号段中的int型数值来表示的,我们网上可以下载到的基本上都是基于时间认证(数值为4)。这也就是为什么用过一段时间后就不能用了的原因。想必作者在每次发布的时候就预留了一段时间供大家试用。那么从技术上而言本次的技术探讨自然就要从无限制(数值5)入手了。继续试图分析模拟生成lic,遗憾的是遇到了RSA,lic中除了保存限制二进制信息外,还有额外的一段,在这一段是进行了私钥加密的,程序在判断时会将限制信息和加密后的信息通过程序中写好了的公钥进行处理匹配。到此又可以宣布模拟生成注册码此路不通。

  怎么办了?虽然模拟生成注册码一路不通,但是通过这一步骤对其代码和认证有了进一步的了解,这为接下来的路做了一定的铺垫。我们知道.Net 的dll在执行的时候会转换成中间语言IL,理论上说不论他怎么混淆,怎么加密都必须保证能够正确的变成IL。从这一点出发,我们可以使用微软官方的ILDASM将dll转成中间语言IL,再试图修改IL,然后再由中间语言转换成dll。OK,就这样尝试,dll2IL,一切正常。打开IL,去掉CuteWebUI.AjaxUploader的强命名(不去掉强命名你生成后是无法被引用的哦),修改限制判断函数(当然是根据上面被反编译的源码来定位了),这里提示一下免得大家去在那堆杂七杂八的代码中找了,直接在il文件中搜索“license expired!” ,定位后往上看,看到那个4没有,然后目光下移 看到那个“5 " 没有 将他们互换。. 为什么要这样,因为我想直接用他的那个过期的lic做认证啊,而那个lic是做的4限制,所以我要将4换下位置定义为无限制版本。哈哈

  最后,可以用.Net Helper 再将il和对应的资源编译为新的CuteWebUI.AjaxUploader,编译的过程中自己需要再重新通过这个工具附加一下自己的强命名。

   放在asp.net 项目中,工具面板引用,项目引用,写个简单的代码,测试! Oh My God ,成功了(暂时未发现其他错误,有没有不知道,毕竟我们在暗处杀的彻不彻底就要时间来检验了,欢迎大家从技术讨论的层面各自动手共同测验)。

 

[下载地址:] http://download.csdn.net/source/2936435

 

转载于:https://www.cnblogs.com/foxhunter/archive/2010/12/20/1911895.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值