惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
N
Netflix TechBlog - Medium
Google Online Security Blog
Google Online Security Blog
月光博客
月光博客
量子位
酷 壳 – CoolShell
酷 壳 – CoolShell
V
V2EX
腾讯CDC
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 聂微东
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
M
MIT News - Artificial intelligence
Vercel News
Vercel News
The GitHub Blog
The GitHub Blog
Hugging Face - Blog
Hugging Face - Blog
博客园 - 【当耐特】
Apple Machine Learning Research
Apple Machine Learning Research
aimingoo的专栏
aimingoo的专栏
博客园 - 三生石上(FineUI控件)
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
MongoDB | Blog
MongoDB | Blog
H
Help Net Security
The Cloudflare Blog
Blog — PlanetScale
Blog — PlanetScale
F
Full Disclosure
G
Google Developers Blog
罗磊的独立博客
Jina AI
Jina AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Y
Y Combinator Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
J
Java Code Geeks
A
About on SuperTechFans
IT之家
IT之家
大猫的无限游戏
大猫的无限游戏
S
SegmentFault 最新的问题
有赞技术团队
有赞技术团队
GbyAI
GbyAI
雷峰网
雷峰网
T
The Blog of Author Tim Ferriss
The Register - Security
The Register - Security
U
Unit 42
D
Docker
Martin Fowler
Martin Fowler
L
LINUX DO - 热门话题
NISL@THU
NISL@THU
阮一峰的网络日志
阮一峰的网络日志
C
Cybersecurity and Infrastructure Security Agency CISA
博客园_首页
Google DeepMind News
Google DeepMind News

博客园 - 大海胸懷

在线题库随机出题 Restful API 测试的两个工具 Uncaught SyntaxError: Unexpected token ')' 源文件名长度大于文件系统支持的长度无法删除 常见招聘网站简历(doc档)解析 服务器真的不能乱碰... 打开Excel提示内存不足 帆软报表设计器数据集面板突然不见? 什么鬼?网站突然出现编译错误,错误代码显示1073741502 .Net 逆向 Reflector之reflexil使用 内网穿透(NAT),太牛... svn访问版本库时一直提示: please wait while the repository browser is initializing 远程桌面无法复制粘贴的解决方法 微信图文链接后台自动修复 常用资源网址收藏 浏览器主页恢复 Linux学习资料整理 向日葵连CentOS TeamViewer连CentOS
DayPilot控件之破解
大海胸懷 · 2020-06-05 · via 博客园 - 大海胸懷

DayPilot是个非常好的控件,使用起来也是很快能上手,功能也非常强大,有两个版本,官网地址:https://www.daypilot.org/,一个是Pro版是收费的,另一个是Lite版,则是开源免费,我下载的是Pro版,用在了考勤系统上,展示每个人每天的出勤情况,非常直观,不足之处就是时不时会弹出这么一个对话框出来提示”You are using a trial version of DayPilot Pro“,还有左上角会显示Demo字样。于是就想着怎样将Demo和这个对话框去掉。过程非常曲折,其中学到了不少知识,最终还是达成了目标。

去掉Demo相对比较简单,这个很快就实现了,在页面的最后加一段Script强制将Demo字样换掉就行了

 $(".scheduler_white_corner_inner").next().html("***");

 一开始用反编译工具查看这个dll的代码,发现并没有混淆处理,代码基本都能看到,于是按关键字"You are using a trial version of DayPilot Pro"在整个项目里查找,发现根本找不到,是不是觉得很神奇,项目里没有这段文字,怎么页面会显示这段文字呢?

于是想到了js文件可能被加密,在https://www.sojson.com/网站上将项目的DayPilot.Resources.Scheduler.js文件进行解密,原形就暴露了。

his.$gU = function() {  
  this.nav.top.dispose = this.dispose;
  window['eval']("var lh=location.hostname;if(!~lh.indexOf('daypilot.org')&&lh!=='localhost')setTimeout(function(){alert('You are using a trial version of DayPilot Pro.')},100000*(Math.random()*6+6));"); };

这一段很好理解了,原js中都是用16进制表示的,特意放在eval函数里,比如eval这四个字符对应的就是\x65\x76\x61\x6c,在js运行环境里执行以下代码就可以将这些16进制转为字符

String.fromCharCode(parseInt(arr[i], 16));

找到了这里,接下来就想是不是将这段代码删掉就行了,于是用Reflexil插件将以上函数全部删除,保存,这时才发现这个dll是强命名的,修改后无法保存。

强命名怎么办,在http://www.reteam.org/tools.php网站上找到了RE-Sign工具,自已用sn工具生成一个Key,然后强制为这个dll用新的key强命名,这样在反编译保存时就可以用新的Key保存了。这个工具有环境要求,我在Win7上还运行不了,还好找了一台WinXP的机器能够顺利运行,界面如下

这里说下sn工具,-T参数可以查看dll的公钥标记 -k可以生成key。

反编译工具修改后保存时选择第二个选项,用之前生成的key Re-sign.

 

 以上技术点都打通后就简单了,在alert语句前加上return;使alert语句永不执行,这样破解就完成了。

有需要的朋友们可以联系QQ:24092219.