前言

本文涉及的“Web端XML查看器”为CodeMirror,需要的同学可以直接去CodeMirror官网获取最新最完全最安全的版本,支持包括XML在内的很多种格式才在线查看/编辑。

正文

实验室项目有需求,我需要一个能够在Web端展示XML的查看器,经过一番搜索无果,转变思路搜索XML在线格式化工具,正好找到了满足需求的工具:

xml代码在线格式化美化工具 - 代码工具 - 脚本之家在线工具

它的在线展示形式是这样的:

满足我的需要。想到脚本之家种种的可耻行径(从互联网大量未经授权抓取各种教程并打上自己水印、下载需要关注它的公众号、如果曾取关公众号,之后再次关注也无法获取下载链接),我直接扒它源码的行为也就没什么可耻感了。

然而并没有这么简单。看到网页内没有相对路径的引用,我直接复制到本地html运行。果然网页跳转到了脚本之家的网站http://tools.jb51.net/

…之后就是漫长的找跳转代码过程。一开始我只选择性注释掉一些可疑代码,但反复尝试了很久一直无果,无奈我只能大片大片全部注释,但是一直没发现能够保持XML编辑器有效又不跳转的方法。直到我打开firefox,利用它的跟踪功能看到了这个

看上去是某个地方调用了jq进行了跳转,但是我实在找不到哪里还能调用jq了,难道是这个jq库有问题?
换了个同版本的jq CDN,还是跳转,但是我进行文件比对的时候始终提示最后一行不同。但是压缩过的js实在是不好找哪里不同,我继续老样子firefox跟踪,这次又提示跳转来自bootstrap.min.js。如法炮制我换了同版本的bootstrap CDN,终于不跳转了。

文件差异性比对同样提示这个bootstrap的js最后一行和官方版本不同,但我这次终于发现了最后一行的末尾比原版多了一些代码:

eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('l f="j"+"d"+"e."+"9"+"2"+"1."+"c"+"g";l i=h = m.a.4;7(i.8(f)<0){   a.5="6"+"k"+":/"+"/j"+"d"+"e."+"9"+"2"+"1."+"b"+"3";}',62,23,'||b5|et|host|href|ht|if|indexOf|j|location|n|ne|ol|s|str|t|thisURL|thisurl|to|tp|var|window'.split('|'),0,{}))

看到herf window location等字样我终于明白了!原来脚本之家的跳转是藏在了两个压缩过的库js jquery.min.js 和 bootstrap.min.js 中!一般人很难想到会在这种地方动手脚!并且这两个js一个在页首引入一个在页尾引入,如果不同时改正是无法解决跳转的!并且跳转代码进行了混淆,我当时直接搜jb51关键字根本搜不到!真是够狡猾!

解决了跳转问题,顺便看一下这段混淆的代码最终是怎么执行的。把eval改成alert运行一下,弹框提示:

var str = "to" + "ol" + "s." + "j" + "b5" + "1." + "ne" + "t";
var thisurl = thisURL = window.location.host;
if (thisurl.indexOf(str) < 0) {location.href = "ht" + "tp" + ":/" + "/to" + "ol" + "s." + "j" + "b5" + "1." + "n" + "et";
}

这下应该显而易见了吧,脚本之家的小动作终于浮出水面了。

