add koolproxy

This commit is contained in:
paldier 2019-01-13 00:01:22 +08:00
parent 22108a72ff
commit b318263582
32 changed files with 15182 additions and 101 deletions

View File

@ -1,91 +0,0 @@
#!/bin/sh
# load path environment in dbus databse
eval `dbus export kms`
source /jffs/softcenter/scripts/base.sh
CONFIG_FILE=/tmp/etc/dnsmasq.user/kms.conf
FIREWALL_START=/jffs/scripts/firewall-start
start_kms(){
/jffs/softcenter/bin/vlmcsd
echo "srv-host=_vlmcs._tcp.lan,`uname -n`.lan,1688,0,100" > $CONFIG_FILE
nvram set lan_domain=lan
nvram commit
service restart_dnsmasq
# creating iptables rules to firewall-start
mkdir -p /jffs/scripts
if [ ! -f $FIREWALL_START ]; then
cat > $FIREWALL_START <<-EOF
#!/bin/sh
EOF
fi
# creat start_up file
if [ ! -L "/jffs/softcenter/init.d/S97Kms.sh" ]; then
ln -sf /jffs/softcenter/scripts/kms.sh /jffs/softcenter/init.d/S97Kms.sh
fi
}
stop_kms(){
# clear start up command line in firewall-start
killall vlmcsd
rm $CONFIG_FILE
service restart_dnsmasq
}
open_port(){
ifopen=`iptables -S -t filter | grep INPUT | grep dport |grep 1688`
if [ -z "$ifopen" ];then
iptables -t filter -I INPUT -p tcp --dport 1688 -j ACCEPT
fi
if [ ! -f $FIREWALL_START ]; then
cat > $FIREWALL_START <<-EOF
#!/bin/sh
EOF
fi
fire_rule=$(cat $FIREWALL_START | grep 1688)
if [ -z "$fire_rule" ];then
cat >> $FIREWALL_START <<-EOF
iptables -t filter -I INPUT -p tcp --dport 1688 -j ACCEPT
EOF
fi
}
close_port(){
ifopen=`iptables -S -t filter | grep INPUT | grep dport |grep 1688`
if [ ! -z "$ifopen" ];then
iptables -t filter -D INPUT -p tcp --dport 1688 -j ACCEPT
fi
fire_rule=$(cat $FIREWALL_START | grep 1688)
if [ ! -z "$fire_rule" ];then
sed -i '/1688/d' $FIREWALL_START >/dev/null 2>&1
fi
}
case $ACTION in
start)
if [ "$kms_enable" == "1" ]; then
logger "[软件中心]: 启动KMS"
start_kms
[ "$kms_wan_port" == "1" ] && open_port
else
logger "[软件中心]: KMS未设置开机启动跳过"
fi
;;
stop)
close_port >/dev/null 2>&1
stop_kms
;;
*)
if [ "$kms_enable" == "1" ]; then
close_port >/dev/null 2>&1
stop_kms
start_kms
[ "$kms_wan_port" == "1" ] && open_port
else
close_port
stop_kms
fi
;;
esac

View File

