作者Nt1 (用功点吧!)
看板ChainChron
标题Re: [闲聊] 关於抽卡技巧
时间Tue May 23 13:10:17 2017
吃饭中没事来回应一下,小弟是软体工程师,对於cc的背後传输有做过一些研究,看到推文(或是巴哈)很多似是而非抽卡理论都并不完全正确。
先说结论:
有没有法老时间? 我相信有,但每个人不一样,甚至每天都有可能不一样。一天内也绝对不只一个时段,每个时段的长短也不一样。短可能短到几十秒内而已。
抽到什麽卡片,和时间有「绝对」的关系,至於这个时间,是你回ap时间,抽到某卡後的时间,或是如何如何的时间,就不得而知了。
反正和时间没关的东西都不会影响你抽卡的结果就是了。(看过有人说很黑的话,把游戏退出再开一次试试看,这就跟拔狮子的毛一样啊…)
再说原理:
当你按下转蛋键,开始转蛋,画面的右上方会出现 connecting 对吧,这时就是你的手机和伺服器沟通的时後了。
那手机会传什麽资讯给伺服器?
会有以下的资讯:
- 你是谁(uuid)
- 哪个酒场
- 用什麽抽卡 (卷/币/石...之类的)
- 现在的时间,以timestamp表示 (timestame就是一串看很大的数字,经过转换後可以表示年月日时分秒)
- 你要转几次 (单抽/9连抽)
对,只有以上资讯而已。
伺服器收到後经过处理,然後跟你说
- 你得到的卡片是谁
- 你得到的卡片idx是什麽
这两点不太一样,举例来说,你抽到两张姐姐,第一点指的就是「姐姐」这张卡片代号,例如75号好了
第二点则是每张都不同,有点像是卡片的身份证字号(唯一识别码)。例如123456,123457这样。
所以你得到两张75号的卡片,卡片号码分别为123456, 123457。
接着,做了一个实验:
我在抽到ssr後,记录下该次发送的所有资讯,再对伺服器发送一次「一模一样」的资讯,包含时间资讯(timestamp)。
也就是说,真实世界的时间和我跟伺服器端说的时间是不同的喔。
然後伺服器回应给我「一模一样」的SSR,连身份证字号都相同,看到这里别开心的太早,因为连身份证字号都相同,所以视为同一张卡,我并没有得到两张ssr。(但石头还是会少)
接着,我把timestamp加一秒,再送一次,就得到不同的卡片了。
所以伺服器会以收到「你跟他说你抽卡的时间」,也就是收到的timestamp,来决定要让你抽到什麽卡,以及产生对应的卡片身份证字号。
为什麽九连必金,其实是因为九连抽的资讯其实只有一个timestamp,伺服器一起帮你产生这九张卡,所以他当然知道你这九张卡要面要不要塞一张金卡给你。
九连分开抽会不会必金?这我没做过实验,所以不知道,如果「是」的话,表示伺服器会参考你上一次的抽卡结果来决定这次的结果。
就像推文里讲的,有法老时间就会有脸黑的时间,把所有玩家的资料拉大来看,就会是接近官方说的7%,有人欧就会有人黑,至於一些抽卡的都市传说,听听就好,不一定适合你。
至於更夸张的,像是把游戏重开,或是先做什麽事再抽卡,会重置你的抽卡机率这种就别信了。
有人说什麽抽了3单一张ssr也没有,有人一抽入魂,其实都是整个群体中的一小部份而已,若以上帝视角来看,ssr的机率应该就是会和官方宣称的差不多的。
大家都想拼成为一抽入魂的那个人,但其实了解到背後原理後,就会知道这是非常难的,因为你跟本不知道你的timestamp会被伺服器端怎麽运算来给你卡片。
如果有人想要再做一些不同的实验,来验证一些统计的实验也可以和我说。
※ 引述《zorroptt (毛毛鼠)》之铭言:
: ※ 引述《hsnu7980 (老二)》之铭言:
: : 小弟由於最近在别款游戏(少女前线)的圣造活动
: : 使用了以时间作为随机因子来抽卡(造枪)
: : 详情不再赘述,毕竟也不算是有经过计算及统计的方法
: : 不过之所以选择用时间当作参考,主要是历经了锁链这款游戏的洗礼
: : 比如曾经有一段时间流行讨论法老时间的存在等等
: : 小弟在这里想要请问各位大大是否看过一套说法:
: : 抽卡是根据AP的回覆时间作为时间SEED的,然後再倒数归零的时候按下抽卡会有较高机率的高星卡面,小弟确信有在某一篇(可能不是PTT)看过所以想神一下那篇文章。
: : 另外还想做个小调查,版上各位相信或不相信时间流或是法老时间等等?
: : PS:踏破结束,接着圣捞整个就不想玩登入游戏QQ
: 其他游戏没啥感觉
: 但锁链我是相信的
: 锁链一直以来我都觉得连抽和隔段时间单抽 机率差很多
: 我是没特别抓时间 通常就是上班抽一张 下班一 睡前一
: 就算没中五星 出四星体感也是特别高
: 但同样方法我拿去抽其他游戏就完全没效果 就算刻意挑深夜抽也没用XD
※ 引述《zorroptt (毛毛鼠)》之铭言:
: ※ 引述《hsnu7980 (老二)》之铭言:
: : 小弟由於最近在别款游戏(少女前线)的圣造活动
: : 使用了以时间作为随机因子来抽卡(造枪)
: : 详情不再赘述,毕竟也不算是有经过计算及统计的方法
: : 不过之所以选择用时间当作参考,主要是历经了锁链这款游戏的洗礼
: : 比如曾经有一段时间流行讨论法老时间的存在等等
: : 小弟在这里想要请问各位大大是否看过一套说法:
: : 抽卡是根据AP的回覆时间作为时间SEED的,然後再倒数归零的时候按下抽卡会有较高机率的高星卡面,小弟确信有在某一篇(可能不是PTT)看过所以想神一下那篇文章。
: : 另外还想做个小调查,版上各位相信或不相信时间流或是法老时间等等?
: : PS:踏破结束,接着圣捞整个就不想玩登入游戏QQ
: 其他游戏没啥感觉
: 但锁链我是相信的
: 锁链一直以来我都觉得连抽和隔段时间单抽 机率差很多
: 我是没特别抓时间 通常就是上班抽一张 下班一 睡前一
: 就算没中五星 出四星体感也是特别高
: 但同样方法我拿去抽其他游戏就完全没效果 就算刻意挑深夜抽也没用XD
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 59.120.24.158
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/ChainChron/M.1495516220.A.A4C.html
1F:→ moritsune: stopper是会累计的,分开抽也一样,server会记录之前结果 05/23 13:20
2F:推 hsnu7980: 「然後伺服器回应给我「一模一样」的SSR,连身份证字号 05/23 13:23
3F:→ hsnu7980: 都相同,看到这里别开心的太早,因为连身份证字号都相 05/23 13:23
4F:→ hsnu7980: 同,所以视为同一张卡,我并没有得到两张ssr。(但石头 05/23 13:23
5F:→ hsnu7980: 还是会 少)接着,我把timestamp加一秒,再送一次,就得 05/23 13:23
6F:→ hsnu7980: 到不同的卡片了。」是指这张已经给过了不会再给一次的 05/23 13:23
7F:→ hsnu7980: 意思吗?那石头少了怎麽办? 05/23 13:23
8F:→ Nt1: 对啊,给过了不再给,但是石头已少,没辨法,这也不是正常的 05/23 13:31
9F:→ Nt1: 行为,少了也就是少了 05/23 13:31
10F:推 azraelhanyue: 我相信法老时间 05/23 13:32
11F:推 NormcoreV: 平时做好抽卡纪录,该非该欧都有个底 05/23 13:35
12F:推 asteea: 虽然timestamp有小数点 封包传递也有延迟时间就是 05/23 13:40
13F:→ asteea: 所以就算真的有也没甚麽意义 05/23 13:40
14F:推 jakyou: 有科学实验只能给推了 05/23 13:48
15F:推 pain0: 九连分开抽保底不是已经证实了? 05/23 14:04
16F:→ Nt1: to楼上,感谢,因为没一直follow这个资讯^^ 05/23 14:05
17F:→ pain0: 怎麽觉得有点矛盾 05/23 14:05
18F:推 soliboy: 如果只靠timestamp算卡,那只要有人把SSR的timestamp记下 05/23 14:14
19F:→ soliboy: 然後改成别人的uuid,就可以靠这个必抽金卡了 05/23 14:15
20F:推 soliboy: 多花点时间把ts跟SSR的ID资料库建起来,转蛋姬就被破解了 05/23 14:18
21F:推 asteea: 这样你要先发明一个抽卡外挂 然後还要算PING值耶 05/23 14:19
22F:推 altcd: 不可能只单纯看timestamp啦...不然每个同时间抽的人都法老 05/23 14:32
23F:→ altcd: 吗.. 肯定会拿帐号资料当变数一起丢进去演算啊 05/23 14:33
24F:→ altcd: 而且对系统来说timestamp是一个一直增加的数字 不会重复 05/23 14:33
25F:→ altcd: 你不可能做出一个统计的资料库来纪录 因为是无限膨胀 05/23 14:34
26F:→ altcd: 除非你超强 可以用拿到的纪录去分析出他的转蛋演算法 05/23 14:34
27F:→ altcd: 不然单纯的纪录是没有意义的 05/23 14:34
28F:→ jakyou: 所以法老帐号的说法是有可能的...XD 05/23 14:35
29F:推 playertwo: 楼上 s君的估计是可行的,但如果伺服器有纪录,就会发 05/23 14:41
30F:→ playertwo: 现有人出术了,然後封号 05/23 14:41
31F:→ playertwo: 而且 timestamp 超过太久应该同样会 reject 吧 05/23 14:43
32F:推 altcd: 我怎麽想都觉得在能分析出演算法前 单纯的纪录都是不可能 05/23 14:48
33F:→ altcd: 破解的 还请楼上指点? 05/23 14:49
34F:→ altcd: 我只要把uuid也丢进演算法里 我的ts能中SSR 换你的uuid就会 05/23 14:49
35F:→ altcd: 出不同结果了 怎麽可能破解 05/23 14:50
36F:→ playertwo: 纯讨论而已,如果只以 timestamp 决定SSR,谋人抽到 SS 05/23 14:56
37F:→ playertwo: R 後以另一 uid + timestamp 应会出同一 SSR 05/23 14:56
38F:→ playertwo: 只是伺服器纪录会很易发现吧 05/23 14:56
39F:→ altcd: 我们的基准点就已经不同..这样不用讨论了吧... 05/23 14:57
40F:→ altcd: 我一开始就说演算法会把玩家资料丢进去一起算 05/23 14:58
41F:→ altcd: 而且这是可能性比较大的做法 当然我无法肯定CC是这样做 05/23 14:58
42F:→ Nt1: uuid一定会被带进去算,我已试过拿别人的出金的timestamp给我 05/23 15:00
43F:→ Nt1: 用,结果在我的uuid配上对方出金的TS,会出不同的卡 05/23 15:01
44F:推 altcd: 而且就算只用ts 只做纪录而不分析也是没用的,我上面也说ts 05/23 15:02
45F:→ Nt1: 楼上a大的推论我是支持的:D 05/23 15:02
46F:→ altcd: 在系统里是一个只会无限增大的数字 不会重复 05/23 15:02
47F:→ altcd: 你只有可能在抽卡前准备好 一抽到SSR就马上丢其他uuid出去 05/23 15:03
48F:→ altcd: 这样才有可能破解 纪录是没意义的 05/23 15:03
49F:推 soliboy: uuid也会被参考,这就合理了 05/23 15:05
50F:推 asteea: 虽然有很多点可以吐糟 但问题和楼上说的一样 无法重现条件 05/23 15:08
51F:→ asteea: 我比较感兴趣的反而是因为现在CC有找第3方监测机率 05/23 15:13
52F:→ asteea: 会不会为了令结果和表记相符 而在机制上去配合 05/23 15:14
53F:→ asteea: 做成这时段比较多人抽到的话下时段比较难抽 或反之亦然 05/23 15:15
54F:→ zanns: 我比较好奇第三方要怎麽监测? 05/23 15:17
55F:→ asteea: 监察方如果取的是全时段抽卡数据 那只要别偏离太大就OK 05/23 15:17
56F:→ ssccg: 其实我觉得这现象看起来比较像用这些参数去产生卡片id 05/23 15:18
57F:→ ssccg: 重覆的id直接回同一张,不能证明时间有被代入卡种计算 05/23 15:19
58F:→ asteea: 要看有没有相事业内人士 虽然这部份可以每天跑Test Case测 05/23 15:19
59F:→ asteea: 或拿实际每天的抽卡报告看分布也行 反正数据会说话 05/23 15:19
60F:→ asteea: 基本上TIMESTAMP基本情况一定会拿来用 只是绝非唯一 05/23 15:22
61F:→ ssccg: 毕竟观察到的现象重点在id相同,卡种相同只是id相同自然的 05/23 15:22
62F:→ ssccg: 结果,要观察到卡种相同但id不同才能说这些参数跟卡种有关 05/23 15:23
63F:→ ssccg: ts一定会用,但是我想不到用client的ts的必要性 05/23 15:23
64F:→ asteea: 就像用MD5来加密密码 通常在加密前会对字串再动一点手脚 05/23 15:24
65F:→ asteea: 抽卡那可能用客户端资讯... 不对 那个火焰纹...我的头好痛 05/23 15:26
66F:→ playertwo: 重覆的id直接回同一张,timestamp 这样用吧 05/23 15:44
67F:→ asteea: 最低限度 SEED也会是TS+AID(或UID)吧 不然我会对SEGA失望 05/23 15:49
68F:→ asteea: 阿 虽然重点不在这边就是了 反正上面这句没有任何意义 05/23 15:49
69F:→ slygun: uid是说明真有法老号吗 XD 05/23 16:47
70F:推 soliboy: 只要能破解乱数公式,非洲帐也会有法老时间! 05/23 17:59
71F:推 pain0: 跪求楼上破解给我看 05/23 18:43
72F:推 asteea: 结果法老时间是早上4时 请早睡早起(X 05/23 20:28
73F:→ ssccg: 为什麽最低限度要放UID? 是我的话一定不会放... 05/23 20:43
74F:→ ssccg: 现代语言通常不需要seed,会自己由OS取得好的entropy来源 05/23 20:52
75F:→ ssccg: 除非就是要控制让random值不random,不然什麽都不用最好 05/23 20:53
76F:推 asteea: 看用那种方式啦 虽然我并不觉得需要分别对每个帐号做处理 05/23 21:02
77F:→ asteea: 所以用户资讯很大机会根本不会左右结果 05/23 21:03
78F:→ asteea: 另外让语言自己处理是不是真的变成随机我是有疑问 05/23 21:03
79F:→ asteea: 反正其实没有所谓真随机存在 05/23 21:04
80F:→ ssccg: 有什麽好疑问的...一定比自己塞的东西好 05/23 21:04
81F:→ ssccg: 有真随机存在啊,要专用硬体(靠物理理论上随机的现象) 05/23 21:17
82F:推 asteea: 要说entropy也要看source 也有考虑到certainty的问题 05/23 21:21
83F:→ asteea: 不过感觉这已经是另一领域了... 这要变技术交流串了吗 QQ 05/23 21:23
84F:→ ssccg: 说真的抽卡也没必要多高的不可预测性,不要用client端能观 05/23 21:25
85F:→ ssccg: 测的东西就很稳了啊...时间其实就可预测性来说是很差的seed 05/23 21:25
86F:推 asteea: 虽然我也不认为就算他真的作死有用到 就代表有办法攻击 05/23 21:28
87F:→ ssccg: 抽卡要成本,PRNG没太糟的话从成本角度来看就已经破不了了 05/23 21:29
88F:→ asteea: ...扯远了 单纯是我认为就算能破解掉 在再现上已经有困难 05/23 21:29
89F:→ asteea: 更不用说 转蛋这种东西如果出现可预期的规律才是最大问题 05/23 21:30
90F:→ asteea: 而人在一些"玄学"应验时会有更深刻印象 这种自我催眠状态 05/23 21:31
91F:→ asteea: ... 等等 我又想起数年前RO的转蛋没有随机性的问题... 05/23 21:33
92F:→ asteea: 怎麽游戏业界尽是一些作死的怪事 -_-... 05/23 21:33
93F:推 guaz: 时间变数由client给 工程师需要再教育吧 05/23 21:34
94F:→ asteea: 那可能XD 另外s大说不该用客户端能看就是指降低uncertain 05/23 21:36
95F:→ asteea: 无论游戏与否 当一些随机相关的资讯能被观测 就有安全问题 05/23 21:37
96F:→ asteea: 虽然我只能说越旧的游戏越可能用一些白痴方法... 05/23 21:39
97F:→ asteea: 都遇过用列表做循环派奖 额度派完就永不出货的怪转蛋了... 05/23 21:40
98F:推 guaz: 这是安全性基本的sense...虽然入行久了就知道很多人没有 05/23 21:42
99F:→ asteea: PS 上面有人说用别人金的TS抽不出货 怎样才可以同TS抽阿XD 05/23 21:42
100F:→ asteea: 说笑的 当我没问好了 >.> 05/23 21:45
101F:推 asteea: 随机的要求要看IMPACT有多大. 我个人是不觉得CC能破到甚麽 05/23 21:47
102F:→ asteea: 在日本现在转蛋越来越规范化的现在 出现能被观察规律的状 05/23 21:49
103F:→ asteea: 况是到了 在各种意义都是超过糟糕的地步 05/23 21:53
104F:→ asteea: 另外关於下午说的第3方 理论上代码应该也会被AUDIT就是了 05/23 22:11
105F:→ asteea: SEGA有柏青哥经验 我是放心啦.... (X 05/23 22:14