热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

红芯对chromium,瞩目对zoom。扒扒瞩目客户端。

0x00前提一直以来,人们普遍怀疑瞩目等“国产“云会议系统在界面,功能上有剽窃国外的Zoom.us的嫌疑,但无证据。本文从瞩目的Ubuntu客户端入手,详细证明了瞩目的Zoom血统




0x00 前提

一直以来,人们普遍怀疑瞩目等“国产“云会议系统在界面,功能上有剽窃国外的Zoom.us的嫌疑,但无证据。本文从瞩目的Ubuntu客户端入手,详细证明了瞩目的Zoom血统。


0x01 原因

疫情之下,学校要进行云教学,要安装瞩目客户端。打开官网,兴奋地发现瞩目居然有Linux版本,即所谓自主知识产权的Ubuntu Kylin 版本。于是在尝试安装的同时探索了瞩目客户端。


0x02 环境

我使用的是 Manjaro Linux 19.0, Kernel 5.5, XFCE 4.14 惠普ZBook 15 (intel 集成显卡). 官网安装包zhumu_2.5.360133.0226_amd64.deb


0x03 安装

Manjaro 是基于ArchLinux的,所以先把Debian系的DEB安装包debtap一下。

debtap zhumu_2.5.360133.0226_amd64.deb

得到了ArchLinux的.tar.xz 安装包,然后直接pacman。

sudo pacman -U zhumu-2.5.360133.0226-1-x86_64.pkg.tar.xz

然而,这个包依赖于这个东东。

~/Documents/packages/TXZ » sudo pacman -U zhumu-2.5.360133.0226-1-x86_64.pkg.tar.xz felix@felix-zbook
[sudo] password for felix:
loading packages...
resolving dependencies...
:: There are 6 providers available for opencl-nvidia:
:: Repository extra
1) opencl-nvidia-340xx 2) opencl-nvidia-390xx 3) opencl-nvidia-418xx 4) opencl-nvidia-430xx 5) opencl-nvidia-435xx
6) opencl-nvidia-440xx
Enter a number (default=1):

胡闹!我英特尔的显卡要装Nvidia的OpenCL和utils!

我当时就真的瞎选了一个装上了,还装了Nvidia的Cuda,结果,所有的Qt程序全打不开了!。于是赶紧卸载了这些Nvidia,一切恢复正常。


0x04 探索

无奈之下,试试在不安装Nvidia驱动的情况下手动安装瞩目吧……

先解开tar包。

tar xvf zhumu-2.5.360133.0226-1-x86_64.pkg.tar.xz

里面opt,usr 两个文件夹,先进usr看看。

~/Documents/packages/TXZ » tree ./usr felix@felix-zbook
./usr
├── bin
│ └── zhumu -> /opt/zhumu/ZhumuLauncher
└── share
├── applications
│ └── Zhumu.desktop
├── doc
│ └── zhumu
│ └── changelog.gz
├── mime
│ └── packages
│ └── zhumu.xml
└── pixmaps
├── application-x-zhumu.png
└── Zhumu.png
8 directories, 6 files

这个usr 小巧得tree 都这么简单。./usr/bin 里的瞩目客户端是一个指向/opt/zhumu/ZhumuLauncher的符号链接。剩下的是一些桌面文件,changelog,mime types, 图标之类。

那就去看看/opt/。ls一下发现居然有这么多Qt的文件。我们GTK果然更简单纯洁(Qt大佬勿喷)。ls如下:

