前两天,在忙一个东西,逆Win10设置默认浏览器的一个算法,
这个算法是设置Win10操作系统最新版本的默认浏览器,所以肯定是微软自己的算法,360要么有源码,要么逆向出来的。
因为,涉及到一些不该说的东西,所以我就不贴代码了,微软的那个算法应该是叫CS64吧,应该不是公开的,管他呢,反正我就这么叫了。
首先,其实我是照着360的代码逆的,但是真的很可怕,360的代码真的很烂,
不要说什么保护代码,什么手动加密阿什么的,代码写得烂就是写得烂,从编译器编出来的结果就看得出来,就是写得烂,
360的代码,我逆了6套版本,最后找到了3个公式,来解决了算法的问题,
但是还是很烂,有很多多余的东西,乱七八糟多余的分支,虽然和微软的代码结构相同,但是明显代码就更烂。
然后我看了微软的代码。。。超级简洁,
用微软的代码,我一次就逆出了整个逻辑,优化到了2个公式。
哎,真的很不一样的。
前面我猜测了,要么360有源码,要么就是逆向出来的。
如果360有源码的话,勉强说得过去,毕竟整体代码结构相同,只不过编译出来的汇编代码不完全一样,
但是我更怀疑,360那边也是逆出来的,他们逆出来之后,根本就没有去考虑算法内部的实现细节,也没有考虑算法各部分的用途,
结果一段明显没有用的代码,逻辑上,和上下文中,以及各个功能部分都能保证的一块没有用的代码,仍然冠冕堂皇地站在360的代码中。
有心人,自己去逆那个代码吧,具体是做什么的,具体叫什么,我都说清楚了,只是没贴代码而已。