KodExplorer去除统计与检查更新代码补丁

释放双眼,带上耳机,听听看~!

最近用了KodExplorer,发现竟然每个页面都要加载一遍统计代码,而且统计代码除了Kod官方的,还有第三方的。正常软件如果加载这种第三方统计SDK,都需要有相应隐私协议以告知用户的,结果Kod也没有。里面的js都加密了,常规方法是搜不到统计代码怎么加载的,经过我的研究,成功找到了解决方法。

说一下该补丁的优化内容:

  1. 去除每个页面都有的统计代码
  2. 去除前端自动检测更新代码
  3. 去除版权校验代码

使用方法:

  1. 以下代码另存为 clean.php 上传到KodExplorer根目录
  2. 在浏览器访问 /clean.php 
  3. 删除该文件
  4. 如果还没生效,按Ctrl+F5刷新缓存即可
<?php
/**
 * KodExplorer 去除统计、更新提示与版权校验代码
 * 已测试支持版本:4.47
 */

function getExtendCode($content, $part, $n = 1){
	$length = strlen($content);
	$start = strpos($content, $part);
	if($start===false)return false;
	$end = $start+strlen($part);
	$c = 0;
	for($i=$start;$i>=0;$i--){
		if(substr($content,$i,1) == '{') $c++;
		if(substr($content,$i,1) == '}') $c--;
		if($c == $n){
			$start = $i;
			break;
		}
	}
	$c = 0;
	for($i=$end;$i<=$length;$i++){
		if(substr($content,$i,1) == '}') $c++;
		if(substr($content,$i,1) == '{') $c--;
		if($c == $n){
			$end = $i;
			break;
		}
	}
	return substr($content, $start, $end - $start + 1);
}

function checkdir($basedir){
    if($dh=opendir($basedir)){
        while (($file=readdir($dh)) !== false){
            if($file != '.' && $file != '..'){
                if(!is_dir($basedir.'/'.$file) && substr($file,-3)=='.js'){
                    handlefile($basedir.'/'.$file);
                }else{
                    $dirname=$basedir.'/'.$file;
                    checkdir($dirname);
                }
            }
        }
        closedir($dh);
    }
}

function handlefile($filepath){
	$file = file_get_contents($filepath);
	if(!$file)return;

	preg_match_all('/n\[[a-zA-Z0-9]+\]\([a-zA-Z0-9],function\(n\){.+?;try{n\[[a-zA-Z0-9]+\]\([a-zA-Z0-9]{0,}?\)}catch\([a-zA-Z0-9]\){}}\)/',$file,$matchs);
	$code = [];
	foreach($matchs[0] as $line){
		$new = getExtendCode($file, $line, 1);
		if(!in_array($new, $code)) $code[] = $new;
	}
	preg_match_all('/for\(var n=\[[a-zA-Z0-9\[\]\(\)\$,]+\],[a-zA-Z0-9]=[a-zA-Z0-9];[a-zA-Z0-9]<n\[[a-zA-Z0-9]+\];[a-zA-Z0-9]\+\+\)/',$file,$matchs);
	foreach($matchs[0] as $line){
		$code[] = getExtendCode($file, $line, 1);
	}
	$code[] = getExtendCode($file, 'todo()', 3);
	$code[] = getExtendCode($file, 'todo("2-1")', 3);

	foreach($code as $line){
		if($line)
			$file = str_replace($line,'{}',$file);
	}

	if(file_put_contents($filepath, $file)){
		echo '文件:'.$filepath.' <font color=green>处理成功</font><br/>';
	}else{
		echo '文件:'.$filepath.' <font color=red>处理失败,可能无写入权限</font><br/>';
	}
}

function handleztreefile($filepath){
	$file = file_get_contents($filepath);
	if(!$file)return;

	$code = getExtendCode($file, 'authCrypt', 3);
	if($code) $file = str_replace($code,'{}',$file);

	if(file_put_contents($filepath, $file)){
		echo '文件:'.$filepath.' <font color=green>处理成功</font><br/>';
	}else{
		echo '文件:'.$filepath.' <font color=red>处理失败,可能无写入权限</font><br/>';
	}
}

if(!file_exists('./static/js/app/src'))exit('当前目录不存在KodExplorer程序文件');
checkdir('./static/js/app/src');
handleztreefile('./static/js/lib/ztree/ztree.js');
温馨提示:

1.本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:service@2binarys.com,反馈处理!

2.资源所需价格并非资源售卖价格,是收集、整理以及本站运营的适当补贴,本站不提供任何免费技术支持。

3.所有资源仅限于参考和学习,版权归原作者所有,更多请阅读 网站声明

给TA打赏
共{{data.count}}人
人已打赏
系统运维

自建 KMS 服务器 | 持续激活 Windows

2022-7-26 10:28:40

系统运维

卸载阿里云、腾讯云服务器监控系统教程

2022-7-27 14:21:42

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索