audio libQt5Gui.so.5.9.6 libQt5Svg.so libquazip.so.1
config-dump.sh libQt5Network.so libQt5Svg.so.5 libquazip.so.1.0.0
dingdong1.pcm libQt5Network.so.5 libQt5Svg.so.5.9 libturbojpeg.so
dingdong.pcm libQt5Network.so.5.9 libQt5Svg.so.5.9.6 libturbojpeg.so.0.1.0
Droplet.pcm libQt5Network.so.5.9.6 libQt5WebChannel.so platforminputcontexts
egldeviceintegrations libQt5OpenGL.so libQt5WebChannel.so.5 platforms
generic libQt5OpenGL.so.5 libQt5WebChannel.so.5.9 platformthemes
getmem.sh libQt5OpenGL.so.5.9 libQt5WebChannel.so.5.9.6 Qt
iconengines libQt5OpenGL.so.5.9.6 libQt5WebEngineCore.so qt.conf
icudtl.dat libQt5Positioning.so libQt5WebEngineCore.so.5 qtdiag
imageformats libQt5Positioning.so.5 libQt5WebEngineCore.so.5.9 QtGraphicalEffects
leave.pcm libQt5Positioning.so.5.9 libQt5WebEngineCore.so.5.9.6 QtQml
libfaac1.so libQt5Positioning.so.5.9.6 libQt5WebEngine.so QtQuick
libicudata.so libQt5PrintSupport.so libQt5WebEngine.so.5 QtQuick.2
libicudata.so.56 libQt5PrintSupport.so.5 libQt5WebEngine.so.5.9 QtWebChannel
libicudata.so.56.1 libQt5PrintSupport.so.5.9 libQt5WebEngine.so.5.9.6 QtWebEngine
libicui18n.so libQt5PrintSupport.so.5.9.6 libQt5WebEngineWidgets.so qtwebengine_devtools_resources.pak
libicui18n.so.56 libQt5Qml.so libQt5WebEngineWidgets.so.5 QtWebEngineProcess
libicui18n.so.56.1 libQt5Qml.so.5 libQt5WebEngineWidgets.so.5.9 qtwebengine_resources_100p.pak
libicuuc.so libQt5Qml.so.5.9 libQt5WebEngineWidgets.so.5.9.6 qtwebengine_resources_200p.pak
libicuuc.so.56 libQt5Qml.so.5.9.6 libQt5Widgets.so qtwebengine_resources.pak
libicuuc.so.56.1 libQt5Quick.so libQt5Widgets.so.5 ring.pcm
libQt5Core.so libQt5Quick.so.5 libQt5Widgets.so.5.9 timezones
libQt5Core.so.5 libQt5Quick.so.5.9 libQt5Widgets.so.5.9.6 translations
libQt5Core.so.5.9 libQt5Quick.so.5.9.6 libQt5X11Extras.so version.txt
libQt5Core.so.5.9.6 libQt5QuickWidgets.so libQt5X11Extras.so.5 xcbglintegrations
libQt5DBus.so libQt5QuickWidgets.so.5 libQt5X11Extras.so.5.9 zcacert.pem
libQt5DBus.so.5 libQt5QuickWidgets.so.5.9 libQt5X11Extras.so.5.9.6 zhumu
libQt5DBus.so.5.9 libQt5QuickWidgets.so.5.9.6 libQt5XcbQpa.so ZhumuLauncher
libQt5DBus.so.5.9.6 libQt5Script.so libQt5XcbQpa.so.5 zhumulinux
libQt5Gui.so libQt5Script.so.5 libQt5XcbQpa.so.5.9 zhumu.sh
libQt5Gui.so.5 libQt5Script.so.5.9 libQt5XcbQpa.so.5.9.6 zopen
libQt5Gui.so.5.9 libQt5Script.so.5.9.6 libquazip.so ZXMPPROOT.cer

有意思的文件有这几个:



  • zhumu: 应该是核心模块

  • ZhumuLauncher: 启动器

  • zhumulinux: 是一个bash脚本,跟日志有关

  • zhumu.sh: 调试器,自带echo说明:


This is debug mode of zhumu client. Once crash, zhumu will generate core dump under this mode.

