抖音直播间的X-Bogus和短视频接口的X-Bogus两者不是同一个东西,如果贸然混用结果是很不美丽,今天我们来聊一聊短视频接口的X-Bogus到底是怎么生成的。抖音的x-bogus不同于其他网站的加密方式可以通过关键字搜索,抖音的加密字段是通过jsvmp动态生成的,所以关键字搜索在这里不管用。这次我们用电其他的方法。
打开开发者工具,添加一个xhr调式断点,插入关键字X-Bogus 那么只要接口中包含x-bogus字段都会进入断点
如图所示程序已经进入了调试模式,接下来就是找加密入口,直接debug跟着程序往下走,前期调试是一个非常耗时的过程,稍微不注意就会跳出程序,因为jsvmp就是通过不断的将函数的入口,取值赋值等等操作都放到一个大的数组中然通过下标记计算来获取相关的值以及执行函数,所以前面的调试不要急躁跟着程序一步步走就行,同时注意调试框右侧的值,这里包含了函数的入参以及返回值
分享一个小经验,一般加密往往都会接口的请求参数有关,所以重点关注右边框的值是否涉及到我们的请求参数。
再一遍遍的调试后终于发现了我们心心念念的入口
果然如我刚才所说,接口参数再这里出现了。将函数单独执行出现了我们想要的结果再次印证了这个方法就是我们想要的入口
仔细观察后发现这是一个内部方法,外面无法访问,我们的只需要将函数导出即可,随便在window中赋值一个函数来承接我们想要的方法。至此我们的工作已经完成了一半。剩下的就是补环境和验证。
补环境无非就是老三样,window, document 和 navigator,将相关的参数补齐
补环境是一个不断试错的过程,不同的加密方法可能涉及到不同的环境参数,我们通过不断的调试对比我们自己补的环境和能够正常请求的环境参数有什么不同,来一步一步完善,谁也不能保证一次就能将环境补好,除非你是开发人员。
接下来在python中验证生成的加密方法是否正确
看着结果还是很喜人的,期间也会在网上找其他人是怎么实现的,奈何结果都不太满意,只能自己动手丰衣足食