录入时间:2017/2/11 20:22:20 最后更新:2017/2/12 20:26:44
IPC进程通讯:客户端验证与高级API 只能在进程通讯客户端里使用,并且需要在客户端连接上服务端后 目的:验证、二次验证、高级API取自定义接口数据 返回的数据=ipc_cmd("ipc_check",单元集) 返回的数据: 可能是明文单元集,也可能是密文单元集,具体返回的有哪些单元,请参见IPC.DLL接口 如果返回的数据单元集中的单元state的值不为100,表示验证失败,可以通过GD_(明文单元集,"message")获取详细的出错信息 1、调用 ipc_cmd("ipc_check",单元集) 前必须调用ipc_cmd("ipc_connect","<guid>一个GUID号<guid>") 连接服务端 2、二次验证 2.1、按自己的算法生成一个随机字符串 randstr randstr=生成随机串() 2.2、返回的数据=ipc_cmd("ipc_check","<randomstr>randstr</randomstr>") 如果你传入了randomstr单元,返回的单元集数据里肯定也会有一个相同值的randomstr单元 可以利用此特性做一些验证效验 2.3、解密返回的数据,用算定义解密的包装函数FD_()使其变成明文,以便取出数据 2.3.1、二次验证时如果没有连接服务器,返回的数据是明文的单元集 2.3.2、只有在连接了服务器验证的情况下,返回的数据才是密文的单元集 2.3.3、二次验证并非都会连接服务器验证 2.3.4、要强制连接服务器进行二次验证,请用 返回的数据=ipc_cmd("ipc_check","<randomstr>randstr</randomstr><connect>1</connect>") 2.3.5、明文单元集=FD_(返回的数据) 2.4、对明文单元集中的单元数据进行读取和效验 读取指定单元 GD_(明文单元集,单元名) 例如读取randomstr GD_(明文单元集,"randomstr") 效验方式因人而异,我这里就不写了 3、取服务端高级API函数接口的数据 3.1、取服务端高级API函数据口的数据时同时会进行二次验证,是强制连接服务器的 3.2、下边的两种调用方式都可以 3.2.1、加密的单元集=ipc_cmd("ipc_check","<advapi>v_getb,100,200</advapi>") 3.2.1、加密的单元集=ipc_cmd("ipc_check","<randomstr>randstr</randomstr><advapi>v_getb,100,200</advapi>") 3.3、解密返回的数据 3.3.1、用算定义解密的包装函数FD_()使其变成明文 明文单元集=FD_(加密的单元集) 3.3.2、如果你有传入randomstr,可以从返回值中取出randomstr进行效验 3.3.3、advapi返回的值=GD_(明文单元集,"advapi")