易截截图软件、单文件、免安装、纯绿色、仅160KB

SQL Enlight 1.5 破解 第二版

SQL Enlight 1.5 破解 第二版 收藏
  破解声明:我的破解仅用于研究,请勿用于商业用途,需要使用请购买正版软件。
可恶的UbitSoft,我的破解出来还没几天,他的程序就改变了验证逻辑,虽然我觉得SQL Enlight的功能不是非常强大,但是他的防破解功能倒是下了不少功夫,除了核心代码用vc++.net编写的native code和il code混合的组件,还在程序逻辑中调用了.net执行引擎的StrongNameSignatureVerificationEx方法验证调用程序集的强命名是否有效,所以简单的反编译SQL Enlight的组件,并绕过强命名验证的方法是不行的,除此之外在这个用c++.net编写的Ubitsoft.SqlEngage.Sql.dll组件中,对调用程序集的强命名做了检查,除了检查强命名有效之外,调用程序集的强命名必须和Ubitsoft.SqlEngage.Sql.dll组件的强命名一致,而Ubitsoft.SqlEngage.Sql.dll这个组件是没法用ildasm反编译,再用ilasm编译回去的。
所以麻烦就来了,对于目前这个版本可以简单的反编译Ubitsoft.Security.dll这个组件,然后绕过强命名验证,可以破解,因为SQL Enlight代码里面没有对这个组件验证强命名的有效性,:)可能是忘记了,我想UbitSoft公司很快会意识到这点。因此这种破解方法并不好,而且本人不喜欢绕过强命名的破解方式,始终觉得不爽,一旦使用了StrongNameSignatureVerificationEx方法进行验证的话,那么这种方法就不凑效了。
不过问题来了,抛弃了绕过强命名的方式,搞不定Ubitsoft.SqlEngage.Sql.dll组件就没法破解了,因为Ubitsoft.SqlEngage.dll组件是需要被反编译的,但是他要调用Ubitsoft.SqlEngage.Sql.dll组件中的TsqlParser类,在这个类的构造函数中会检验调用程序集,除了签名验证,还要验证强命名是否和Ubitsoft.SqlEngage.Sql.dll一致,因此完美的方式就要修改Ubitsoft.SqlEngage.Sql.dll的强命名,没法反编译,就只能用另外的方式重新签名这个程序集了,尝试了ILMerge.exe,sn.exe,signer.exe,snremove.exe等,无一凑效,原因就是这是一个混合编程的组件,有unmanaged code,郁闷啊。
于是我打算放弃修改Ubitsoft.SqlEngage.Sql.dll组件的强命名了,想通过间接的方式构造出TsqlParser对象,然后赋值给破解的组件,不过这么做比较麻烦,而且万一UbitSoft变态起来在每个方法调用的时候检查调用程序集,那么这个方法又行不通了。
最后实在没办法了,只能用最土的办法来重新签名Ubitsoft.SqlEngage.Sql.dll这个组件了,好了,成功了。
破解


相关文档:

航空公司管理系统(VC++ 与SQL 2005)

系统环境:Windows 7
软件环境:Visual C++ 2008 SP1 +SQL Server 2005
本次目的:编写一个航空管理系统
      这是数据库课程设计的成果,虽然成绩不佳,但是作为我用VC++ 以来编写的最大程序还是传到网上,以供参考。用VC++ 做数据库设计并不容易,但也不是不可能。以下是我的程序界面,后面 ......

SQL删除有默认值字段(转)

declare   @dfname   varchar(50)  
select   @dfname=a.name  
from   sysobjects   a
inner join   syscomments   b   on   a.id=b.id  
inner join   sysconstraints  ......

使用sql_trace查看sql性能

作为一个B/S开发者,或多或少都得和数据库打交道,而对数据库的操作归根到底都是query语句,所有到最后都是为了查询,那么查看sql性能又成了我们开发中的一件趣事。下面简单介绍下sql_trace的使用:
alter session set sql_trace =true ;--打开sql_trace
select * from (select * from t order by id) where rownum <= ......

SQL实现分解带分隔符的字符串实验

SQL> var v_str varchar2(100);
SQL> exec :v_str:=',id1,id11,id101,';
PL/SQL procedure successfully completed.
SQL> select :v_str a,replace(:v_str,',','') b
  2    ,substr(:v_str,instr(:v_str,',',1,rownum)+1,
  3    instr(:v_str,',',1,rownum+1)-ins ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号