前阵子有网友叫我帮忙破解一个控件.用dotfuscator混淆了的,字符串也加密成这种形式 【推荐阅读:程序备忘录:之十-WEB经典小问题(20】
【扩展信息:Rational Rose和UML可视化】il_2b19: ldstr bytearray (9f fa 9a fc 9e fe 8b 00 6e 02 71 04 ) // ........n.q.il_2b1e: call string a$pst06000001(string).net软件的保护方法无非就是限试用时间,限访问ip,用license key,运行时显示版权提示这几种.
限时间或ip是最容易搞定的,不论有没有被混淆,他都要调用framework的东西,而framework里的东西无法混淆,所以查找datetime, request之类的字眼,几下就搞定. 如果用key,也容易跟踪,起码他对外曝露了一个类来接收key.如果控件在检查到在非法使用时抛出个异常,那是个更愚蠢的做法,因为.net会提供出错时的调用堆栈,方便我跟踪.显示版权提示而且字符给混淆的就最难办了(没混淆的倒是容易,查找就是了)因为他从来不会像正式版那样工作. 唯一难倒我的控件是intersoft webgrid.net 3.5,因为他用remotesoft protector处理过.这protector不算混淆器,他是把.net的代码做成win32镜像,只把元数据保留.破他处理过的控件与破加了密的win32程序一样难,我没这样的本事.当然使用这东西的软件也很少,因为太贵了,要上千美金 这次破的是一个chart控件的试用版,他在渲染图表时留下了淡淡的声明版权的水印.要破他只能从他混淆字符串的函数入手了,就是string a$pst06000001(string).要写个逆运算的函数 用反编译器反编译了这个函数: ... 下一页