破解SQL Prompt 3.9的几步操作
关于SQL Prompt
的破解文章园子里已经有不少人发过了。破解思路我也不想重复,不知道的可以参考:http://www.cnblogs.com/jintan/archive/2008/06/16/1223282.html
官方下载地址是:http://downloads.red-gate.com/SQLToolbelt.exe
接下来我就说说具体怎么做吧。我就说说最简单最傻瓜的做法,不需要懂IL照样破解!
准备:用到的工具VS2005|VS2008 、DotNet Helper 、Reflector
1.将最新版的SQL Prompt 3.9下载下来安装好。我安装在D:\Program Files\Red Gate\SQL Prompt
3目录下。
2.用DotNet Helper 将RedGate.Licensing.Client.dll反编译成IL。DotNet
Helper确实很方便,用于可视化的反编译和编译,界面如图:
点击“反编译”按钮,即可将RedGate.Licensing.Client.dll反编译成IL,如下图:
3.用Reflector打开RedGate.Licensing.Client.dll,找到License类的DaysLeftInTrial
属性,将语言选成IL,然后查看该属性下的方法get_DaysLeftInTrial,如图:
4.这里是返回还剩下的试用天数,如果我将这个属性的逻辑改为返回9999,那岂不是不会试用过期了。但是如果不会IL怎么办?简单。使用VS新建
一个控制台应用程序,在其中类下面建属性,该属性返回9999:
public int GetStudyzy
{
get
{
return 9999;
}
}
5.将VS中的这个程序编译好。然后使用Reflector查看该程序,找到这个属性:
6.这不就是我们想要的返回9999的IL了吗?用文本编辑器打开RedGate.Licensing.Client.il,搜索
get_DaysLeftInTrial字符串,找到该方法的定义,然后将其中的内容修改为返回9999的这个IL的内容:
.method public hidebysig specialname instance int32
get_DaysLeftInTrial() cil managed
{
.maxstack 1
.locals init (
[0] int32 CS$1$0000)
L_0000: nop
L_0001: ldc.i4 0x270f
L_0006: stloc.0
L_0007: br.s L_0009
L_0009: ldloc.0
L_000a: ret
} // end of method Licence::get_DaysLeftInTrial
7.保存IL的修改。使用DotNet
Helper,点击其中的“编译”按钮,将会编译出修改后的程序集:RedGate.Licensing.Client_Output.dll,将这个程
序集替换掉原来的程序集。
8.去掉强命名。
进入
相关文档:
alter procedure qry_page
@sqlstr nvarchar(4000), --查询字符串
@page int, --第N页
@pagesize int &n ......
Orcale 的SQL 语句取得系统当前时间用:sysdate
当需要在系统当前日期上减去一天时可以用 sysdate-1
附:当只对一定数量的记录感兴趣时可以如 rownum<100
select * from SLYC_CUSTINFO_T where indbtime>sysdate-1 and OFFICE_CODE='46' and rownum<1 ......
SELECT sysobjects.name,syscolumns.name
from sysobjects,syscolumns
WHERE(sysobjects.id=syscolumns.id)
select col_name(OBJECT_ID('staff'),17)
select name
from syscolumns
where id=object_id('你的表名'); ......