@ -53,8 +53,7 @@
});
}
function onSubmitCtrl(o, s) {
document.form.action_mode.value = s;
function onSubmitCtrl() {
showLoading(3);
document.form.submit();
}
@ -91,12 +90,11 @@
<input type="hidden" name="next_page" value="Module_kms.asp" />
<input type="hidden" name="group_id" value="" />
<input type="hidden" name="modified" value="0" />
<input type="hidden" name="action_mode" value="" />
<input type="hidden" name="action_script" value="" />
<input type="hidden" name="action_mode" value=" Refresh " />
<input type="hidden" name="action_script" value="kms.sh" />
<input type="hidden" name="action_wait" value="5" />
<input type="hidden" name="first_time" value="" />
<input type="hidden" name="preferred_lang" id="preferred_lang" value="<% nvram_get(" preferred_lang "); %>"/>
<input type="hidden" name="SystemCmd" onkeydown="onSubmitCtrl(this, ' Refresh ')" value="k3c_kms.sh" />
<input type="hidden" name="firmver" value="<% nvram_get(" firmver "); %>"/>
<input type="hidden" id="kms_enable" name="kms_enable" value='<% dbus_get_def("kms_enable", "0"); %>' />
<table class="content" align="center" cellpadding="0" cellspacing="0">
@ -163,7 +161,7 @@
</tr>
</table>
<div class="apply_gen">
<button id="cmdBtn" class="button_gen" onclick="onSubmitCtrl(this, ' Refresh ')">提交</button>
<button id="cmdBtn" class="button_gen" onclick="onSubmitCtrl()">提交</button>
</div>
<div style="margin-left:5px;margin-top:10px;margin-bottom:10px">
<img src="/images/New_ui/export/line_export.png">

4
koolproxy/Changelog.txt Normal file
View File

@ -0,0 +1,4 @@
Koolshare Asuswrt-Merlin koolproxy Changelog
===========================================
changelogs can be found at: http://koolshare.cn/thread-64086-1-1.html

2
koolproxy/README.md Normal file
View File

@ -0,0 +1,2 @@
# merlin-koolproxy
a powerfull ad remove software for merlin xiaobao firmware

30
koolproxy/build.sh Executable file
View File

@ -0,0 +1,30 @@
#!/bin/sh
MODULE=koolproxy
VERSION=3.8.4
TITLE=koolproxy
DESCRIPTION=去广告,没烦恼
HOME_URL=Module_koolproxy.asp
# Check and include base
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
if [ "$MODULE" == "" ]; then
echo "module not found"
exit 1
fi
if [ -f "$DIR/$MODULE/$MODULE/install.sh" ]; then
echo "install script not found"
exit 2
fi
# now include build_base.sh
. $DIR/../softcenter/build_base.sh
# change to module directory
cd $DIR
# do something here
do_build_result

8
koolproxy/config.json.js Normal file
View File

@ -0,0 +1,8 @@
{
"version":"3.8.4",
"md5":"7afb9a5a4fac29bef9b5d21ad7a6aab8",
"home_url":"Module_koolproxy.asp",
"title":"koolproxy",
"description":"去广告,没烦恼",
"build_date":"2019-01-13_00:00:08"
}

BIN
koolproxy/koolproxy.tar.gz Normal file

Binary file not shown.

View File

@ -0,0 +1,56 @@
#! /bin/sh
eval `dbus export koolproxy`
# stop first
dbus set koolproxy_enable=0
[ -f /jffs/softcenter/koolproxy/koolproxy.sh ] && sh /jffs/softcenter/koolproxy/koolproxy.sh stop
[ -f /jffs/softcenter/koolproxy/kp_config.sh ] && sh /jffs/softcenter/koolproxy/kp_config.sh stop
# remove old files
rm -rf /jffs/softcenter/bin/koolproxy >/dev/null 2>&1
rm -rf /jffs/softcenter/koolproxy/koolproxy.sh >/dev/null 2>&1
rm -rf /jffs/softcenter/koolproxy/nat_load.sh >/dev/null 2>&1
rm -rf /jffs/softcenter/koolproxy/data/*.dat >/dev/null 2>&1
rm -rf /jffs/softcenter/koolproxy/data/*.txt >/dev/null 2>&1
rm -rf /jffs/softcenter/koolproxy/data/*.conf >/dev/null 2>&1
rm -rf /jffs/softcenter/koolproxy/data/gen_ca.sh >/dev/null 2>&1
rm -rf /jffs/softcenter/koolproxy/data/openssl.cnf >/dev/null 2>&1
rm -rf /jffs/softcenter/koolproxy/data/version >/dev/null 2>&1
rm -rf /jffs/softcenter/koolproxy/data/serial >/dev/null 2>&1
rm -rf /jffs/softcenter/koolproxy/rule_store >/dev/null 2>&1
rm -rf /jffs/softcenter/koolproxy/data/rules/1.dat >/dev/null 2>&1
# copy new files
cd /tmp
mkdir -p /jffs/softcenter/koolproxy
mkdir -p /jffs/softcenter/koolproxy/data
cp -rf /tmp/koolproxy/scripts/* /jffs/softcenter/scripts/
cp -rf /tmp/koolproxy/webs/* /jffs/softcenter/webs/
cp -rf /tmp/koolproxy/res/* /jffs/softcenter/res/
if [ ! -f /jffs/softcenter/koolproxy/data/rules/user.txt ];then
cp -rf /tmp/koolproxy/koolproxy /jffs/softcenter/
else
mv /jffs/softcenter/koolproxy/data/rules/user.txt /tmp/user.txt.tmp
cp -rf /tmp/koolproxy/koolproxy /jffs/softcenter/
mv /tmp/user.txt.tmp /jffs/softcenter/koolproxy/data/rules/user.txt
fi
cp -f /tmp/koolproxy/uninstall.sh /jffs/softcenter/scripts/uninstall_koolproxy.sh
cd /
chmod 755 /jffs/softcenter/koolproxy/koolproxy
chmod 755 /jffs/softcenter/koolproxy/*
chmod 755 /jffs/softcenter/koolproxy/data/*
chmod 755 /jffs/softcenter/scripts/*
[ ! -e "/jffs/softcenter/bin/koolproxy" ] && cp -f /jffs/softcenter/koolproxy/koolproxy /jffs/softcenter/bin/koolproxy
rm -rf /tmp/koolproxy* >/dev/null 2>&1
[ -z "$koolproxy_policy" ] && dbus set koolproxy_policy=1
[ -z "$koolproxy_acl_default_mode" ] && dbus set koolproxy_acl_default_mode=1
dbus set softcenter_module_koolproxy_install=1
dbus set softcenter_module_koolproxy_version=3.3.7
dbus set koolproxy_version=3.3.7

View File

@ -0,0 +1,30 @@
#!/bin/sh
alias echo_date='echo $(date +%Y年%m月%d日\ %X):'
if [ ! -f openssl.cnf ]; then
echo_date "Cannot found openssl.cnf"
exit 1
fi
if [ -f /koolshare/koolproxy/data/private/ca.key.pem ]; then
echo_date "已经又证书了!"
else
echo_date "生成证书中..."
#step 1, root ca
mkdir -p certs private
rm -f serial private/ca.key.pem
chmod 700 private
echo 1000 > serial
openssl genrsa -aes256 -passout pass:koolshare -out private/ca.key.pem 2048
chmod 400 private/ca.key.pem
openssl req -config openssl.cnf -passin pass:koolshare \
-subj "/C=CN/ST=Beijing/L=KP/O=KoolProxy inc/CN=koolproxy.com" \
-key private/ca.key.pem \
-new -x509 -days 7300 -sha256 -extensions v3_ca \
-out certs/ca.crt
#step 2, domain rsa key
openssl genrsa -aes256 -passout pass:koolshare -out private/base.key.pem 2048
echo_date "证书生成完毕..."
fi

View File

@ -0,0 +1,443 @@
ipset=/.com/black_koolproxy
ipset=/.cn/black_koolproxy
ipset=/.101.201.29.182/black_koolproxy
ipset=/.211.151.146.65/black_koolproxy
ipset=/.211.157.171.237/black_koolproxy
ipset=/.61.156.8.189/black_koolproxy
ipset=/.a.baiy.net/black_koolproxy
ipset=/.a.collective-media.net/black_koolproxy
ipset=/.a.itiexue.net/black_koolproxy
ipset=/.a.kickass.to/black_koolproxy
ipset=/.a.shamla.net/black_koolproxy
ipset=/.a.xlpu.cc/black_koolproxy
ipset=/.aavideo.xyz/black_koolproxy
ipset=/.action.data.cp61.ott.cibntv.net/black_koolproxy
ipset=/.ad-apac.doubleclick.net/black_koolproxy
ipset=/.ad.adfurikun.jp/black_koolproxy
ipset=/.ad.csdn.net/black_koolproxy
ipset=/.ad.doubleclick.net/black_koolproxy
ipset=/.ad.ettoday.net/black_koolproxy
ipset=/.ad.fglighting.net/black_koolproxy
ipset=/.ad.hefei.cc/black_koolproxy
ipset=/.ad.jp.doubleclick.net/black_koolproxy
ipset=/.ad.leadboltads.net/black_koolproxy
ipset=/.ad.leadboltmobile.net/black_koolproxy
ipset=/.ad.qingting.fm/black_koolproxy
ipset=/.ad.yixin.im/black_koolproxy
ipset=/.ad7.tagphi.net/black_koolproxy
ipset=/.adbma.adk2.co/black_koolproxy
ipset=/.adclick.g.doubleclick.net/black_koolproxy
ipset=/.adimg.cqnews.net/black_koolproxy
ipset=/.adimg.daumcdn.net/black_koolproxy
ipset=/.adimgs.xici.net/black_koolproxy
ipset=/.adinf.cp11.ott.cibntv.net/black_koolproxy
ipset=/.adm.zbinfo.net/black_koolproxy
ipset=/.admaster.mobi/black_koolproxy
ipset=/.admgr.qingting.fm/black_koolproxy
ipset=/.admicro1.vcmedia.vn/black_koolproxy
ipset=/.admicro4.vcmedia.vn/black_koolproxy
ipset=/.admicro5.vcmedia.vn/black_koolproxy
ipset=/.admicro6.vcmedia.vn/black_koolproxy
ipset=/.admin.louxia.org/black_koolproxy
ipset=/.adplexmedia.adk2.co/black_koolproxy
ipset=/.ads.csdn.net/black_koolproxy
ipset=/.ads.doublemax.net/black_koolproxy
ipset=/.ads.mp.mydas.mobi/black_koolproxy
ipset=/.ads.mydas.mobi/black_koolproxy
ipset=/.ads.pro-market.net/black_koolproxy
ipset=/.ads.trafficjunky.net/black_koolproxy
ipset=/.ads.wasu.tv/black_koolproxy
ipset=/.ads2.opensubtitles.org/black_koolproxy
ipset=/.adstat.cp11.ott.cibntv.net/black_koolproxy
ipset=/.adsystem.wasu.tv/black_koolproxy
ipset=/.adv.fjtv.net/black_koolproxy
ipset=/.adwasu.wasu.tv/black_koolproxy
ipset=/.ag.nukefans.net/black_koolproxy
ipset=/.agn.aty.cp45.ott.cibntv.net/black_koolproxy
ipset=/.al.za5.net/black_koolproxy
ipset=/.aladdin.genieesspv.jp/black_koolproxy
ipset=/.alog.umeng.co/black_koolproxy
ipset=/.amiok.org/black_koolproxy
ipset=/.ams.51junpin.net/black_koolproxy
ipset=/.analytics.ad.daum.net/black_koolproxy
ipset=/.analytics.ws.126.net/black_koolproxy
ipset=/.android.push.126.net/black_koolproxy
ipset=/.androidsdk.ads.mp.mydas.mobi/black_koolproxy
ipset=/.aos.gw.youmi.net/black_koolproxy
ipset=/.aos.prf.hn/black_koolproxy
ipset=/.aos.wall.youmi.net/black_koolproxy
ipset=/.api.adfurikun.jp/black_koolproxy
ipset=/.api.adtimaserver.vn/black_koolproxy
ipset=/.api.cupid.ptqy.gitv.tv/black_koolproxy
ipset=/.api.dewmobile.net/black_koolproxy
ipset=/.api.oneyuan.nagezan.net/black_koolproxy
ipset=/.apklog.cp11.ott.cibntv.net/black_koolproxy
ipset=/.app-g.39.net/black_koolproxy
ipset=/.app.50bang.org/black_koolproxy
ipset=/.ark.cp21.ott.cibntv.net/black_koolproxy
ipset=/.ark.letv-epg.wasu.tv/black_koolproxy
ipset=/.as.kejet.net/black_koolproxy
ipset=/.asimgs.cp61.ott.cibntv.net/black_koolproxy
ipset=/.au.umeng.co/black_koolproxy
ipset=/.au.youmi.net/black_koolproxy
ipset=/.aw.kejet.net/black_koolproxy
ipset=/.b.baiy.net/black_koolproxy
ipset=/.b.bst.126.net/black_koolproxy
ipset=/.b.yunfanlm.net/black_koolproxy
ipset=/.banner.img.static.youmi.net/black_koolproxy
ipset=/.bdaz.adsfactor.net/black_koolproxy
ipset=/.beacon.krxd.net/black_koolproxy
ipset=/.bid.g.doubleclick.net/black_koolproxy
ipset=/.bigbos.top/black_koolproxy
ipset=/.biz5.sandai.net/black_koolproxy
ipset=/.bkmcgi.play.cp81.ott.cibntv.net/black_koolproxy
ipset=/.bksdkconfig.play.cp81.ott.cibntv.net/black_koolproxy
ipset=/.bmp.ali213.net/black_koolproxy
ipset=/.bmp1.ali213.net/black_koolproxy
ipset=/.brance.play.cp81.ott.cibntv.net/black_koolproxy
ipset=/.bshare.optimix.asia/black_koolproxy
ipset=/.bx.optimix.asia/black_koolproxy
ipset=/.c.ad6media.fr/black_koolproxy
ipset=/.c.mnet-ad.net/black_koolproxy
ipset=/.c03.optimix.asia/black_koolproxy
ipset=/.c1.adform.net/black_koolproxy
ipset=/.c1.popads.net/black_koolproxy
ipset=/.c2.97you.net/black_koolproxy
ipset=/.c2.popads.net/black_koolproxy
ipset=/.c5.97you.net/black_koolproxy
ipset=/.cachenotice.cp11.ott.cibntv.net/black_koolproxy
ipset=/.cc.bigbos.top/black_koolproxy
ipset=/.cc.ccg51.win/black_koolproxy
ipset=/.cc.yfi052.pw/black_koolproxy
ipset=/.ccg51.win/black_koolproxy
ipset=/.cdn.adsfactor.net/black_koolproxy
ipset=/.cdn.clicktale.net/black_koolproxy
ipset=/.cdn.innity.net/black_koolproxy
ipset=/.cdn.media.innity.net/black_koolproxy
ipset=/.cdn1.ettoday.net/black_koolproxy
ipset=/.cdn3.e705.net/black_koolproxy
ipset=/.cdnonead-onead.cdn.hinet.net/black_koolproxy
ipset=/.cdnssl.clicktale.net/black_koolproxy
ipset=/.cf.gdatecube.net/black_koolproxy
ipset=/.cfg.adsmogo.mobi/black_koolproxy
ipset=/.cfg.adsmogo.net/black_koolproxy
ipset=/.cfg.adsmogo.org/black_koolproxy
ipset=/.ck.kejet.net/black_koolproxy
ipset=/.clicklog.moviebox.baofeng.net/black_koolproxy
ipset=/.clicktalecdn.sslcs.cdngc.net/black_koolproxy
ipset=/.clk.gentags.net/black_koolproxy
ipset=/.cloud.zyiis.net/black_koolproxy
ipset=/.cm.fastapi.net/black_koolproxy
ipset=/.cm.g.doubleclick.net/black_koolproxy
ipset=/.cm.gtags.net/black_koolproxy
ipset=/.cmarket.kejet.net/black_koolproxy
ipset=/.cms.gtags.net/black_koolproxy
ipset=/.code2.huimee.net/black_koolproxy
ipset=/.config.baofeng.net/black_koolproxy
ipset=/.contextual.media.net/black_koolproxy
ipset=/.corner.houyi.baofeng.net/black_koolproxy
ipset=/.count.game.pps.tv/black_koolproxy
ipset=/.counter.csdn.net/black_koolproxy
ipset=/.cp.3big.net/black_koolproxy
ipset=/.cp.5jjx.net/black_koolproxy
ipset=/.cp.efo.cc/black_koolproxy
ipset=/.cp.jiajv.net/black_koolproxy
ipset=/.cpc.88rpg.net/black_koolproxy
ipset=/.cus.adsmogo.mobi/black_koolproxy
ipset=/.cus.adsmogo.org/black_koolproxy
ipset=/.cvt.mydas.mobi/black_koolproxy
ipset=/.d.39.net/black_koolproxy
ipset=/.d.pixiv.org/black_koolproxy
ipset=/.d.yoyi.tv/black_koolproxy
ipset=/.d1635hfcvs8ero.cloudfront.net/black_koolproxy
ipset=/.d3al52d8cojds7.cloudfront.net/black_koolproxy
ipset=/.d3f.houyi.baofeng.net/black_koolproxy
ipset=/.daima.jiduan.cc/black_koolproxy
ipset=/.daima.kandu.cc/black_koolproxy
ipset=/.dat.gtags.net/black_koolproxy
ipset=/.dc.cp21.ott.cibntv.net/black_koolproxy
ipset=/.dc.csdn.net/black_koolproxy
ipset=/.dc.letv-epg.wasu.tv/black_koolproxy
ipset=/.dc2.csdn.net/black_koolproxy
ipset=/.de.as.cp61.ott.cibntv.net/black_koolproxy
ipset=/.dex.advg.jp/black_koolproxy
ipset=/.display.ad.daum.net/black_koolproxy
ipset=/.dl-vip.pcfaster.baidu.co.th/black_koolproxy
ipset=/.dl.img80.net/black_koolproxy
ipset=/.dl.xyymall.net/black_koolproxy
ipset=/.dload.qd.qingting.fm/black_koolproxy
ipset=/.dm531.dm530.net/black_koolproxy
ipset=/.dm532.dm530.net/black_koolproxy
ipset=/.dmp.kejet.net/black_koolproxy
ipset=/.dmp.tenmax.io/black_koolproxy
ipset=/.dolphin.ftimg.net/black_koolproxy
ipset=/.down.laomaotao.net/black_koolproxy
ipset=/.down.xiazai2.net/black_koolproxy
ipset=/.down.xiazaiyuan.net/black_koolproxy
ipset=/.downloada.dewmobile.net/black_koolproxy
ipset=/.downloadb.dewmobile.net/black_koolproxy
ipset=/.dp3.play.cp81.ott.cibntv.net/black_koolproxy
ipset=/.dpvc.39.net/black_koolproxy
ipset=/.dr3k6qonw2kee.cloudfront.net/black_koolproxy
ipset=/.dt.39photo.net/black_koolproxy
ipset=/.dz.njq.net/black_koolproxy
ipset=/.e-vcdn.anthill.vn/black_koolproxy
ipset=/.e.e708.net/black_koolproxy
ipset=/.ee.e701.net/black_koolproxy
ipset=/.ex.puata.info/black_koolproxy
ipset=/.f.e703.net/black_koolproxy
ipset=/.f.e719.net/black_koolproxy
ipset=/.f.novanet.vn/black_koolproxy
ipset=/.f2.e703.net/black_koolproxy
ipset=/.float.sandai.net/black_koolproxy
ipset=/.g.ad8.cc/black_koolproxy
ipset=/.g.doubleclick.net/black_koolproxy
ipset=/.g.fastapi.net/black_koolproxy
ipset=/.g.ousns.net/black_koolproxy
ipset=/.game.pps.tv/black_koolproxy
ipset=/.googleads.g.doubleclick.net/black_koolproxy
ipset=/.guess.union2.50bang.org/black_koolproxy
ipset=/.ha.pro-market.net/black_koolproxy
ipset=/.haitaoad.nosdn.127.net/black_koolproxy
ipset=/.i.9le.net/black_koolproxy
ipset=/.i.adfurikun.jp/black_koolproxy
ipset=/.i.bsshw.net/black_koolproxy
ipset=/.i.jiajv.net/black_koolproxy
ipset=/.i.l.inmobicdn.net/black_koolproxy
ipset=/.icon.51.la/black_koolproxy
ipset=/.id1.anreson.net/black_koolproxy
ipset=/.ii.bsshw.net/black_koolproxy
ipset=/.ima.xcyjzs.net/black_koolproxy
ipset=/.images.cp45.ott.cibntv.net/black_koolproxy
ipset=/.img.88rpg.net/black_koolproxy
ipset=/.img.ads.csdn.net/black_koolproxy
ipset=/.img.users.51.la/black_koolproxy
ipset=/.img1.126.net/black_koolproxy
ipset=/.img1.pszyzxh.org/black_koolproxy
ipset=/.img2.126.net/black_koolproxy
ipset=/.imgcdn.xixiwan.net/black_koolproxy
ipset=/.imp-mdsp.avazutracking.net/black_koolproxy
ipset=/.imp.adsmogo.mobi/black_koolproxy
ipset=/.imp.adsmogo.net/black_koolproxy
ipset=/.ipua.adfurikun.jp/black_koolproxy
ipset=/.irs01.net/black_koolproxy
ipset=/.j.microad.net/black_koolproxy
ipset=/.jgl.microad.net/black_koolproxy
ipset=/.jp.as.cp61.ott.cibntv.net/black_koolproxy
ipset=/.jph.itiexue.net/black_koolproxy
ipset=/.js-1.pchome.net/black_koolproxy
ipset=/.js.a3p4.net/black_koolproxy
ipset=/.js.cyad.cc/black_koolproxy
ipset=/.js.mumayi.net/black_koolproxy
ipset=/.js.revsci.net/black_koolproxy
ipset=/.js.users.51.la/black_koolproxy
ipset=/.js1116.anreson.net/black_koolproxy
ipset=/.js1315.anreson.net/black_koolproxy
ipset=/.js1940.anreson.net/black_koolproxy
ipset=/.js2294.anreson.net/black_koolproxy
ipset=/.js3555.hongtaidichan.net/black_koolproxy
ipset=/.js4476.hongtaidichan.net/black_koolproxy
ipset=/.js4775.hongtaidichan.net/black_koolproxy
ipset=/.js883.anreson.net/black_koolproxy
ipset=/.jsc.dt07.net/black_koolproxy
ipset=/.jssd.kb20.cc/black_koolproxy
ipset=/.jump1.pszyzxh.org/black_koolproxy
ipset=/.jump2.pszyzxh.org/black_koolproxy
ipset=/.kawa11.space/black_koolproxy
ipset=/.keydot.net/black_koolproxy
ipset=/.kti.bigbos.top/black_koolproxy
ipset=/.l.fastapi.net/black_koolproxy
ipset=/.lg.logging.admicro.vn/black_koolproxy
ipset=/.lg1.logging.admicro.vn/black_koolproxy
ipset=/.link.jiduan.cc/black_koolproxy
ipset=/.livep.l.cp81.ott.cibntv.net/black_koolproxy
ipset=/.lives.l.cp81.ott.cibntv.net/black_koolproxy
ipset=/.loading.baofeng5.baofeng.net/black_koolproxy
ipset=/.log.adtimaserver.vn/black_koolproxy
ipset=/.log.houyi.baofeng.net/black_koolproxy
ipset=/.log.tiexue.net/black_koolproxy
ipset=/.logger.qingting.fm/black_koolproxy
ipset=/.logic.cpm.cm.sandai.net/black_koolproxy
ipset=/.m.analytics.126.net/black_koolproxy
ipset=/.m.down.sandai.net/black_koolproxy
ipset=/.m.kejet.net/black_koolproxy
ipset=/.mc.yandex.ru/black_koolproxy
ipset=/.mcc.chinauma.net/black_koolproxy
ipset=/.mcgi.play.cp81.ott.cibntv.net/black_koolproxy
ipset=/.media.adtimaserver.vn/black_koolproxy
ipset=/.media.trafficjunky.net/black_koolproxy
ipset=/.mg.dt07.net/black_koolproxy
ipset=/.mid.houyi.baofeng.net/black_koolproxy
ipset=/.mimg.126.net/black_koolproxy
ipset=/.mixer.cupid.ptqy.gitv.tv/black_koolproxy
ipset=/.mlog.search.xiaomi.net/black_koolproxy
ipset=/.mmg.aty.cp45.ott.cibntv.net/black_koolproxy
ipset=/.ms.anreson.net/black_koolproxy
ipset=/.msg.71.am/black_koolproxy
ipset=/.msg.ptqy.gitv.tv/black_koolproxy
ipset=/.msg.video.ptqy.gitv.tv/black_koolproxy
ipset=/.msg2.video.ptqy.gitv.tv/black_koolproxy
ipset=/.msga.71.am/black_koolproxy
ipset=/.msga.ptqy.gitv.tv/black_koolproxy
ipset=/.nclog.mars.baofeng.net/black_koolproxy
ipset=/.news-l.play.cp81.ott.cibntv.net/black_koolproxy
ipset=/.news.766ba.net/black_koolproxy
ipset=/.news.push.126.net/black_koolproxy
ipset=/.nl.rcd.ptqy.gitv.tv/black_koolproxy
ipset=/.oc.umeng.co/black_koolproxy
ipset=/.oki.xcyjzs.net/black_koolproxy
ipset=/.okt.xcyjzs.net/black_koolproxy
ipset=/.onlinetips.baofeng5.baofeng.net/black_koolproxy
ipset=/.outer.anquan.org/black_koolproxy
ipset=/.p-l.play.cp81.ott.cibntv.net/black_koolproxy
ipset=/.p.rhgw.net/black_koolproxy
ipset=/.panel.adtify.pl/black_koolproxy
ipset=/.parser.houyi.baofeng.net/black_koolproxy
ipset=/.pb.bi.gitv.tv/black_koolproxy
ipset=/.pb.ott.hd.cp45.ott.cibntv.net/black_koolproxy
ipset=/.pclog.suishenyun.net/black_koolproxy
ipset=/.pd7-imp.revsci.net/black_koolproxy
ipset=/.phpad.cqnews.net/black_koolproxy
ipset=/.pic.fastapi.net/black_koolproxy
ipset=/.pix04.revsci.net/black_koolproxy
ipset=/.pre.api.tw06.xlmc.sandai.net/black_koolproxy
ipset=/.ps.eyeota.net/black_koolproxy
ipset=/.pt.trafficjunky.net/black_koolproxy
ipset=/.pubads.g.doubleclick.net/black_koolproxy
ipset=/.push.tv.api.3g.cp31.ott.cibntv.net/black_koolproxy
ipset=/.pvlog.moviebox.baofeng.net/black_koolproxy
ipset=/.px.owneriq.net/black_koolproxy
ipset=/.qiye11.ejunshi.net/black_koolproxy
ipset=/.qosp.msg.71.am/black_koolproxy
ipset=/.qr.cp31.ott.cibntv.net/black_koolproxy
ipset=/.quote.51.la/black_koolproxy
ipset=/.r.l.cp31.ott.cibntv.net/black_koolproxy
ipset=/.r.popin.cc/black_koolproxy
ipset=/.r.youmi.net/black_koolproxy
ipset=/.r1.cp31.ott.cibntv.net/black_koolproxy
ipset=/.resolver.msg.xiaomi.net/black_koolproxy
ipset=/.rlog.popin.cc/black_koolproxy
ipset=/.rtb-asiamax.tenmax.io/black_koolproxy
ipset=/.rtb-p.kejet.net/black_koolproxy
ipset=/.s.5jjx.net/black_koolproxy
ipset=/.s.ato.mx/black_koolproxy
ipset=/.s.de123.net/black_koolproxy
ipset=/.s.druu.cc/black_koolproxy
ipset=/.s.eclick.vn/black_koolproxy
ipset=/.s.effectivemeasure.net/black_koolproxy
ipset=/.s.fastapi.net/black_koolproxy
ipset=/.s.gdatecube.net/black_koolproxy
ipset=/.s.qd.qingting.fm/black_koolproxy
ipset=/.s.youmi.net/black_koolproxy
ipset=/.s0.2mdn.net/black_koolproxy
ipset=/.s03.optimix.asia/black_koolproxy
ipset=/.s1.2mdn.net/black_koolproxy
ipset=/.s4.55.la/black_koolproxy
ipset=/.s5.keydot.net/black_koolproxy
ipset=/.sd.kk3g.net/black_koolproxy
ipset=/.sd.mmfile.net/black_koolproxy
ipset=/.sdk.data.cp61.ott.cibntv.net/black_koolproxy
ipset=/.sdk.m.cp31.ott.cibntv.net/black_koolproxy
ipset=/.sdkconfig.play.cp81.ott.cibntv.net/black_koolproxy
ipset=/.securepubads.g.doubleclick.net/black_koolproxy
ipset=/.serve.popads.net/black_koolproxy
ipset=/.servedby.adsfactor.net/black_koolproxy
ipset=/.servicegetbook.net/black_koolproxy
ipset=/.sg-cdn.effectivemeasure.net/black_koolproxy
ipset=/.sh.adingo.jp/black_koolproxy
ipset=/.shzyjbr.wtdtjs.rocks/black_koolproxy
ipset=/.sis.jpush.io/black_koolproxy
ipset=/.sit.gentags.net/black_koolproxy
ipset=/.sjkmio.812920.top/black_koolproxy
ipset=/.snap.snapmobile.asia/black_koolproxy
ipset=/.sp.gmossp-sp.jp/black_koolproxy
ipset=/.spap.adingo.jp.eimg.jp/black_koolproxy
ipset=/.spap.adingo.jp/black_koolproxy
ipset=/.spapi.i-mobile.co.jp/black_koolproxy
ipset=/.spdmg-backend.i-mobile.co.jp/black_koolproxy
ipset=/.spdmg.i-mobile.co.jp/black_koolproxy
ipset=/.ss.subo.me/black_koolproxy
ipset=/.ss2p.uuxs.net/black_koolproxy
ipset=/.ssl-cdn.media.innity.net/black_koolproxy
ipset=/.ssp.tenmax.io/black_koolproxy
ipset=/.stat.cp33.ott.cibntv.net/black_koolproxy
ipset=/.stat.gw.youmi.net/black_koolproxy
ipset=/.stat.pchome.net/black_koolproxy
ipset=/.stat.titan.imgo.tv/black_koolproxy
ipset=/.static.adtimaserver.vn/black_koolproxy
ipset=/.static.anquan.org/black_koolproxy
ipset=/.static.criteo.net/black_koolproxy
ipset=/.static.eclick.vn/black_koolproxy
ipset=/.static.houyi.baofeng.net/black_koolproxy
ipset=/.static.novanet.vn/black_koolproxy
ipset=/.static.snapmobile.asia/black_koolproxy
ipset=/.static.youmi.net/black_koolproxy
ipset=/.stats.g.doubleclick.net/black_koolproxy
ipset=/.store.ptqy.gitv.tv/black_koolproxy
ipset=/.store.tv.api.3g.cp31.ott.cibntv.net/black_koolproxy
ipset=/.super.kdnet.net/black_koolproxy
ipset=/.t-l.play.cp81.ott.cibntv.net/black_koolproxy
ipset=/.t.adcrops.net/black_koolproxy
ipset=/.t.vbxx.net/black_koolproxy
ipset=/.t2.vbxx.net/black_koolproxy
ipset=/.tenmax-static.cacafly.net/black_koolproxy
ipset=/.test.api.xlmc.sandai.net/black_koolproxy
ipset=/.tinydrag.t.cp61.ott.cibntv.net/black_koolproxy
ipset=/.tj.yule8.net/black_koolproxy
ipset=/.tp.sphwq.net/black_koolproxy
ipset=/.track.dmp.youmi.net/black_koolproxy
ipset=/.tw13b093.sandai.net/black_koolproxy
ipset=/.twbill.xyz/black_koolproxy
ipset=/.u.1133.cc/black_koolproxy
ipset=/.ujs.jialiren.net/black_koolproxy
ipset=/.uma.gtags.net/black_koolproxy
ipset=/.union2.50bang.org/black_koolproxy
ipset=/.update.123juzi.net/black_koolproxy
ipset=/.ups.ksmobile.net/black_koolproxy
ipset=/.users.51.la/black_koolproxy
ipset=/.ut.gtags.net/black_koolproxy
ipset=/.util.nphoto.net/black_koolproxy
ipset=/.v.e704.net/black_koolproxy
ipset=/.v.img80.net/black_koolproxy
ipset=/.v.jtxh.net/black_koolproxy
ipset=/.val.atm.cp31.ott.cibntv.net/black_koolproxy
ipset=/.valf.atm.cp31.ott.cibntv.net/black_koolproxy
ipset=/.vip.yoyozz.net/black_koolproxy
ipset=/.vip.yule8.net/black_koolproxy
ipset=/.vipjs.csad.cc/black_koolproxy
ipset=/.vpie.net/black_koolproxy
ipset=/.w.3big.net/black_koolproxy
ipset=/.w.efo.cc/black_koolproxy
ipset=/.w2.3big.net/black_koolproxy
ipset=/.w2.docols.net/black_koolproxy
ipset=/.wazero.online/black_koolproxy
ipset=/.web.51.la/black_koolproxy
ipset=/.web.ali213.net/black_koolproxy
ipset=/.web.houyi.baofeng.net/black_koolproxy
ipset=/.web1.51.la/black_koolproxy
ipset=/.web2.51.la/black_koolproxy
ipset=/.wl.houyi.baofeng.net/black_koolproxy
ipset=/.wm.20150.net/black_koolproxy
ipset=/.ws.ksmobile.net/black_koolproxy
ipset=/.ww202.keyyou.net/black_koolproxy
ipset=/.www.51.la/black_koolproxy
ipset=/.www.6604.org/black_koolproxy
ipset=/.www.ads8.cc/black_koolproxy
ipset=/.www.daima123.cc/black_koolproxy
ipset=/.www.i1236.net/black_koolproxy
ipset=/.www.keydot.net/black_koolproxy
ipset=/.www.laomaotao.net/black_koolproxy
ipset=/.www.umeng.co/black_koolproxy
ipset=/.www.yanjiele8.club/black_koolproxy
ipset=/.www.yoyozz.net/black_koolproxy
ipset=/.xs.houyi.baofeng.net/black_koolproxy
ipset=/.y.one.impact-ad.jp/black_koolproxy
ipset=/.yads.c.yimg.jp/black_koolproxy
ipset=/.yads.yahoo.co.jp/black_koolproxy
ipset=/.yiyuan.nagezan.net/black_koolproxy
ipset=/.yoo.yiiyoo.net/black_koolproxy
ipset=/1000fr.net/black_koolproxy
ipset=/acfun.tv/black_koolproxy
ipset=/baofeng.net/black_koolproxy
ipset=/fun.tv/black_koolproxy
ipset=/pps.tv/black_koolproxy

View File

@ -0,0 +1,133 @@
# OpenSSL root CA configuration file.
# Copy to `/root/ca/openssl.cnf`.
[ ca ]
# `man ca`
default_ca = CA_default
[ CA_default ]
# Directory and file locations.
dir = ./ca
certs = $dir/certs
crl_dir = $dir/crl
new_certs_dir = $dir/newcerts
database = $dir/index.txt
serial = $dir/serial
RANDFILE = $dir/private/.rand
# The root key and root certificate.
private_key = $dir/private/ca.key.pem
certificate = $dir/certs/ca.cert.pem
# For certificate revocation lists.
crlnumber = $dir/crlnumber
crl = $dir/crl/ca.crl.pem
crl_extensions = crl_ext
default_crl_days = 30
# SHA-1 is deprecated, so use SHA-2 instead.
default_md = sha256
name_opt = ca_default
cert_opt = ca_default
default_days = 375
preserve = no
policy = policy_strict
[ policy_strict ]
# The root CA should only sign intermediate certificates that match.
# See the POLICY FORMAT section of `man ca`.
countryName = match
stateOrProvinceName = match
organizationName = match
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
[ policy_loose ]
# Allow the intermediate CA to sign a more diverse range of certificates.
# See the POLICY FORMAT section of the `ca` man page.
countryName = optional
stateOrProvinceName = optional
localityName = optional
organizationName = optional
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
[ req ]
# Options for the `req` tool (`man req`).
default_bits = 2048
distinguished_name = req_distinguished_name
string_mask = utf8only
# SHA-1 is deprecated, so use SHA-2 instead.
default_md = sha256
# Extension to add when the -x509 option is used.
x509_extensions = v3_ca
[ req_distinguished_name ]
# See <https://en.wikipedia.org/wiki/Certificate_signing_request>.
countryName = Country Name (2 letter code)
stateOrProvinceName = State or Province Name
localityName = Locality Name
0.organizationName = Organization Name
organizationalUnitName = Organizational Unit Name
commonName = Common Name
emailAddress = Email Address
# Optionally, specify some defaults.
countryName_default = GB
stateOrProvinceName_default = England
localityName_default =
0.organizationName_default = Alice Ltd
organizationalUnitName_default =
emailAddress_default =
[ v3_ca ]
# Extensions for a typical CA (`man x509v3_config`).
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer
basicConstraints = critical, CA:true
keyUsage = critical, digitalSignature, cRLSign, keyCertSign
[ v3_intermediate_ca ]
# Extensions for a typical intermediate CA (`man x509v3_config`).
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer
basicConstraints = critical, CA:true, pathlen:0
keyUsage = critical, digitalSignature, cRLSign, keyCertSign
[ usr_cert ]
# Extensions for client certificates (`man x509v3_config`).
basicConstraints = CA:FALSE
nsCertType = client, email
nsComment = "OpenSSL Generated Client Certificate"
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid,issuer
keyUsage = critical, nonRepudiation, digitalSignature, keyEncipherment
extendedKeyUsage = clientAuth, emailProtection
[ server_cert ]
# Extensions for server certificates (`man x509v3_config`).
basicConstraints = CA:FALSE
nsCertType = server
nsComment = "OpenSSL Generated Server Certificate"
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid,issuer:always
keyUsage = critical, digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth
[ crl_ext ]
# Extension for CRLs (`man x509v3_config`).
authorityKeyIdentifier=keyid:always
[ ocsp ]
# Extension for OCSP signing certificates (`man ocsp`).
basicConstraints = CA:FALSE
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid,issuer
keyUsage = critical, digitalSignature
extendedKeyUsage = critical, OCSPSigning

View File

@ -0,0 +1,61 @@
!x -----------------------------------------------------------------------------------------------------------------
!x -----[KoolProxy 3.8.4]
!x -----Thanks: From lvba Group
!x -----Thanks for help: <yiclear> <adbyby> <adm>
!x -----------------------------------------------------------------------------------------------------------------
!|https://m.biquke.com/$s@</head>@<script src="https://kprules.b0.upaiyun.com/js/hide.js"></script></head>@
!|https://pan.baidu.com/feproxy/ad/list?
|https://bonuscloud.io/$r@https://bonuscloud.io/@https://kprules.b0.upaiyun.com/null/404.html@
|https://console.bonuscloud.io/$r@/https:\/\/.*\.bonuscloud\.io\/.*/@https://kprules.b0.upaiyun.com/null/404.html@
||tieba.com/p/$s@<div class="l_post l_post_bright j_l_post clearfix ?????????? "@<div style="display:none"@
|https://www.ppx26.com/$s@</head>@<script src="https://kprules.b0.upaiyun.com/js/hide.js"></script></head>@
|http://www.discuz.net/$s@</head>@<script src="http://kprules.b0.upaiyun.com/js/hide.js"></script></head>@
|http://www.avtbk.com/$s@</head>@<script src="https://kprules.b0.upaiyun.com/js/AR.js"></script></head>@
|https://www.dyfc.net/$s@</head>@<script src="https://kprules.b0.upaiyun.com/js/AR.js"></script></head>@
||wmxa.cn/$s@</head>@<script src="http://kprules.b0.upaiyun.com/js/hide.js"></script></head>@
|http://www.tiexue.net/$s@</head>@<script src="http://kprules.b0.upaiyun.com/js/AR.js"></script></head>@
|https://www.baidu.com/$s@</head>@<script src="https://kprules.b0.upaiyun.com/js/baidu_ad.js"></script></head>@
|https://m.baidu.com/$s@</head>@<script src="https://kprules.b0.upaiyun.com/js/baidu_ad.js"></script></head>@
|https://yaoshe28.com/$s@</head>@<script src="https://kprules.b0.upaiyun.com/js/AR.js"></script></head>@
|https://www.kafan.cn/$s@</head>@<script src="https://kprules.b0.upaiyun.com/js/AR.js"></script></head>@
|https://www.kafan.cn/$s@</body>@<script>fuckcss('p:contains(腾讯视频),p:contains(理论永久)');</script></body>@
||https://halihali.tv/$s@</head>@<script src="https://kprules.b0.upaiyun.com/js/AR.js"></script></head>@
|http://sports.eastday.com$s@</body>@<script>fuckcss('a.dalink')</script></body>@
!x -----------------------------------------------------------------------------------------------------------------
|https://user.qzone.qq.com##div#QM_Container_100005,DIV#idQbossHotbar,DIV#div_corner_ad_container.gb_ad_tearing_angle,DIV#qbs_tips_div,div.gdtads_box,li[class="f-single f-s-s f-single-biz"],div.icenter-right-mod.icenter-right-ad,div#QM_100005_Body.bd,DIV.fn-feed-mod-bd,DIV.ck-act,.sogo-ad,#top-banner,.f-vqz-ad,.collet_box.fn_paipai
ifeng.com##[id^="optimusPrimeContentId_"],#optimusPrimeContentId
||https://youth.cn##div.edu-a_dds,div.hd_banner,div.r_huandeng,div.article_d,div[class^="ad00"],iframe[width="200px"][height="200px"],div[id^="myads"][class^="ad0"],div.ad,div[class^="banner"],DIV#sky.fdiv,DIV#identifier-pannel,DIV#sky.div,DIV.pic_banner,DIV.hd_pic,DIV.cj-ggw,div.download,.header
||https://youth.cn##.ad_space_left,.ad_space_left_box
!|https://pan.baidu.com,yun.baidu.com##[id^="share-ad-"],A#share_ad_info_panl,div[id^="cpro_"],img.share-center,.ad-platform-tips,.banner-active
|https://toutiao.jxnews.com.cn##.adclass,.mediav-newsfeed-listitem-type-1,.mediavfeed-newsitem,#corner-flash,.ads-lbotton
gocloud.cn##.a_pt,.a_mu
www.96fei.com##.content-wrapper
javccup.net##.img-responsive,[id^="divShow"]
|https://sports.eastday.com##a[class="dalink"]
|https://www.bnext.com.tw##.col.view_sidebar.d-none.d-lg-block,.ad_box,.ad_space,div[id^="div-gpt-ad"],.ytp-ad-progress-list
!x -----------------------------------------------------------------------------------------------------------------
|https://common.jxnews.com.cn/20
|https://imgcdn.toutiaoyule.com/*/adimg/*
|http://www.gocloud.cn/bbs/static/image/common/ad.gif
||https://youth.cn/images/adyun.js
|https://news.youth.cn/images/youth_sjy_$script
||https://ifengimg.com/iis/iis_
||https://ifengimg.com/ifeng/sources/
||cr-nielsen.com^
|https://ivy.pconline.com.cn^
|https://jwz.3conline.com/adpuba/
|https://m.pconline.com.cn/*_ad.jsp?
||https://dytt8.net/js$script
||https://dytt8.net/js1/
|https://photo.0234408.cn/
||https://pxyvb.cn^
|https://m.yoxus.cn
|http://*/*_*@*.exe
|http://*/*@*_*.exe
||https://popin.cc^
||https://innity.net^
||https://pixfs.net/js/adsbyfalcon.
|https://ad-specs.guoshipartners.com/
!x -----------------------------------------------------------------------------------------------------------------
|https://hao.360.cn###header-patch,#daily-hotwords,#top_activity,#top_hotsite,#activity,#iguess,.mbar-bd,#festival-logoskin,#plane > .plane-hd,.cangbao_redbags,#top-full-column-tips,#plane-ria,.ad-top
!x -----------------------------------------------------------------------------------------------------------------

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -0,0 +1,49 @@
! ******************************* koolproxy 自定义过滤语法简表 *******************************
! ------------------------ 规则基于adblock规则并进行了语法部分的扩展 ------------------------
! ABP规则请参考https://adblockplus.org/zh_CN/filters下面为大致摘要
! "!" 为行注释符,注释行以该符号起始作为一行注释语义,用于规则描述
! "@@" 为白名单符,白名单具有最高优先级,放行过滤的网站,例如:@@||taobao.com
! "@@@@" 超级白名单比白名单符拥有更高的优先级主要用于放行https网站例如:@@@@||https://taobao.com
! ------------------------------------------------------------------------------------------
! "*" 为字符通配符能够匹配0长度或任意长度的字符串该通配符不能与正则语法混用。
! "^" 为分隔符,可以是除了字母、数字或者 _ - . % 之外的任何字符。
! "~" 为排除标识符,通配符能过滤大多数广告,但同时存在误杀, 可以通过排除标识符修正误杀链接。
! 注:通配符仅在 url 规则中支持html 规则中不支持
! ------------------------------------------------------------------------------------------
! "|" 为管线符号,来表示地址的最前端或最末端
! "||" 为子域通配符,方便匹配主域名下的所有子域
! 用法及例子如下:(以下等号表示等价于)
! ||xx.com/ad = http://xx.com/ad* || http://*.xx.com/ad*
! ||http://xx.com/ad = http://xx.com/ad* || http://*.xx.com/ad*
! ||https://xx.com/ad = https://xx.com/ad* || https://*.xx.com/ad*
! |xx.com/ad = http://xx.com/ad*
! |http://xx.com/ad = http://xx.com/ad*
! |https://xx.com/ad = https://xx.com/ad*
! ad = http://*ad*
! http://ad = http://*ad*
! https://ad = 不支持,需要指定域名,如下例
! https://xx.com/ad = |https://xx.com/ad = https://xx.com/ad*
! [同时可以表示两个以及两个以上的域名]如下例子
! https://xx.ad.com 和 https://xxx.xx.ad.com = ||https://ad.com (注意! 由于https的原因使用要非常谨慎,不可以大范围使用)
! ------------------------------------------------------------------------------------------
! 兼容adblock规则的html规则语法例如
! fulldls.com,torrentzap.com##.tp_reccomend_banner
! 但是推荐写成以下标准写法:
! ||fulldls.com##.tp_reccomend_banner
! ||torrentzap.com##.tp_reccomend_banner
! 如果一个网站html规则有多条可以合并为这样
! ||torrentzap.com##.tp_reccomend_banner,.ad_top,[class="ad_right"]......
! ------------------------------------------------------------------------------------------
! 文本替换语法:$s@匹配内容@替换内容@
! 非标准端口过滤语法:||abc.com:8081/ad.html或者|http://adb.com:8081/
! 文本替换例子:|http://cdn.pcbeta.js.inimc.com/data/cache/common.js?$s@old@new@
! 重定向语法:$r@匹配内容@替换内容@
! 重定向例子:|http://koolshare.cn$r@http://koolshare.cn/*@http://www.qq.com@
! 注:文本替换语法及重定向语法中的匹配内容不仅支持通配符功能,而且额外支持以下功能
! 支持通配符 * 和 ? 表示单个字符
! 支持全正则匹配,/正则内容/ 表示应用正则匹配
! 正则替换:替换内容支持 $1 $2 这样的符号
! 普通替换:替换内容支持 * 这样的符号,表示把命中的内容复制到替换的内容。(类似 $1 $2但是 * 号会自动计算数字)
! ------------------------------------------------------------------------------------------
! 未来将逐步添加相关语法兼容adblock puls的更多语法敬请期待。
! ******************************************************************************************

Binary file not shown.

View File

@ -0,0 +1,387 @@
#! /bin/sh
# shadowsocks script for arm router with kernel 2.6.36.4 merlin firmware
# by sadog (sadoneli@gmail.com) from jffs/softcenter.cn
alias echo_date='echo 【$(TZ=UTC-8 date -R +%Y年%m月%d日\ %X)】:'
export KSROOT=/jffs/softcenter
source $KSROOT/scripts/base.sh
eval `dbus export koolproxy_`
SOFT_DIR=/jffs/softcenter
KP_DIR=$SOFT_DIR/koolproxy
lan_ipaddr=$(nvram get lan_ipaddr)
LOCK_FILE=/var/lock/koolproxy.lock
#=======================================
set_lock(){
exec 1000>"$LOCK_FILE"
flock -x 1000
}
unset_lock(){
flock -u 1000
rm -rf "$LOCK_FILE"
}
get_lan_cidr(){
netmask=`nvram get lan_netmask`
local x=${netmask##*255.}
set -- 0^^^128^192^224^240^248^252^254^ $(( (${#netmask} - ${#x})*2 )) ${x%%.*}
x=${1%%$3*}
suffix=$(( $2 + (${#x}/4) ))
#prefix=`nvram get lan_ipaddr | cut -d "." -f1,2,3`
echo $lan_ipaddr/$suffix
}
write_sourcelist(){
if [ -n "$koolproxy_sourcelist" ];then
echo $koolproxy_sourcelist|sed 's/>/\n/g' > $KP_DIR/data/source.list
else
cat > $KP_DIR/data/source.list <<-EOF
1|koolproxy.txt|https://kprule.com/koolproxy.txt|
1|daily.txt|https://kprule.com/daily.txt|
1|kp.dat|https://kprule.com/kp.dat|
1|user.txt||
EOF
fi
if [ -n "$koolproxy_custom_rule" ];then
echo $koolproxy_custom_rule| base64_decode |sed 's/\\n/\n/g' > $KP_DIR/data/rules/user.txt
dbus remove koolproxy_custom_rule
fi
}
start_koolproxy(){
write_sourcelist
echo_date 开启koolproxy主进程
[ ! -e "$KSROOT/bin/koolproxy" ] && cp -f $KSROOT/koolproxy/koolproxy $KSROOT/bin/koolproxy
cd $KP_DIR && koolproxy --mark -d
[ "$?" != "0" ] && dbus set koolproxy_enable=0 && exit 1
}
stop_koolproxy(){
if [ -n "`pidof koolproxy`" ];then
echo_date 关闭koolproxy主进程...
kill -9 `pidof koolproxy` >/dev/null 2>&1
killall koolproxy >/dev/null 2>&1
fi
}
creat_start_up(){
[ ! -L "/jffs/softcenter/init.d/S98koolproxy.sh" ] && {
echo_date 加入开机自动启动...
ln -sf /jffs/softcenter/koolproxy/kp_config.sh /jffs/softcenter/init.d/S98koolproxy.sh
}
}
write_nat_start(){
echo_date 添加nat-start触发事件...
dbus set __event__onnatstart_koolproxy="/jffs/softcenter/koolproxy/kp_config.sh"
}
remove_nat_start(){
[ -n "`dbus get __event__onnatstart_koolproxy`" ] && {
echo_date 删除nat-start触发...
dbus remove __event__onnatstart_koolproxy
}
}
add_ipset_conf(){
if [ "$koolproxy_mode" == "2" ];then
echo_date 添加黑名单软连接...
rm -rf /jffs/configs/dnsmasq.d/koolproxy_ipset.conf
ln -sf /jffs/softcenter/koolproxy/data/koolproxy_ipset.conf /jffs/configs/dnsmasq.d/koolproxy_ipset.conf
dnsmasq_restart=1
fi
}
remove_ipset_conf(){
if [ -L "/jffs/configs/dnsmasq.d/koolproxy_ipset.conf" ];then
echo_date 移除黑名单软连接...
rm -rf /jffs/configs/dnsmasq.d/koolproxy_ipset.conf
dnsmasq_restart=1
fi
}
restart_dnsmasq(){
if [ "$dnsmasq_restart" == "1" ];then
echo_date 重启dnsmasq进程...
service restart_dnsmasq > /dev/null 2>&1
fi
}
write_reboot_job(){
# start setvice
if [ "1" == "$koolproxy_reboot" ]; then
echo_date 开启插件定时重启,每天"$koolproxy_reboot_hour""$koolproxy_reboot_min"分,自动重启插件...
cru a koolproxy_reboot "$koolproxy_reboot_min $koolproxy_reboot_hour * * * /bin/sh $KP_DIR/kp_config.sh restart"
elif [ "2" == "$koolproxy_reboot" ]; then
echo_date 开启插件间隔重启,每隔"$koolproxy_reboot_inter_hour""$koolproxy_reboot_inter_min"分,自动重启插件...
cru a koolproxy_reboot "*/$koolproxy_reboot_inter_min */$koolproxy_reboot_inter_hour * * * /bin/sh $KP_DIR/kp_config.sh restart"
fi
}
remove_reboot_job(){
jobexist=`cru l|grep koolproxy_reboot`
# kill crontab job
if [ -n "$jobexist" ];then
echo_date 关闭插件定时重启...
sed -i '/koolproxy_reboot/d' /var/spool/cron/crontabs/* >/dev/null 2>&1
fi
}
creat_ipset(){
xt=`lsmod | grep xt_set`
OS=$(uname -r)
if [ -z "$xt" ] && [ -f "/lib/modules/${OS}/kernel/net/netfilter/xt_set.ko" ];then
echo_date "加载xt_set.ko内核模块"
insmod /lib/modules/${OS}/kernel/net/netfilter/xt_set.ko
fi
echo_date 创建ipset名单
ipset -N white_kp_list nethash
ipset -N black_koolproxy iphash
ip_lan="0.0.0.0/8 10.0.0.0/8 100.64.0.0/10 127.0.0.0/8 169.254.0.0/16 172.16.0.0/12 192.168.0.0/16 224.0.0.0/4 240.0.0.0/4"
for ip in $ip_lan
do
ipset -A white_kp_list $ip >/dev/null 2>&1
done
ipset -A black_koolproxy 110.110.110.110 >/dev/null 2>&1
}
get_mode_name() {
case "$1" in
0)
echo "不过滤"
;;
1)
echo "http模式"
;;
2)
echo "http + https"
;;
esac
}
get_jump_mode(){
case "$1" in
0)
echo "-j"
;;
*)
echo "-g"
;;
esac
}
get_action_chain() {
case "$1" in
0)
echo "RETURN"
;;
1)
echo "KOOLPROXY_HTTP"
;;
2)
echo "KOOLPROXY_HTTPS"
;;
esac
}
factor(){
if [ -z "$1" ] || [ -z "$2" ]; then
echo ""
else
echo "$2 $1"
fi
}
flush_nat(){
if [ -n "`iptables -t nat -S|grep KOOLPROXY`" ];then
echo_date 移除nat规则...
cd /tmp
iptables -t nat -S | grep -E "KOOLPROXY|KOOLPROXY_HTTP|KOOLPROXY_HTTPS" | sed 's/-A/iptables -t nat -D/g'|sed 1,3d > clean.sh && chmod 777 clean.sh && ./clean.sh > /dev/null 2>&1 && rm clean.sh
iptables -t nat -X KOOLPROXY > /dev/null 2>&1
iptables -t nat -X KOOLPROXY_HTTP > /dev/null 2>&1
iptables -t nat -X KOOLPROXY_HTTPS > /dev/null 2>&1
fi
[ -n "`ipset -L -n|grep black_koolproxy`" ] && ipset -F black_koolproxy > /dev/null 2>&1 && ipset -X black_koolproxy > /dev/null 2>&1
[ -n "`ipset -L -n|grep white_kp_list`" ] && ipset -F white_kp_list > /dev/null 2>&1 && ipset -X white_kp_list > /dev/null 2>&1
}
lan_acess_control(){
# lan access control
[ -z "$koolproxy_acl_default_mode" ] && koolproxy_acl_default_mode=1
acl_nu=`dbus list koolproxy_acl_mode_|sort -n -t "_" -k 4|cut -d "=" -f 1 | cut -d "_" -f 4`
if [ -n "$acl_nu" ]; then
for acl in $acl_nu
do
ipaddr=`dbus get koolproxy_acl_ip_$acl`
mac=`dbus get koolproxy_acl_mac_$acl`
proxy_name=`dbus get koolproxy_acl_name_$acl`
proxy_mode=`dbus get koolproxy_acl_mode_$acl`
[ "$koolproxy_acl_method" == "1" ] && echo_date 加载ACL规则$ipaddr】【$mac】模式为:$(get_mode_name $proxy_mode)
[ "$koolproxy_acl_method" == "2" ] && mac="" && echo_date 加载ACL规则$ipaddr】模式为:$(get_mode_name $proxy_mode)
[ "$koolproxy_acl_method" == "3" ] && ipaddr="" && echo_date 加载ACL规则$mac】模式为:$(get_mode_name $proxy_mode)
iptables -t nat -A KOOLPROXY $(factor $ipaddr "-s") $(factor $mac "-m mac --mac-source") -p tcp $(get_jump_mode $proxy_mode) $(get_action_chain $proxy_mode)
done
echo_date 加载ACL规则其余主机模式为$(get_mode_name $koolproxy_acl_default_mode)
else
echo_date 加载ACL规则所有模式为$(get_mode_name $koolproxy_acl_default_mode)
fi
}
load_nat(){
nat_ready=$(iptables -t nat -L PREROUTING -v -n --line-numbers|grep -v PREROUTING|grep -v destination)
i=120
# laod nat rules
until [ -n "$nat_ready" ]
do
i=$(($i-1))
if [ "$i" -lt 1 ];then
echo_date "Could not load nat rules!"
sh /jffs/softcenter/koolproxy/kp_config.sh stop
exit
fi
sleep 1
nat_ready=$(iptables -t nat -L PREROUTING -v -n --line-numbers|grep -v PREROUTING|grep -v destination)
done
echo_date 加载nat规则
#----------------------BASIC RULES---------------------
echo_date 写入iptables规则到nat表中...
# 创建KOOLPROXY nat rule
iptables -t nat -N KOOLPROXY
# 局域网地址不走KP
iptables -t nat -A KOOLPROXY -m set --match-set white_kp_list dst -j RETURN
# 生成对应CHAIN
iptables -t nat -N KOOLPROXY_HTTP
iptables -t nat -A KOOLPROXY_HTTP -p tcp -m multiport --dport 80 -j REDIRECT --to-ports 3000
iptables -t nat -N KOOLPROXY_HTTPS
iptables -t nat -A KOOLPROXY_HTTPS -p tcp -m multiport --dport 80,443 -j REDIRECT --to-ports 3000
# 局域网控制
lan_acess_control
# 剩余流量转发到缺省规则定义的链中
iptables -t nat -A KOOLPROXY -p tcp -j $(get_action_chain $koolproxy_acl_default_mode)
# 重定所有流量到 KOOLPROXY
# 全局模式和视频模式
[ "$koolproxy_mode" == "1" ] || [ "$koolproxy_mode" == "3" ] && iptables -t nat -I PREROUTING 1 -p tcp -j KOOLPROXY
# ipset 黑名单模式
[ "$koolproxy_mode" == "2" ] && iptables -t nat -I PREROUTING 1 -p tcp -m set --match-set black_koolproxy dst -j KOOLPROXY
}
dns_takeover(){
lan_ipaddr=`nvram get lan_ipaddr`
#chromecast=`iptables -t nat -L PREROUTING -v -n|grep "dpt:53"`
chromecast_nu=`iptables -t nat -L PREROUTING -v -n --line-numbers|grep "dpt:53"|awk '{print $1}'`
if [ "$koolproxy_mode" == "2" ]; then
if [ -z "$chromecast_nu" ]; then
echo_date 黑名单模式开启DNS劫持
iptables -t nat -A PREROUTING -p udp -s $(get_lan_cidr) --dport 53 -j DNAT --to $lan_ipaddr >/dev/null 2>&1
fi
fi
}
detect_cert(){
if [ ! -f $KP_DIR/data/private/ca.key.pem ]; then
echo_date 检测到首次运行开始生成koolproxy证书用于https过滤
echo_date 生成证书需要较长时间,请一定耐心等待!!!
cd $KP_DIR/data && sh gen_ca.sh
echo_date 证书生成完毕!!!
fi
}
case $ACTION in
start)
#开机触发wan重启触发所以需要先关后开
set_lock
if [ "$koolproxy_enable" == "1" ];then
logger "[软件中心]: 启动koolproxy插件"
rm -rf /tmp/user.txt && ln -sf /jffs/softcenter/koolproxy/data/rules/user.txt /tmp/user.txt
remove_reboot_job
flush_nat
stop_koolproxy
remove_ipset_conf && restart_dnsmasq
detect_cert
start_koolproxy
add_ipset_conf && restart_dnsmasq
creat_ipset
load_nat
dns_takeover
write_nat_start
write_reboot_job
creat_start_up
else
logger "[软件中心]: koolproxy插件未开启不启动"
fi
unset_lock
;;
restart)
#web提交触发需要先关后开
# now stop
set_lock
echo_date ================================ 关闭 ===============================
rm -rf /tmp/user.txt && ln -sf /jffs/softcenter/koolproxy/data/rules/user.txt /tmp/user.txt
remove_reboot_job
remove_ipset_conf && restart_dnsmasq
remove_nat_start
flush_nat
stop_koolproxy
# now start
echo_date ============================ koolproxy启用 ===========================
detect_cert
start_koolproxy
add_ipset_conf && restart_dnsmasq
creat_ipset
load_nat
dns_takeover
write_nat_start
write_reboot_job
creat_start_up
echo_date koolproxy启用成功请等待日志窗口自动关闭页面会自动刷新...
echo_date =====================================================================
unset_lock
;;
stop)
#web提交触发需要先关后开
set_lock
echo_date ================================ 关闭 ===============================
rm -rf /tmp/user.txt
remove_reboot_job
remove_ipset_conf && restart_dnsmasq
remove_nat_start
flush_nat
stop_koolproxy
echo_date koolproxy插件已关闭
echo_date =====================================================================
unset_lock
;;
stop_nat)
set_lock
flush_nat
unset_lock
;;
*)
set_lock
#WAN_ACTION=`ps|grep /jffs/scripts/wan-start|grep -v grep`
if [ "$koolproxy_enable" == "1" ] ;then
remove_reboot_job
remove_ipset_conf && restart_dnsmasq
remove_nat_start
flush_nat
stop_koolproxy
detect_cert
start_koolproxy
add_ipset_conf && restart_dnsmasq
creat_ipset
load_nat
dns_takeover
write_nat_start
write_reboot_job
creat_start_up
fi
unset_lock
;;
esac

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@ -0,0 +1,2 @@
<% nvram_dump("koolproxy.log",""); %>

View File

@ -0,0 +1,2 @@
<% nvram_dump("koolproxy_run.log",""); %>

View File

@ -0,0 +1 @@
<% nvram_dump("user.txt",""); %>

View File

@ -0,0 +1,19 @@
#! /bin/sh
eval `dbus export koolproxy`
source /jffs/softcenter/scripts/base.sh
case $ACTION in
start)
sh /jffs/softcenter/koolproxy/kp_config.sh start
;;
*)
if [ "$koolproxy_enable" == "1" ];then
sh /jffs/softcenter/koolproxy/kp_config.sh restart > /tmp/koolproxy_run.log
else
sh /jffs/softcenter/koolproxy/kp_config.sh stop > /tmp/koolproxy_run.log
fi
echo XU6J03M6 >> /tmp/koolproxy_run.log
sleep 1
rm -rf /tmp/koolproxy_run.log
;;
esac

View File

@ -0,0 +1,48 @@
#!/bin/sh
alias echo_date1='echo $(date +%Y年%m月%d日\ %X)'
export KSROOT=/jffs/softcenter
source $KSROOT/scripts/base.sh
eval `dbus export koolproxy_`
version="koolproxy `koolproxy -v`"
status=`ps|grep -w koolproxy | grep -cv grep`
pid=`pidof koolproxy`
date=`echo_date1`
rules_date_local=`cat $KSROOT/koolproxy/data/rules/koolproxy.txt | sed -n '3p'|awk '{print $3,$4}'`
rules_nu_local=`grep -E -v "^!" $KSROOT/koolproxy/data/rules/koolproxy.txt | wc -l`
video_date_local=`cat $KSROOT/koolproxy/data/rules/koolproxy.txt | sed -n '4p'|awk '{print $3,$4}'`
daily_nu_local=`grep -E -v "^!" $KSROOT/koolproxy/data/rules/daily.txt | wc -l`
custom_nu_local=`grep -E -v "^!" $KSROOT/koolproxy/data/rules/user.txt | wc -l`
rm -rf /tmp/kp_tp.txt
tp_rules=`dbus list koolproxy_rule_file_|cut -d "=" -f1|cut -d "_" -f4|sort -n`
i=1
for tp_rule in $tp_rules
do
tprule_name=`dbus get koolproxy_rule_file_$tp_rule`
if [ -f "$KSROOT/koolproxy/data/rules/$tprule_name" ]; then
eval tprule_nu_$i=`grep -E -v "^!" $KSROOT/koolproxy/data/rules/$tprule_name | wc -l`
eval temp=$(echo \$tprule_nu_$i)
#echo $tp_rule $tprule_name $temp条
echo -n "@@<span>$temp条</span>&&$tp_rule" >>/tmp/kp_tp.txt
let i++
else
echo -n "@@<span>null</span>&&$tp_rule" >>/tmp/kp_tp.txt
fi
done
if [ -f "/tmp/kp_tp.txt" ];then
TP=`cat /tmp/kp_tp.txt`
else
TP=""
fi
rm -rf /tmp/koolproxy.log
if [ "$status" == "2" ];then
echo "$date$version 运行正常!(PID: $pid)@@<span>$rules_date_local / $rules_nu_local条</span>@@<span>$daily_nu_local条</span>@@<span>$video_date_local<span>@@<span>$custom_nu_local条</span>$TP" > /tmp/koolproxy.log
else
echo "<font color='#FF0000'>【警告】:进程未运行!请点击提交按钮!</font>@@<span>$rules_date_local / $rules_nu_local条</span>@@<span>$daily_nu_local条</span>@@<span>$video_date_local<span>@@<span>$custom_nu_local条</span>$TP" > /tmp/koolproxy.log
fi
echo XU6J03M6 >> /tmp/koolproxy.log

View File

@ -0,0 +1,22 @@
#! /bin/sh
sh /jffs/softcenter/koolproxy/koolproxy.sh stop
rm -rf /jffs/softcenter/bin/koolproxy >/dev/null 2>&1
rm -rf /jffs/softcenter/koolproxy/koolproxy >/dev/null 2>&1
rm -rf /jffs/softcenter/koolproxy/kp_config.sh >/dev/null 2>&1
rm -rf /jffs/softcenter/koolproxy/koolproxy.sh >/dev/null 2>&1
rm -rf /jffs/softcenter/koolproxy/nat_load.sh >/dev/null 2>&1
rm -rf /jffs/softcenter/koolproxy/rule_store >/dev/null 2>&1
rm -rf /jffs/softcenter/koolproxy/data/1.dat >/dev/null 2>&1
rm -rf /jffs/softcenter/koolproxy/data/koolproxy.txt >/dev/null 2>&1
rm -rf /jffs/softcenter/koolproxy/data/user.txt >/dev/null 2>&1
rm -rf /jffs/softcenter/koolproxy/data/rules >/dev/null 2>&1
rm -rf /jffs/softcenter/koolproxy/data/koolproxy_ipset.conf >/dev/null 2>&1
rm -rf /jffs/softcenter/koolproxy/data/gen_ca.sh >/dev/null 2>&1
rm -rf /jffs/softcenter/koolproxy/data/openssl.cnf >/dev/null 2>&1
rm -rf /jffs/softcenter/koolproxy/data/serial >/dev/null 2>&1
rm -rf /jffs/softcenter/koolproxy/data/version >/dev/null 2>&1
rm -rf /jffs/softcenter/res/koolproxy_check.htm
rm -rf /jffs/softcenter/res/koolproxy_run.htm
rm -rf /jffs/softcenter/res/koolproxy_user.htm

File diff suppressed because it is too large Load Diff

22
koolproxy/update.sh Normal file
View File

@ -0,0 +1,22 @@
#!/bin/sh
# get latest binary
cd koolproxy/koolproxy/
mkdir -p data
mkdir -p data/rules
wget https://koolproxy.com/downloads/mips
if [ "$?" == "0" ];then
mv mips koolproxy && chmod +x koolproxy
else
rm mips
fi
#get latest rules
cd data/rules
rm -rf *
wget --no-check-certificate https://kprule.com/koolproxy.txt
wget --no-check-certificate https://kprule.com/daily.txt
wget --no-check-certificate https://kprule.com/kp.dat
wget --no-check-certificate https://kprule.com/user.txt

2
koolproxy/version Normal file
View File

@ -0,0 +1,2 @@
3.8.4
7afb9a5a4fac29bef9b5d21ad7a6aab8

View File

@ -20,6 +20,16 @@
"title": "虚拟内存",
"version": "2.2"
},
{
"build_date": "2019-01-13_00:00:08",
"description": "去广告,没烦恼",
"home_url": "Module_koolproxy.asp",
"md5": "7afb9a5a4fac29bef9b5d21ad7a6aab8",
"name": "koolproxy",
"tar_url": "koolproxy/koolproxy.tar.gz",
"title": "koolproxy",
"version": "3.8.4"
},
{
"build_date": "2018-12-06_13:29:29",
"description": "kms",
@ -42,7 +52,7 @@
}
],
"home_url": "https://raw.githubusercontent.com/paldier/softcenter/master",
"md5": "dd5b07bef8289c2a0715695591faf2b7",
"md5": "df146dd013b253de4d6e250562ce9022",
"tar_url": "softcenter/softcenter.tar.gz",
"version": "1.1.6"
}

View File

@ -1,4 +1,4 @@
{
"version":"1.1.6",
"md5":"dd5b07bef8289c2a0715695591faf2b7"
"md5":"df146dd013b253de4d6e250562ce9022"
}

View File

@ -31,7 +31,7 @@ def work_paths_by_walk():
print os.path.join(root,sub)
def work_parent():
ignore_paths = frozenset(["maintain_files", "softcenter", "v2ray", "adbyby", "ddnspod", "gdddns", "koolproxy", "kuainiao", "shadowsocks"])
ignore_paths = frozenset(["maintain_files", "softcenter", "v2ray", "adbyby", "ddnspod", "gdddns", "kuainiao", "shadowsocks"])
for fname in os.listdir(parent_path):
if fname[0] == "." or fname in ignore_paths:

Binary file not shown.

View File

@ -1,2 +1,2 @@
1.1.6
dd5b07bef8289c2a0715695591faf2b7
df146dd013b253de4d6e250562ce9022