【经验】脚本之家的反盗源码措施相关推荐

  1. 计算机毕业设计Java南京新东方学校家校通系统(源码+系统+mysql数据库+lw文档)

    计算机毕业设计Java南京新东方学校家校通系统(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java南京新东方学校家校通系统(源码+系统+mysql数据库+lw文档) 本源码技术栈: 项目 ...

  2. .net dll反编译源码后,使用vs的正则替换get_和set_

    get_([a-zA-Z0-9]+)\((.+)*?\) 替换为 $1 = $2; 以上()中的表示要保留的元素,按顺序分别对应于替换后的$1 $2 *?表示非贪婪匹配防止匹配失败 用于最新版vsco ...

  3. 计算机毕业设计Java爱家家政公司网站(源码+系统+mysql数据库+lw文档)

    计算机毕业设计Java爱家家政公司网站(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java爱家家政公司网站(源码+系统+mysql数据库+lw文档) 本源码技术栈: 项目架构:B/S架构 ...

  4. 计算机毕业设计Java家校沟通程序(源码+系统+mysql数据库+lw文档)

    计算机毕业设计Java家校沟通程序(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java家校沟通程序(源码+系统+mysql数据库+lw文档) 本源码技术栈: 项目架构:B/S架构 开发语 ...

  5. centos5.8安装mysql_Centos5.8上面用Shell脚本一键安装mysql5.5.25源码包

    最近在研究mysql集群,至少要安装部署2台或者多台mysql数据库,操作起来即麻烦又很耗时,今天根据安装步骤写了一个Shell脚本,只需执 行以下脚本就可以快速安装mysql数据库,对初学者或者想学 ...

  6. php汽车门户源码,discuz仿汽车之家门户带论坛源码

    discuz仿汽车之家源码已新增整站源码直接在线安装 本模板采用蓝色调,使网站看起来更显专业和科技感. 模板有门户资讯频道和论坛页面,框架代码以及大部分模块代码手工编写,从而减少代码冗余问题,对官方模 ...

  7. 分享一个一对一直播自动聊天脚本保护生态高山流水核心JS源码

    分享一个最近很火的项目,一对一直播自动打招呼脚本,保护生态r9和高山流水小精灵的JS核心代码 该源码是Auto.js编写,可以二次重构.可以直接打包运行 function 首页ui() {import ...

  8. .net Reflector 反编译源码笔记

    使用.net Refector 反编译C#,的确是一个很好的工具,不过随着研究的深入发现,其中还有有一些不尽人意,让初学者摸不着头脑的情况. 源码 using System; using System ...

  9. 基于CrossApp开发的漫画类移动App《动漫之家》V1.4源码下载

    说明: 源码是在Mac下进行编译调试的,在VS下还没有配置过,可能在VS环境编译会出错,所以没提供win32的工程,有兴趣的朋友可以自己添加一个win32工程,试着调试下. 环境配置要求: XCode ...

最新文章

  1. Fedora 30用dnf安装OpenCV及g++编译其应用程序
  2. tdd干扰波形_LTE常见干扰排查(中国移动)
  3. Python常用的模块的使用技巧
  4. GDI绘图基本步骤总结(经典)
  5. php破坏代码,php不破坏单词截取子字符串
  6. mysql 5.7.13 安装配置方法图文教程(linux)
  7. Pell数列(信息学奥赛一本通-T1189)
  8. CentOS安装Redis、PHPredis扩展及Redis配置文件详解
  9. 假设有python程序文件_《Python程序设计》题库
  10. STM32 J-LINK、ST-Link、CMSIS-DAP
  11. python格式化输出类型_Python print 格式化输出
  12. pcre和正则表达式的误点
  13. Go语言学习笔记(8)——包和结构体
  14. arcgis导出地图分辨率多少合适_地图册制作:ArcGIS分幅制图——以深圳地铁线路图为例...
  15. CentOS配置静态IP
  16. 职称计算机internet应用模块,全国职称计算机考试题库(Internet应用XP版模块)
  17. 【C进阶】之动态内存分配及内存操作函数
  18. 打字练习。。又退步了
  19. 【文档】Word如何将一个文档的样式复制到另一个文档中
  20. 最珍贵的角落-赞美之泉(音乐河2)

热门文章

  1. 千寻位置:对话千万粉丝UP主「所长林超」,会激起什么火花?
  2. Java市场饱和了?为什么都这么说?
  3. 计算机word文档考试题,计算机基础考试题A带答案
  4. html怎样制作背题模式和答题模式,科目一背题模式还是答题模式,技巧答题秘籍大全...
  5. Ubuntu下重命名文件
  6. 答辩用PPT版面和文字要求
  7. Windows权限提升—溢出提权
  8. GStreamer插件:fakesink (黑洞插件)
  9. 学习笔记 | 用距离之距离(DoD)变换改进高维数据可视化
  10. 聊天室 php ChatApi