wordpress搭建英文网站,视频网站建设难吗,网站设计简单讲解,网站建设策划书是由谁编写的点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐] 前几天在百度搜索的时候#xff0c;一不小心误点搜索候选词#xff0c;给我跑到搜狗搜索里面去了#xff0c;索性花了点时间分析一下这其中的猫腻#xff0c;不看不知道#xff0c;一看吓一跳。 在浏览器中打开百度一不小心误点搜索候选词给我跑到搜狗搜索里面去了索性花了点时间分析一下这其中的猫腻不看不知道一看吓一跳。 在浏览器中打开百度使用搜狗输入法输入关键词时将出现搜索候选词列表 随便点击列表中的某一个选项后页面跳转到了搜狗搜索的结果页 测试实验 测试1360搜索输入框并没有这个候选词列表如下图 结论1搜狗输入法应该是对当前打开的页面有判断不是随便哪个网页下面的输入框都会出现这个列表 测试2在百度页面除了主要的搜索框以外其他入口也会出现这个搜索选项列表下面是站点内搜索输入框的测试 结论2搜狗输入法没有判断当前输入框目标是不是搜索框 测试3这一次不用域名换用IP地址来访问百度搜索。我的环境下ping www.baidu.com 解析的IP地址为220.181.38.149结果搜狗输入法竟然没有出现这个搜索选项列表 结论3这个搜索选项列表的出现跟网页当前的URL有关 测试4这一次来把浏览器的进程名字改一下我这里选择火狐浏览器将firefox.exe改为firefox1.exe这个搜索选项列表也没有出现 结论4除了URL对进程名字也有判断如果不是浏览器进程也不会触发 最终结论搜狗输入法检测到用户打开浏览器访问www.baidu.com域名进行搜索时将弹出搜索选项列表引导用户点击。 技术分析 如何实现浏览器进程筛选 第一个问题搜狗输入法怎么判断当前是不是在浏览器进程中呢总不能在微信聊天界面也给弹出搜索候选词列表吧 搜狗输入法核心模块是一个叫SogouPY.ime的文件这实际上是一个动态链接库文件这个文件会随你切换输入法时加载到对应的进程中。使用IDA打开分析发现这个模块内部有很多浏览器进程名字的字符串 你看国内外主流的和非主流的浏览器基本都被列为了目标。 进一步分析发现上面这是一个字符串数组找到了遍历这个数组挨个进行比较匹配的处理逻辑 当前页面的URL获取及判断 浏览器进程筛选出来了还要筛选当前是不是在搜索引擎的页面接着往下看 针对不同浏览器使用不同的获取方式这里以firefox为例搜狗输入法使用了MSAAMicrosoft Active Accessibility技术获取到了当前页面URL。 调试发现如果修改获取到的URL内容搜狗输入法的搜索选项列表就无法展示出来。 向上追溯可以找到根据不同浏览器进行不同的URL获取方式分发入口 继续追溯获取当前浏览器信息后还要进行是否是搜索引擎域名的判断 这个wcsstr函数就是在进行字符串比较了调试得到wcsstr()的参数1获取到的页面URL参数2搜索引擎域名。又是用一个数组在进行存储 百度居然还有个小名www1.baidu.com有意思。 我们来挨个试一下这个列表中的搜索引擎 www1.baidu.com: www.soso.com: 这个就不用试了现在是搜狗自家人。 cn.bing.com: www.google.cn: so.sowang.com: www.chinaso.com: www.youdao.com: www.zhongsou.com: 如何打开搜狗搜索页面呢 当发现是在浏览器进程中访问上面的搜索引擎域名后就该跳转到搜狗自己的搜索页面了那它是如何打开的呢继续往下看 打开firefox使用调试器WinDbg 挂载到这个进程执行这个命令bp shell32!ShellExecuteW给函数ShellExecuteW下断点。 接着打开百度首页切换到搜狗中文输入法这样使得SoGouPY.ime模块加载到firefox的进程空间中。 然后随意输入字符出现搜狗搜索选项列表随便点击一个触发断点来看一下参数 可以看到这里通过启动当前浏览器firefox.exe打开了URL。根据堆栈返回地址可以进一步往前分析。 IDA反汇编太多就不截图了。总体来说判断当前浏览器是否是IE内核如果是就通过获取到浏览器IWebBrowser2接口指针调用接口中的Navigate2方法来打开搜狗搜索页面。如果不是IE内核直接调用ShellExecuteW打开URL。 那如何判断是不是IE内核呢 可以看搜狗的做法获取当前浏览器类别内部通过进程名、当前焦点窗口的Class名”Internet Explorer_Server”综合判断: 总结 和实验得到的结论一致。 一图胜千言整个过程就是这个样子的 多说几句 事实上搜狗干这事已经有好些年了。几年前百度还把搜狗给告了搜狗败诉赔钱。不过输了是输了就是坚决不改。。。 对于搜狗输入法的这骚操作你怎么看 本公众号会不定期给大家发福利包括送书、学习资源等敬请期待吧
如果感觉推送内容不错不妨右下角点个在看转发朋友圈或收藏感谢支持。
- EOF -想要加入中生代架构群的小伙伴请添加群合伙人大白的微信
申请备注姓名公司技术方向才能通过哦扩展阅读 阿里专家马飞翔一文读懂架构整洁之道2020-10-16DDD专家张逸构建领域驱动设计知识体系2020-10-13
京东架构师闫文广订单系统高可用架构及演变过程2020-10-12
架构师是否需要写代码2020-09-18
阿里高级技术专家箫逸如何画好一张架构图2020-09-07
大神手把手教你设计秒杀架构模型2020-09-06
阿里巴巴闲鱼架构负责人王树彬万亿交易规模技术架构实践2020-09-05
阿里高级技术专家张建飞应用架构分离业务逻辑和技术细节之道2020-08-31
波波老师大解密如何成为优秀的架构师2020-06-25
微信支付软件架构重构之旅2020-06-08
一个思维习惯让你成为架构师2020-06-03
阿里P9专家右军以终为始的架构设计2020-04-27END
#架构师必备#点分享点点赞点在看