(这是瞩目客户端的调试模式。如果客户端崩溃了,瞩目会用这个模式取得core dump文件。


看来有时还会Segment fault: Core dumped!啊。

先运行一下./zhumu 试试:

./zhumu

得到了一个错误:

zoom started.
QXcbIntegration: Cannot create platform OpenGL context, neither GLX nor EGL are enabled
./zhumu: symbol lookup error: /home/felix/Documents/packages/TXZ/opt/zhumu/imageformats/libqico.so: undefined symbol: _ZdlPvm, version Qt_5

是一个OpenGL错误和符号错误。这不是重点。上面一条信息更有意义:


zoom started


名为“瞩目”核心却是Zoom。真令人想起前几年 红芯浏览器的Chromium核心。

然后运行一下 那个launcher:

./ZhumuLauncher

输出一堆。这里paste一下前面的几行:

ZhumuLauncher started.
cmd line:
$HOME = /home/felix
export SSB_HOME="/home/felix/.Zhumu_Cloud_Meetings"; export QSG_INFO=1; export LD_LIBRARY_PATH=/home/felix/Documents/packages/TXZ/opt/zhumu; /home/felix/Documents/packages/TXZ/opt/zhumu/zhumu ""
zoom started.
Linux Client Version is 2.5.360133.0226
QSG_RENDER_LOOP is
XDG_CURRENT_DESKTOP = XFCE; GDMSESSION = xfce
Graphics Card Info:: 00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 620 (rev 07)
Zoom package arch is 64bit, runing OS arch is x86_64
AppIconMgr::systemDesktopName log Desktop Name: xfce
qt.scenegraph.general: QSG: basic render loop
qt.scenegraph.general: Using sg animation driver
libpng warning: iCCP: known incorrect sRGB profile
qt.scenegraph.general: texture atlas dimensions: 1024x512

没错,第5行,第10行:


zoom started.

Zoom package arch is 64bit, runing OS arch is x86_64


进一步加深了瞩目与zoom的血缘关系。

这个运行是正确的,看图:

在这里插入图片描述

登录,完全正常使用。

在这里插入图片描述


0x05 安装(part B)

不知道你是否发现了一个事实:

我没有安装那些瞩目依赖的Nvidia包,但是瞩目却能正常使用!

现在手动安装。先把包里的opt里的zhumu文件夹复制到/opt/

cp -r ./opt/zhumu /opt/

然后用MenuLibre编辑一个desktop文件,不多叙述了。

在这里插入图片描述

在menu里启动,登录,正常使用。


0x06 继续探索

为此,我下载了zoom。PS:人家本来就有Arch安装包,根本不用debtap。

解压。

tar xvf zoom_x86_64.pkg.tar.xz

然后对比一下文件名。

ls ./zhumuExtracted/opt/zhumu/ > 1.txt
ls ./zoomExtracted/opt/zoom/ > 2.txt
diff 1.txt 2.txt

diff 如下:

6a7
> Embedded.properties
7a9
> getbssid.sh
11a14
> json
22a26
> libmpg123.so
103a108,109
> meeting_chat_chime.pcm
> meeting_raisehand_chime.pcm
121d126
122a128,129
> root_cert_zpbxcacert.pem
> sip
128,131c135,138
---
> zoom
> ZoomLauncher
> zoomlinux
> zoom.sh
133d139

注意这几项:

128,131c135,138
---
> zoom
> ZoomLauncher
> zoomlinux
> zoom.sh

不就是改个名嘛~~~(PS:还有把脚本的变量名改一下)


界面对比

看一组图。

在这里插入图片描述登录界面,左边Zoom右边瞩目。(瞩目把被和谐的Google和Facebook登录选项去掉了)

在这里插入图片描述SSO 登录,左边Zoom右边瞩目。

在这里插入图片描述主界面,左边Zoom右边瞩目。(PS: Schedule 图标上的数字都是19)

在这里插入图片描述设置。瞩目(右边)用的好像是老版本的zoom,前几年我用的zoom的界面和今天的瞩目一模一样。两个设置的项目和内容是相同的,默认的秒数也都是10.






  • 点赞



  • 收藏



  • 分享




    • 文章举报






felixtangentwang
发布了6 篇原创文章 · 获赞 0 · 访问量 59
私信

关注

推荐阅读
  • 2016 linux发行版排行_灵越7590 安装 linux (manjarognome)
    RT之前做了一次灵越7590黑苹果炒作业的文章,希望能够分享给更多不想折腾的人。kawauso:教你如何给灵越7590黑苹果抄作业​zhuanlan.z ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • 使用freemaker生成Java代码的步骤及示例代码
    本文介绍了使用freemaker这个jar包生成Java代码的步骤,通过提前编辑好的模板,可以避免写重复代码。首先需要在springboot的pom.xml文件中加入freemaker的依赖包。然后编写模板,定义要生成的Java类的属性和方法。最后编写生成代码的类,通过加载模板文件和数据模型,生成Java代码文件。本文提供了示例代码,并展示了文件目录结构。 ... [详细]
  • docker安装到基本使用
    记录docker概念,安装及入门日常使用Docker安装查看官方文档,在"Debian上安装Docker",其他平台在"这里查 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • 本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • 本文介绍了一种轻巧方便的工具——集算器,通过使用集算器可以将文本日志变成结构化数据,然后可以使用SQL式查询。集算器利用集算语言的优点,将日志内容结构化为数据表结构,SPL支持直接对结构化的文件进行SQL查询,不再需要安装配置第三方数据库软件。本文还详细介绍了具体的实施过程。 ... [详细]
author-avatar
孤狼舔血_347
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有