在网上看到一个好用的html5表格插件,但是该插件需要进行商用购买才能部署在服务器上进行展示,不购买会有水印和黑屏的效果。
首先我们拿到了该表格插件的demo代码,该代码中并没有出现怎么设置授权的字样,最后百度得到拿到授权码后的使用代码,下面的名字进行了适当的修改,避免不必要的麻烦。
XXXX.LicenseKey = "your license key";
可以看到上面这句代码就是我们的切入点,我们可以看出该插件是通过一个文本型授权码来进行用户授权认证的。
那我的思路就是:既然属性LicenseKey被赋值,那控制授权的代码必将会调用到该属性,那js中字符串和方法都属于Object,所以这个时候我将LicenseKey这个属性赋值为一个方法对象,如下:
XXXX.LicenseKey = function(){
debugger;
}
当然这只是我的一个初步想法,具体实践的时候并没有预想的报错或进入断点的效果,那我就想LicenseKey原本的属性类型String类型的,那我可以定义LicenseKey这个对象的String同名方法,如下:
XXXX.LicenseKey="xxxx"
XXXX.LicenseKey.substring = function(){
debugger;
}
这个时候我再调用程序的时候确实进入断点了,我这里用的是重写substring方法,具体项目要具体判断,要多试几个方法才能找到突破口。
那下面的就不用我多说了,有了这个突破口,我们就能找到控制授权的代码附近的坐标,后面的事情就是对该附近的代码进行调试和分析,就能找到突破授权校验的目的了。