0x01 密码校验
启动 TeamServer 后,会创建 SecureServerSocket 对象并且循环调用 acceptAndAuthenticate 方法等待 Controller 连接
在接收到信息并验证成功以后,才会去调用 clientAuthenticated 方法来线程执行 ManageUser 以处理与 Controller 的信息
当 Controller 在点击 Connect 按钮时,会调用 Connect 中的 dialogAction 方法,会先创建SecureSocket 对象,并调用 authenticate 方法进行验证
在创建 SecureSocket 对象时,会与 TeamServer 进行握手等操作,TeamServer 会进入SecureServerSocket.this.authenticate 方法进行验证,此时会一直在 var4.readInt() 阻塞,直到Controller 将信息发完
接着来看 Controller 的处理,在 authenticate 中,进行了数据包的构造,先写入一个标志 48879(int),接着是密码的长度(byte),然后是密码,之后用 65 来进行填充密码长度加填充长度,不超过 256,再加上标识位和密码长度,256+5=261
接着在 flush 之后,TeamServer 就开始验证了,判断标志位是否正确,读取密码,读填充字符
对比密码,如果正确,写回标志位 51966
标签:authenticate,验证,流程,TeamServer,密码,Controller,调用,登陆,CS From: https://blog.51cto.com/u_14881360/9568641