Skip to content

Commit 8289480

Browse files
committed
update auth_chain_b
1 parent 8606dc7 commit 8289480

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

doc/auth_chain_b.md

+7-5
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ auth_chain_b 与 auth_chain_a 最大不同在于重新定义了TCP部分非首
5454
# assert False
5555

5656
if buf_size > 1300:
57-
return random.next() % 31
57+
return random.next() % 31 # 如果真的跑到这里,就意味着可能发出一个 1439+30+4 大小的包
5858
if buf_size > 900:
5959
return random.next() % 127
6060
if buf_size > 400:
@@ -128,6 +128,9 @@ UDP部分不变
128128
self.data_size_list0.sort()
129129

130130
def rnd_data_len(self, buf_size, last_hash, random):
131+
other_data_size = buf_size + self.server_info.overhead
132+
# 一定要在random使用前初始化,以保证服务器与客户端同步,保证包大小验证结果正确
133+
random.init_from_bin_len(last_hash, buf_size)
131134
# final_pos 总是分布在pos~(data_size_list0.len-1)之间
132135
# 除非data_size_list0中的任何值均过小使其全部都无法容纳buf
133136
if buf_size >= self.data_size_list0[-1]:
@@ -141,13 +144,12 @@ UDP部分不变
141144
return random.next() % 521
142145
return random.next() % 1021
143146

144-
random.init_from_bin_len(last_hash, buf_size)
145-
pos = bisect.bisect_left(self.data_size_list0, buf_size + self.server_info.overhead)
147+
pos = bisect.bisect_left(self.data_size_list0, other_data_size)
146148
final_pos = pos + random.next() % (len(self.data_size_list0) - pos)
147-
return self.data_size_list0[final_pos] - buf_size - self.server_info.overhead
149+
return self.data_size_list0[final_pos] - other_data_size
148150

149151
```
150152

151153

152-
*什么时候我弄个auth_chain_c出来就按照上面这个方向进行改进好了(笑*
154+
~~什么时候我弄个auth_chain_c出来就按照上面这个方向进行改进好了(笑~~已经弄出来了
153155

0 commit comments

Comments
 (0)