Dawnnnnnn / bilibili-live-tools

python实现的bilibili直播助手
MIT License
796 stars 173 forks source link

猜测b站检测脚本挂机方式以及进行规避 #22

Open yjqiang opened 6 years ago

yjqiang commented 6 years ago

请勿在不相干话题下面任意讨论,会对后续bug跟踪以及其他用户的查询造成严重影响!!!

猜测:如果抽奖次数参与过多、过于频繁,可能导致被检测。

猜测:不必要的检测是否中奖结果

模拟进入房间操作

猜测:过快的参与活动,没有什么延迟

猜测:夜晚凌晨时抽奖,高度类似机器人

Dawnnnnnn commented 6 years ago

还有一种可能是某些抽奖消息不会被放到公告栏里,b站从而实现一波钓鱼操作....

yjqiang commented 6 years ago

猜测:不必要的检测是否中奖结果

应对措施:不执行或者以p概率执行lotteryresult对应函数

Dawnnnnnn commented 6 years ago

emmmmm,再观察两天吧,毕竟这也是b站的新操作,可能还不成熟,过几天再猜测一下

yjqiang commented 6 years ago

那就先开着issue这个好了

Dawnnnnnn commented 6 years ago

suggestion: 在进行抽奖时先访问一下直播间,使其能在历史观看中显示出来

lovelyyoshino commented 6 years ago

感觉b站不会一直使用资源统计你的次数吧,如果设置概率这样会导致抢的次数大大减少,现在b站仅仅是ban几个小时,还是可以接受

yjqiang commented 6 years ago

@lovelyyoshino 说不定他统计你的抽奖次数?频率等?设置阈值

yjqiang commented 6 years ago

猜测:过快的参与活动,没有什么延迟

措施:设置随机延迟时间

Dawnnnnnn commented 6 years ago

听说3.26开始就没有用户被封了

yjqiang commented 6 years ago

等待确认。。。哪里的小道消息

Dawnnnnnn commented 6 years ago

23333我和其他大佬交流的时候听说的

lovelyyoshino commented 6 years ago

今天又开始了

2018-03-27 11:13 GMT+08:00 Dawnspace notifications@github.com:

23333我和其他大佬交流的时候听说的

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Dawnnnnnn/bilibili-live-tools/issues/22#issuecomment-376382903, or mute the thread https://github.com/notifications/unsubscribe-auth/AU91EieUNPh1Xtcoh6zZuOujGwQa4rLnks5tia5lgaJpZM4S5y3J .

Dawnnnnnn commented 6 years ago

新版本暂时没有出现被封的账号

xuetaolu commented 6 years ago

或许是使用钓鱼房间 https://api.live.bilibili.com/room/v1/Room/room_init?id=13258

ua4uea_ih0c uv3 _65qd u

--调试信息-- cch4 je 4ox w ow l g b

--网页显示-- qq 20180330164719

Dawnnnnnn commented 6 years ago

已知晓,正在改代码

xuetaolu commented 6 years ago

感觉还是观看历史检测稳

yjqiang commented 6 years ago

观看历史已经做了

yjqiang commented 6 years ago

出现新的封锁

yjqiang commented 6 years ago

请描述封锁情况时,配图,描述时间点,描述有没有用其他软件,描述是否使用节奏风暴,以及其他必要的内容。

lc4t commented 6 years ago

在出现访问被拒绝的时候,脚本应主动停止..不要一直尝试抽奖了

lc4t commented 6 years ago

