1
0
DavidZhang73.github.io/inspur-ip-guard-uninstallation/index.html

559 lines
26 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="zh-CN" class="loading">
<head>
<!-- hexo-inject:begin --><!-- hexo-inject:end --><meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>卸载浪潮安装的 IP-GUARD 监控软件 - Blog</title>
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
<meta name="google" content="notranslate" />
<meta name="keywords" content="Developer, Python, C++, JavaScript, Java,">
<meta name="description" content="DavidZ&#39;s Blog,
原创发表于 DavidZ Blog遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接及本声明。
¶前言
屋漏更遭连夜雨,船迟又遇打头风。
刚刚处理完 Docker 里面,">
<meta name="author" content="DavidZ">
<link rel="alternative" href="atom.xml" title="Blog" type="application/atom+xml">
<link rel="icon" href="/img/favicon.png">
<link rel="stylesheet" href="//at.alicdn.com/t/font_1429596_nzgqgvnmkjb.css">
<link rel="stylesheet" href="//cdn.bootcss.com/animate.css/3.7.2/animate.min.css">
<link rel="stylesheet" href="//cdn.bootcss.com/social-share.js/1.0.16/css/share.min.css">
<link rel="stylesheet" href="//cdn.bootcss.com/codemirror/5.48.4/codemirror.min.css">
<link rel="stylesheet" href="//cdn.bootcss.com/codemirror/5.48.4/theme/dracula.css">
<link rel="stylesheet" href="/css/obsidian.css">
<link rel="stylesheet" href="/css/ball-atom.min.css">
<meta name="generator" content="Hexo 4.2.0"><!-- hexo-inject:begin --><!-- hexo-inject:end --></head>
<body class="loading">
<!-- hexo-inject:begin --><!-- hexo-inject:end --><div class="loader">
<div class="la-ball-atom la-2x">
<div></div>
<div></div>
<div></div>
<div></div>
</div>
</div>
<span id="config-title" style="display:none">Blog</span>
<div id="loader"></div>
<div id="single">
<div class="scrollbar gradient-bg-rev"></div>
<div id="top" style="display: block;">
<div class="bar" style="width: 0;"></div>
<div class="navigation animated fadeIn fast delay-1s">
<img id="home-icon" class="icon-home" src="/img/favicon.png" alt="" data-url="https://blog.davidz.cn">
<div id="play-icon" title="Play/Pause" class="iconfont icon-play"></div>
<h3 class="subtitle">卸载浪潮安装的 IP-GUARD 监控软件</h3>
<div class="social">
<!-- <div class="like-icon">-->
<!-- <a href="javascript:;" class="likeThis active"><span class="icon-like"></span><span class="count">76</span></a>-->
<!-- </div>-->
<div>
<div class="share">
<a href="javascript:;" class="iconfont icon-share1"></a>
<div class="share-component-cc" data-disabled="facebook,douban,linkedin,diandian,tencent,google"></div>
</div>
</div>
</div>
</div>
</div>
<div class="section">
<div class=article-header-wrapper>
<div class="article-header">
<div class="article-cover animated fadeIn" style="
animation-delay: 600ms;
animation-duration: 1.2s;
background-image:
radial-gradient(ellipse closest-side, rgba(0, 0, 0, 0.65), #100e17),
url(https://davidz-blog.oss-cn-beijing.aliyuncs.com/img/langchao-1599636307.jpg) ">
</div>
<div class="else">
<p class="animated fadeInDown">
<a href="/categories/Internship"><b>
</b>INTERNSHIP<b></b></a>
二月 11, 2020
</p>
<h3 class="post-title animated fadeInDown"><a href="/inspur-ip-guard-uninstallation/" title="卸载浪潮安装的 IP-GUARD 监控软件" class="">卸载浪潮安装的 IP-GUARD 监控软件</a>
</h3>
<p class="post-count animated fadeInDown">
<span>
<b class="iconfont icon-text2"></b> <i>文章字数</i>
6.2k
</span>
<span>
<b class="iconfont icon-timer__s"></b> <i>阅读约需</i>
6 mins.
</span>
<span id="busuanzi_container_page_pv">
<b class="iconfont icon-read"></b> <i>阅读次数</i>
<span id="busuanzi_value_page_pv">0</span>
</span>
</p>
<ul class="animated fadeInDown post-tags-list" itemprop="keywords"><li class="animated fadeInDown post-tags-list-item"><a class="animated fadeInDown post-tags-list-link" href="/tags/Windows/" rel="tag">Windows</a></li></ul>
</div>
</div>
</div>
<div class="screen-gradient-after">
<div class="screen-gradient-content">
<div class="screen-gradient-content-inside">
<div class="bold-underline-links screen-gradient-sponsor">
<p>
<span class="animated fadeIn delay-1s"></span>
</p>
</div>
</div>
</div>
</div>
<div class="article">
<div class='main'>
<div class="content markdown animated fadeIn">
<blockquote>
<p>原创发表于 <a href="https://blog.davidz.cn">DavidZ Blog</a>,遵循 <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode" target="_blank" rel="noopener">CC 4.0 BY-NC-SA</a> 版权协议,转载请附上原文出处链接及本声明。</p>
</blockquote>
<h2 id="前言"><a class="header-anchor" href="#前言"></a>前言</h2>
<blockquote>
<p>屋漏更遭连夜雨,船迟又遇打头风。</p>
</blockquote>
<p>刚刚处理完 Docker 里面的“病毒”,又发现自己的笔记本被安装了监控软件,身后一阵凉风。</p>
<h2 id="发现"><a class="header-anchor" href="#发现"></a>发现</h2>
<blockquote>
<p>事发突然,因为影响我开发,所以也没有来得及截图。</p>
</blockquote>
<p>为了使用 WSL2 里面的 Docker我加入了 <code>Windows 预览体验计划 - 慢</code>,把系统升级到了 Windows 10 2004。结果怪事就出现了——基本上所有的命令行都会在执行前显示一个错误。</p>
<pre><code class="language-shell">ANOMALY: use of REX.w is meaningless (default operand size is 64)
</code></pre>
<p>从来没见过这个错误,我进入安全模式发现竟然也会报错,在百度 + 谷歌 + stackoverflow 依然无任何有效答案后,陷入了绝望😢。</p>
<p>本来呢,这个只是报个错,并不是什么大问题(<s>我本身有一点强迫症,不能忍</s>),但是 JetBrains 全家桶全部报错找不到 GitCLion 报错找不到 VS。这就严重影响我开发了。Windows 预览体验计划还非常坑,不能回退,于是我又尝试了<code>Windows 预览体验计划 - 快</code>,结果问题依旧。</p>
<p>终于我突发奇想在 Github 上搜了一下(<s>不是到我当时咋想的,病急乱投医把</s>),发现了一个叫<a href="https://github.com/martona/mhook" target="_blank" rel="noopener">mhook</a>的项目,在其类库代码中发现了<a href="https://github.com/martona/mhook/blob/master/disasm-lib/disasm_x86.c#L1749" target="_blank" rel="noopener">disasm_x86</a>这个文件,在第 1749 行发现了错误提示的源代码。</p>
<pre><code class="language-c">if (!SuppressErrors) printf(&quot;[0x%08I64X] ANOMALY: use of REX.w is meaningless (default operand size is 64)\n&quot;, VIRTUAL_ADDRESS);
</code></pre>
<p>现在我大体知道了这个问题产生的原因。</p>
<ol>
<li>disasm 是一个 hook钩子可以注入到别的程序。</li>
<li>更新系统后,这个钩子库和新的系统发生了冲突,于是报错,理论上所有被注入的程序都会报错。</li>
<li>这个钩子应该是个<strong>监控软件</strong>或者病毒木马之类的。</li>
</ol>
<p>我想起了在浪潮实习的时候,我的老师给我说浪潮作为面向政府国企的公司,对内部信息安全非常重视,所以会在员工的电脑里面安装监控软件,监控员工的一举一动,我当时感觉应该不会对实习生下手吧,想不到。。。回想起来,应该是入职浪潮的时候安装的那个上网小助手吧。</p>
<p>于是我下载了<a href="https://www.freefixer.com/" target="_blank" rel="noopener">freefixer</a>,查找注入的钩子,果不出其然,发现了在系统中安装的<a href="http://www.ip-guard.net/" target="_blank" rel="noopener">IP-GUARD</a>。按照官网的介绍,监控能力之强,范围之广令人汗颜,从网络到文件,邮件,应用等等,简直神通广大。</p>
<h2 id="处理"><a class="header-anchor" href="#处理"></a>处理</h2>
<p>我已经离职多日,第一时间肯定是卸载这个监控软件,直接删除文件肯定不行,结果 freefixer 也卸不掉(卸载完重启又出现),没有办法,只能到 WinPE 中手动逐一筛查,删除。</p>
<p>基本步骤如下</p>
<h3 id="1-进入-WinPE"><a class="header-anchor" href="#1-进入-WinPE"></a>1. 进入 WinPE</h3>
<blockquote>
<p>安全模式也会打开例如 explorer.exe 这样的系统进程,而监控软件也注入到了其中,所以安装全模式也不能删除</p>
</blockquote>
<p>这里免费帮<a href="https://www.itsk.com/forum.php?mod=viewthread&amp;tid=404842" target="_blank" rel="noopener">优启通</a>做个广告。</p>
<p>下载上面这个 PE 安装到本地或者 U 盘 都行,然后重启进入 WinPE 就好了。</p>
<h3 id="2-到系统盘中删除对应的所有文件"><a class="header-anchor" href="#2-到系统盘中删除对应的所有文件"></a>2. 到系统盘中删除对应的所有文件</h3>
<p>想不到这个公司还是很良心的,所有程序文件都签了名,在 freefixer 上查得到,叫<a href="https://www.freefixer.com/library/publisher/t.e.c%20solutions%20(g.z.)limited/" target="_blank" rel="noopener">T.E.C Solutions (G.Z.)Limited</a></p>
<blockquote>
<p>下面这些文件都是在 freefixer 上有记录的文件,可以作为检测 IP-GUARD 是否安装的标志。</p>
</blockquote>
<table>
<thead>
<tr>
<th style="text-align:center">File Name</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:center"><a href="https://www.freefixer.com/library/file/ONacAgent.exe-211770/" target="_blank" rel="noopener">ONacAgent.exe</a></td>
</tr>
<tr>
<td style="text-align:center"><a href="https://www.freefixer.com/library/file/TIjtdrvd64.dll-261434/" target="_blank" rel="noopener">TIjtdrvd64.dll</a></td>
</tr>
<tr>
<td style="text-align:center"><a href="https://www.freefixer.com/library/file/thooksv364.dll-261436/" target="_blank" rel="noopener">thooksv364.dll</a></td>
</tr>
<tr>
<td style="text-align:center"><a href="https://www.freefixer.com/library/file/ONacAgent.exe-206855/" target="_blank" rel="noopener">ONacAgent.exe</a></td>
</tr>
<tr>
<td style="text-align:center"><a href="https://www.freefixer.com/library/file/winhadnt64.dll-95360/" target="_blank" rel="noopener">winhadnt64.dll</a></td>
</tr>
<tr>
<td style="text-align:center"><a href="https://www.freefixer.com/library/file/DtFrame32.dll-206842/" target="_blank" rel="noopener">DtFrame32.dll</a></td>
</tr>
<tr>
<td style="text-align:center"><a href="https://www.freefixer.com/library/file/winrdgv3.exe-122257/" target="_blank" rel="noopener">winrdgv3.exe</a></td>
</tr>
<tr>
<td style="text-align:center"><a href="https://www.freefixer.com/library/file/winrdlv3.exe-177929/" target="_blank" rel="noopener">winrdlv3.exe</a></td>
</tr>
<tr>
<td style="text-align:center"><a href="https://www.freefixer.com/library/file/winhafnt64.dll-211772/" target="_blank" rel="noopener">winhafnt64.dll</a></td>
</tr>
<tr>
<td style="text-align:center"><a href="https://www.freefixer.com/library/file/TIjtdrvd64.dll-211775/" target="_blank" rel="noopener">TIjtdrvd64.dll</a></td>
</tr>
<tr>
<td style="text-align:center"><a href="https://www.freefixer.com/library/file/ipnpf.sys-225950/" target="_blank" rel="noopener">ipnpf.sys</a></td>
</tr>
<tr>
<td style="text-align:center"><a href="https://www.freefixer.com/library/file/thooksv364.dll-211779/" target="_blank" rel="noopener">thooksv364.dll</a></td>
</tr>
<tr>
<td style="text-align:center"><a href="https://www.freefixer.com/library/file/winhadnt.dll-239634/" target="_blank" rel="noopener">winhadnt.dll</a></td>
</tr>
</tbody>
</table>
<p>我们可以利用 Windows Explorer 的按公司分组,快速找到所有相关文件。</p>
<ol>
<li>打开系统盘(这里假设是 C 盘),右键 - 分组依据 - 更多 - 勾选 公司 - 确定。</li>
<li>右键 - 分组依据 - 公司。</li>
<li>查看 - 选项 - 查看 - 应用到文件夹。</li>
<li>在下面的路径中找到所有公司为<code>T.E.C Solutions (G.Z.)Limited</code>的文件,删除。</li>
</ol>
<pre><code class="language-cmd">C:\Program Files\Common Files\System
C:\Program Files (x86)\Common Files\System
C:\WINDOWS
C:\WINDOWS\System32
C:\WINDOWS\System32\drivers
C:\WINDOWS\SysWOW64
C:\WINDOWS\SysWOW64\drivers
</code></pre>
<h3 id="3-重启"><a class="header-anchor" href="#3-重启"></a>3. 重启</h3>
<p>再次运行 freefixer 检查是否删干净了。</p>
<h2 id="想法"><a class="header-anchor" href="#想法"></a>想法</h2>
<p>像浪潮这样主要客户是政府,国企的企业,确实需要证明其安全能力,在他的员工的电脑上安装监控软件确实是有效措施,我能够理解。但是,这么大一企业,安装监控时没有主动告知(至少应该告知监控我的哪些行为),毕竟是我自己私人的笔记本,不是企业配发的,也没让我签字。离职时就算知道了也找不到卸载方法(那个上网小助手也是我进入安全模式手动删除的,因为正常卸载需要密码,我嫌麻烦就自己删了),所有面向实习生的文档教程都只有安装方法,我不知道是不是因为实习生的缘故,全程只有我的那个老师给我口头说了一声,我现在感觉自己受到了欺骗,个人隐私受到了严重侵犯,很难受,同时也非常生气,可是又很无力,因为这件事情可大可小,从网上的评论来看在各大企业中都很正常。</p>
<p>希望这样的事情以后不会发生了吧。🙏</p>
<!--[if lt IE 9]><script>document.createElement('audio');</script><![endif]-->
<audio id="audio" loop="1" preload="auto" controls="controls"
data-autoplay="false">
<source type="audio/mpeg" src="https://davidz-blog.oss-cn-beijing.aliyuncs.com/music/莫文蔚 - 阴天.mp3">
</audio>
<div class="post-nav">
<hr>
<div class="post-nav-item">上一篇:<a href="/write-latex-report-with-markdown/" rel="prev"
title="使用 Markdown 编写基于 Latex 的报告">使用 Markdown 编写基于 Latex 的报告
</a></div>
<div class="post-nav-item">下一篇:<a href="/kinsing-virus/" rel="next"
title=""寄生" Docker 的病毒 - Kinsing">"寄生"于 Docker 的病毒 - Kinsing</a></div>
</div>
<div id='gitalk-container' class="comment link"
data-ae='true'
data-ci='489076c5dd3f5ba13f67'
data-cs='d6e3b245787b0b74d0dbe2639ef87f452a401194'
data-r='blog.davidz.cn'
data-o='DavidZhang73'
data-a='DavidZhang73'
data-d=''
>留言</div>
</div>
<div class="sidebar">
<div class="box animated fadeInRight">
<div class="subbox">
<img src="https://davidz-blog.oss-cn-beijing.aliyuncs.com/img/2019-1599483796.jpg" height=300 width=300></img>
<p>DavidZ</p>
<span>凡事都要留几分</span>
<dl>
<dd><a href="https://github.com/DavidZhang73" target="_blank"><span
class=" iconfont icon-github"></span></a></dd>
<dd><a href="https://twitter.com/david731998" target="_blank"><span
class=" iconfont icon-twitter"></span></a></dd>
<dd><a href="https://stackoverflow.com/users/12693553/davidz" target="_blank"><span
class=" iconfont icon-stack-overflow"></span></a></dd>
</dl>
</div>
<ul>
<li><a href="/">15 <p>文章</p></a></li>
<li><a href="/categories">8 <p>分类</p></a></li>
<li><a href="/tags">15 <p>标签</p></a></li>
</ul>
</div>
<div class="box sticky animated fadeInRight faster">
<div id="toc" class="subbox">
<h4>目录</h4>
<ol class="toc"><li class="toc-item toc-level-2"><a class="toc-link" href="#前言"><span class="toc-number">1.</span> <span class="toc-text">¶前言</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#发现"><span class="toc-number">2.</span> <span class="toc-text">¶发现</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#处理"><span class="toc-number">3.</span> <span class="toc-text">¶处理</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#1-进入-WinPE"><span class="toc-number">3.1.</span> <span class="toc-text">¶1. 进入 WinPE</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#2-到系统盘中删除对应的所有文件"><span class="toc-number">3.2.</span> <span class="toc-text">¶2. 到系统盘中删除对应的所有文件</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#3-重启"><span class="toc-number">3.3.</span> <span class="toc-text">¶3. 重启</span></a></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#想法"><span class="toc-number">4.</span> <span class="toc-text">¶想法</span></a></li></ol>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div id="back-to-top" class="animated fadeIn faster">
<div class="flow"></div>
<span class="percentage animated fadeIn faster">0%</span>
<span class="iconfont icon-top02 animated fadeIn faster"></span>
</div><!-- hexo-inject:begin --><!-- hexo-inject:end -->
</body>
<footer>
<p class="copyright" id="copyright">
&copy; 2021
<span class="gradient-text">
DavidZ
</span>.
Powered by <a href="http://hexo.io/" title="Hexo" target="_blank" rel="noopener">Hexo</a>
Theme
<span class="gradient-text">
<a href="https://github.com/TriDiamond/hexo-theme-obsidian" title="Obsidian" target="_blank" rel="noopener">Obsidian</a>
</span>
<small><a href="https://github.com/TriDiamond/hexo-theme-obsidian/blob/master/CHANGELOG.md" title="v1.4.5" target="_blank" rel="noopener">v1.4.5</a></small>
</p>
</footer>
<script type="text/javascript" src="https://cdn.bootcss.com/mathjax/2.7.7/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<script>
MathJax.Hub.Config({
"HTML-CSS": {
preferredFont: "TeX",
availableFonts: ["STIX", "TeX"],
linebreaks: {
automatic: true
},
EqnChunk: (MathJax.Hub.Browser.isMobile ? 10 : 50)
},
tex2jax: {
inlineMath: [
["$", "$"],
["\\(", "\\)"]
],
processEscapes: true,
ignoreClass: "tex2jax_ignore|dno",
skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code']
},
TeX: {
noUndefined: {
attributes: {
mathcolor: "red",
mathbackground: "#FFEEEE",
mathsize: "90%"
}
},
Macros: {
href: "{}"
}
},
messageStyle: "none"
});
</script>
<script>
function initialMathJax() {
MathJax.Hub.Queue(function () {
var all = MathJax.Hub.getAllJax(),
i;
// console.log(all);
for (i = 0; i < all.length; i += 1) {
all[i].SourceElement().parentNode.className += ' has-jax';
}
});
}
function reprocessMathJax() {
if (typeof MathJax !== 'undefined') {
MathJax.Hub.Queue(["Typeset", MathJax.Hub]);
}
}
</script>
<link rel="stylesheet" href="//cdn.bootcss.com/gitalk/1.6.2/gitalk.min.css">
<script src="//cdn.bootcss.com/gitalk/1.6.2/gitalk.min.js"></script>
<script src="//cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
<script src="/js/plugin.js"></script>
<script src="/js/obsidian.js"></script>
<script src="/js/jquery.truncate.js"></script>
<script src="/js/search.js"></script>
<script src="//cdn.bootcss.com/typed.js/2.0.10/typed.min.js"></script>
<script src="//cdn.bootcss.com/blueimp-md5/2.12.0/js/md5.min.js"></script>
<script src="//cdn.bootcss.com/social-share.js/1.0.16/js/social-share.min.js"></script>
<script src="https://cdn.bootcss.com/codemirror/5.54.0/codemirror.min.js"></script>
<script src="//cdn.bootcss.com/codemirror/5.54.0/mode/javascript/javascript.min.js"></script>
<script src="//cdn.bootcss.com/codemirror/5.54.0/mode/css/css.min.js"></script>
<script src="//cdn.bootcss.com/codemirror/5.54.0/mode/xml/xml.min.js"></script>
<script src="//cdn.bootcss.com/codemirror/5.54.0/mode/htmlmixed/htmlmixed.min.js"></script>
<script src="//cdn.bootcss.com/codemirror/5.54.0/mode/clike/clike.min.js"></script>
<script src="//cdn.bootcss.com/codemirror/5.54.0/mode/php/php.min.js"></script>
<script src="//cdn.bootcss.com/codemirror/5.54.0/mode/shell/shell.min.js"></script>
<script src="//cdn.bootcss.com/codemirror/5.54.0/mode/python/python.min.js"></script>
<script src="//cdn.bootcss.com/codemirror/5.54.0/mode/cmake/cmake.min.js"></script>
<script src="//cdn.bootcss.com/codemirror/5.54.0/mode/powershell/powershell.min.js"></script>
<script src="//cdn.bootcss.com/codemirror/5.54.0/mode/yaml/yaml.min.js"></script>
<script src="/js/busuanzi.min.js"></script>
<script>
$(document).ready(function () {
if ($('span[id^="busuanzi_"]').length) {
initialBusuanzi();
}
});
</script>
<link rel="stylesheet" href="//cdn.bootcss.com/photoswipe/4.1.3/photoswipe.min.css">
<link rel="stylesheet" href="//cdn.bootcss.com/photoswipe/4.1.3/default-skin/default-skin.min.css">
<script src="//cdn.bootcss.com/photoswipe/4.1.3/photoswipe.min.js"></script>
<script src="//cdn.bootcss.com/photoswipe/4.1.3/photoswipe-ui-default.min.js"></script>
<!-- Root element of PhotoSwipe. Must have class pswp. -->
<div class="pswp" tabindex="-1" role="dialog" aria-hidden="true">
<!-- Background of PhotoSwipe.
It's a separate element as animating opacity is faster than rgba(). -->
<div class="pswp__bg"></div>
<!-- Slides wrapper with overflow:hidden. -->
<div class="pswp__scroll-wrap">
<!-- Container that holds slides.
PhotoSwipe keeps only 3 of them in the DOM to save memory.
Don't modify these 3 pswp__item elements, data is added later on. -->
<div class="pswp__container">
<div class="pswp__item"></div>
<div class="pswp__item"></div>
<div class="pswp__item"></div>
</div>
<!-- Default (PhotoSwipeUI_Default) interface on top of sliding area. Can be changed. -->
<div class="pswp__ui pswp__ui--hidden">
<div class="pswp__top-bar">
<!-- Controls are self-explanatory. Order can be changed. -->
<div class="pswp__counter"></div>
<button class="pswp__button pswp__button--close" title="Close (Esc)"></button>
<button class="pswp__button pswp__button--share" title="Share"></button>
<button class="pswp__button pswp__button--fs" title="Toggle fullscreen"></button>
<button class="pswp__button pswp__button--zoom" title="Zoom in/out"></button>
<!-- Preloader demo http://codepen.io/dimsemenov/pen/yyBWoR -->
<!-- element will get class pswp__preloader--active when preloader is running -->
<div class="pswp__preloader">
<div class="pswp__preloader__icn">
<div class="pswp__preloader__cut">
<div class="pswp__preloader__donut"></div>
</div>
</div>
</div>
</div>
<div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap">
<div class="pswp__share-tooltip"></div>
</div>
<button class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)">
</button>
<button class="pswp__button pswp__button--arrow--right" title="Next (arrow right)">
</button>
<div class="pswp__caption">
<div class="pswp__caption__center"></div>
</div>
</div>
</div>
</div>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="//www.googletagmanager.com/gtag/js?id=UA-157733505-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'UA-157733505-1');
</script>
<script>
function initialTyped() {
var typedTextEl = $('.typed-text');
if (typedTextEl && typedTextEl.length > 0) {
var typed = new Typed('.typed-text', {
strings: ['凡事都要留几分', '颜值是第一生产力'],
typeSpeed: 90,
loop: true,
loopCount: Infinity,
backSpeed: 20,
});
}
}
if ($('.article-header') && $('.article-header').length) {
$(document).ready(function () {
initialTyped();
});
}
</script>
<!-- 例:百度统计 --> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?your_code"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script>
</html>