两个账户同时挂机,一个被检测一个没有.. (被小黑屋的氪金比较少..

所以防小黑屋的话,氪金?

Dawnnnnnn commented 6 years ago

@lc4t 进小黑屋了并不影响继续尝试抽奖,我小号一直挂着也能出来,所以不加停止了(其实还是懒)

目前防小黑屋的方法有几个

不用阿里云 抽奖加延迟 模拟房间进入 氪金

其实还是氪金管用,流传的两种说法是,氪年费姥爷和氪舰长,会降低进去的概率

lc4t commented 6 years ago

@Dawnnnnnn 好的..既然小黑屋了不会因为被拒绝而重置时间..那就一直挂着好了

fkunde commented 6 years ago

如果只在设定的一段时间抽奖是否能减小被封锁的概率(模拟作息)反正在凌晨之类的时段也就几十辣条~

xuetaolu commented 6 years ago

@fkunde 最近两次封锁都是在下午封的,第一次封了7个,3个没封,这3个号有大号有小号。第二次全部都封禁。感觉是新的检测机制。至于为什么第一次有3个幸免具体不清楚。

2314933036 commented 6 years ago

小黑屋刚刚出来了

fkunde commented 6 years ago

@xuetaolu 对的,我这里也可以证实是分批操作,但不全是下午。是否可以排除ip的原因。在小黑屋期间,看到相关评论表示B站会记录用户鼠标点击数据,并有用户表示在操作B站的同时不会被关进去。于是尝试在抽奖点击范围内狂点鼠标(看起来很滑稽)竟然被解封了,然而几个小时后又进去了。也许是巧合,不知道侦测机制到底和用户操作数据记录有关。

KokeCacao commented 6 years ago

有沒有記錄鼠標點擊數據看一下javascript就知道了, 我猜不會. 主站投幣的觀看歷史和直播間進入歷史(未公開?)應該是主要原因. 其次, 沒有動態加載視頻這個問題很難解決吧...

Leo12025 commented 6 years ago

目前可信的消息是: 1.判断用户来源是否有效:例如电脑端在进入房间时大多数会携带visit_id参数或者移动端携带访问来源(从直播间、高能公告或者其他地方),此时存在第一轮判定 2.采用线上任意用户赠送的高能礼物生成名单,从名单中筛查是否始终跟随高能抽奖或者根据抽奖房间和历史观看作对比,从而判定挂机程序 3.在部分非活跃时间(用户不可能24小时处于活跃状态)仍然能持续性跟踪新高能抽奖。 4.观看直播会有log报告给服务器,请务必检索此处是否会引起检测。(暂未确认) 5.IDC和部分ISP服务器挂机根据IP检测可得是否服务器操作挂机,请使用b站自带接口ip_addr检测是否为以上两类用户

已确认不可行:氪金 氪金并不会减少或者对你白名单,没有这个说法。

Leo12025 commented 6 years ago

@fkunde 关于你所指出的狂点鼠标可以解除的说法,目前暴力发包(疯狂点击抽奖)是可以强行进行抽奖的,不是解封。

yjqiang commented 6 years ago

@dust0517 @fkunde 狂点鼠标现在似乎不行了 403判定非常严格了

yjqiang commented 6 years ago

@dust0517 1里面在web端点击抽奖按钮,发现这是一个直接的地址,未携带多余信息表明其跳转的原房间 23已经提出 4目前只会提交一个进入房间的信息 5 不太明白想表达的意思

Leo12025 commented 6 years ago

@yjqiang 其实是有log一直在发送这些相关的信息的,可以留意一下,这部分代码可能被adblock拦截 根据cookie可以查很多东西的,前台只是一部分。 第5条,请见 https://api.live.bilibili.com/ip_service/v1/ip_service/get_ip_addr

yjqiang commented 6 years ago

@dust0517 第五条我意思是知道有这个api,但是不觉得有什么作用啊。。。 log那里一堆东西,这个没法破解

Leo12025 commented 6 years ago

@yjqiang 这个是用来看ip地址来源的,部分ip端已经能够显示到阿里云等类似运营商,然后log这边的话提交的信息在后端是用来补充一些东西的,例如说使用的设备等,还有进行过的系列操作也会被记录在内。

yjqiang commented 6 years ago

@dust0517 还是不太清楚 这个api我一直觉得像鸡肋。。。没看出实际用处

Leo12025 commented 6 years ago

{"code":0,"msg":"","message":"","data":{"addr":"/打码/","country":"中国","province":"","city":"","isp":"阿里云","latitude":/打码/,"longitude":/打码/,"zoneId":/打码/}} {"code":0,"msg":"","message":"","data":{"addr":"/打码/","country":"中国","province":"","city":"","isp":"腾讯云","latitude":/打码/,"longitude":/打码/,"zoneId":/打码/}} {"code":0,"msg":"","message":"","data":{"addr":"/打码/","country":"中国","province":"","city":"","isp":"电信","latitude":/打码/,"longitude":/打码/,"zoneId":/打码/}} @yjqiang data.isp 属性内能够轻松判断你的ip是否为idc运营商信息,如果是的话,则使用新的ip判定系统对账号进行处理

moser6 commented 6 years ago

额腾讯云的ip大概是被拉黑名单了。试过两次在云服务器上,只是晚上挂了几小时,第2天直接被封

StarryFK commented 6 years ago

看了一下日志,基本上都是在凌晨3:00到5:00间封的,看看能不能通过避开这段时间领取礼物以达到防封的目的

yjqiang commented 6 years ago

@dust0517 我服了,大哥,你是真的强。。。基本都对了

NPBeta commented 6 years ago

两个账号一起挂了一天,直接被封 同IP多用户应该会被检测

下午更新,B站大面积封了一批脚本,以上问题可能只是凑巧

yjqiang commented 6 years ago

@NPBeta 反馈的确是这样,中午大量反馈的。

NPBeta commented 6 years ago

@yjqiang 氪金可能真的有用,我的一个朋友用年费姥爷的号挂脚本挂了很久,一次都没被封过 我自己有一个猜测,b站可能会判断 web和手机端两次参加抽奖 这个脚本特征 另外提一下我是起床挂脚本,睡前关脚本 而且是在家用宽带挂的

lc4t commented 6 years ago

@NPBeta 我这里只帮同学挂了几个,有个年费+舰长之类的有2k多,也进去过几次...(说明氪金不够

反正我自己从来没进去过..都是小号进去

lc4t commented 6 years ago

@lyf1134 你可以自己把它注释掉啊..

Dawnnnnnn commented 6 years ago

@lyf1134 这种特殊的需求当然是自己改啊,本来就没打算做开关

Dawnnnnnn commented 6 years ago

巧了,我们也是这么想的2333 @yemaobumei

NPBeta commented 6 years ago

@lc4t 同IP多用户好像是必封,这应该是多个检测手段之一 但如果你的号也是跟你同学一起挂脚本的话,那就不好解释咯

lc4t commented 6 years ago

@NPBeta 我是同IP挂了好几个,腾讯云阿里云都有,没有出现一个被封同IP都被封的情况...我觉得IP应该是有黑名单才会一起封吧

NPBeta commented 6 years ago

@lc4t 我拿一台机器同时挂两个号,今天封了一个 被封的号是朋友的,她在国外,我在国内,而且我挂脚本的时候她有登录 所以猜测,不同地点同时登录是封号的规则之一 这样也可以解释你的号没被封,同学的号被封了