<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>看看影音 on Lucien's Blog</title><link>https://www.lucien116.com/tags/%E7%9C%8B%E7%9C%8B%E5%BD%B1%E9%9F%B3/</link><description>Recent content in 看看影音 on Lucien's Blog</description><generator>Hugo</generator><language>zh-Hans</language><lastBuildDate>Wed, 21 Sep 2016 16:51:40 +0000</lastBuildDate><atom:link href="https://www.lucien116.com/tags/%E7%9C%8B%E7%9C%8B%E5%BD%B1%E9%9F%B3/feed.xml" rel="self" type="application/rss+xml"/><item><title>看看影音恶意挖矿行为分析</title><link>https://www.lucien116.com/archives/144/</link><pubDate>Wed, 21 Sep 2016 16:51:40 +0000</pubDate><guid isPermaLink="false">http://www.lucien116.com/?p=144</guid><description>&lt;p&gt;&lt;strong&gt;近日，部分用户出现电脑GPU占用率高，电脑温度升高，风扇噪声增大等问题。具体现象为电脑中C盘可使用空间骤降，且在C盘Ethash文件夹内，发现存在大量的1G左右的垃圾文件；电脑闲置状态时，风扇转速增快，电脑发热增加，GPU使用率达到100%。非闲置状态时，恢复正常。经过远程调试分析发现是看看影音在后台偷偷利用用户电脑的运算资源进行以太币（一种类似比特币的数字货币）挖矿导致。&lt;/strong&gt; &lt;a href="http://image.3001.net/images/20160914/14738405757402.jpg"&gt;&lt;img alt="1.jpg" loading="lazy" src="http://image.3001.net/images/20160914/14738405757402.jpg!small"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[看看影音的版本和公司信息]&lt;/p&gt;
&lt;p&gt;安装看看影音后，会注册组件%APP_DATA%\Video Legend\RBC\Program\RBCShellExternal.dll到注册表的explorer加载项，从而开机即可加载运行，然后通过lua脚本控制，下载挖矿模块到本地利用GPU挖矿，整个流程如下图所示：&lt;/p&gt;
&lt;p&gt;&lt;a href="http://image.3001.net/images/20160914/14738405756087.png"&gt;&lt;img alt="2.png" loading="lazy" src="http://image.3001.net/images/20160914/14738405756087.png!small"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[看看影音挖矿行为整体流程简图]&lt;/p&gt;
&lt;h2 id="rbcshellexternaldll-分析"&gt;&lt;strong&gt;RBCShellExternal.dll&lt;/strong&gt; &lt;strong&gt;分析&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;该组件是一个商业功能模块，RBC是Remote Bussiness Control的缩写。顾名思义，这个模块可以通过远程配置来控制用户电脑上运行不同的模块，比如升级、修复、广告弹窗、推广安装等，也包括挖矿。&lt;/p&gt;
&lt;p&gt;RBCShellExternal.dll会通过rundll32.exe来加载模块RBCEntry.dll，并通过命令行参数来检测调试工具。&lt;/p&gt;
&lt;p&gt;&lt;a href="http://image.3001.net/images/20160914/14738405757070.jpg"&gt;&lt;img alt="3.jpg" loading="lazy" src="http://image.3001.net/images/20160914/14738405757070.jpg!small"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[加载RBCEntry.dll的命令行]&lt;/p&gt;
&lt;p&gt;完整命令行如下：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;rundll32.exe&amp;#34;%APP_DATA%\Video Legend\RBC\Program\RbcEntry.dll&amp;#34;, Control_RunDLL/thread /src ..\\..\\Xar\\Rbc.xar /killex /priority 0 /checktime /delay 1 /idle%d /busy %d  /debug /bkwndlist&amp;#34;Microsoft Visual;HTTPAnalyzer;WinDBG;OllyDebug;fiddler;SmartSniff;\t\t\t\t\t\t\t\tSpy++;Spy;ATL/MFC;任务管理器;DebugView;Process Explorer;File Monitor;RegistryMonitor;Wireshark;OllyICE;OllyDBG;Sysinternals&amp;#34; /bkprocesslist&amp;#34;fiddler.exe;windbg.exe;devenv.exe;taskmgr.exe;wireshark.exe;\t\t\t\t\t\t\t\t\thttpanalyzer.exe;smsniff.exe;filemon.exe;regmon.exe;procmon.exe;ollydbg.exe;softice.exe;cis.exe;\t\t\t\t\t\t\t\t\ttasklist.exe;procexp.exe;ollyice.exe;processspy.exe;spyxx.exe;winspy.exe;cv.exe&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;参数/src指定了要加载的lua脚本模块(已打包成xar格式)，通过lua脚本来控制任务；参数/bkwndlist指定要查找的窗口标题，参数/bkprocesslist指定要查找的进程名，一旦枚举到指定的窗口或进程名，立刻结束进程，防止被用户发现。&lt;/p&gt;
&lt;h2 id="lua-脚本分析"&gt;&lt;strong&gt;LUA&lt;/strong&gt; &lt;strong&gt;脚本分析&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;RbcEntry.dll封装了LUA引擎，加载后首先解析Rbc.xar，然后调用其中的onload.lua，启动整个脚本。Rbc.xar是任务调度模块，核心功能是从云端下载任务控制脚本并加载运行。&lt;/p&gt;
&lt;p&gt;Rbc.xar解包后目录树如下：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Rbc.xar&lt;/p&gt;
&lt;p&gt;│&lt;/p&gt;
&lt;p&gt;└─layout&lt;/p&gt;
&lt;p&gt;│  onload.lua&lt;/p&gt;
&lt;p&gt;│&lt;/p&gt;
&lt;p&gt;└─luacode&lt;/p&gt;
&lt;p&gt;kkp.curl.lua&lt;/p&gt;
&lt;p&gt;rbc.base.lua&lt;/p&gt;
&lt;p&gt;rbc.eventsource.lua&lt;/p&gt;
&lt;p&gt;rbc.filter.lua&lt;/p&gt;
&lt;p&gt;rbc.helper.lua&lt;/p&gt;
&lt;p&gt;rbc.lua&lt;/p&gt;
&lt;p&gt;rbc.scheduler.lua&lt;/p&gt;
&lt;p&gt;rbc.setting.lua&lt;/p&gt;
&lt;p&gt;rbc.task.lua&lt;/p&gt;
&lt;p&gt;rbc.version.lua&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;onload.lua主要功能是加载各个脚本，代码如下：&lt;/p&gt;
&lt;p&gt;&lt;a href="http://image.3001.net/images/20160914/14738405755036.png"&gt;&lt;img alt="4.png" loading="lazy" src="http://image.3001.net/images/20160914/14738405755036.png!small"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[onLoad.lua加载脚本]&lt;/p&gt;
&lt;p&gt;最后加载rbc.scheduler.lua里面包含了远程配置的任务脚本url：http:/***.kankan.com/rbc/taskschedule_v1.2.dat&lt;/p&gt;
&lt;p&gt;&lt;a href="http://image.3001.net/images/20160914/1473840576444.jpg"&gt;&lt;img alt="5.jpg" loading="lazy" src="http://image.3001.net/images/20160914/1473840576444.jpg!small"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[rbc.scheduler.lua调度脚本]&lt;/p&gt;
&lt;p&gt;从各个函数名称可以看出，该脚本是主要功能是调度任务的运行。而脚本taskschedule_v1.2.dat则是真正的任务脚本。&lt;/p&gt;
&lt;p&gt;taskschedule_v1.2.dat中配置了各种任务的参数，其中挖矿任务的参数配置块如下：&lt;/p&gt;
&lt;p&gt;&lt;a href="http://image.3001.net/images/20160914/14738405761251.jpg"&gt;&lt;img alt="6.jpg" loading="lazy" src="http://image.3001.net/images/20160914/14738405761251.jpg!small"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[挖矿任务脚本的参数配置块]&lt;/p&gt;
&lt;p&gt;其中link就是该任务模块的下载地址，通常是xar包；frequency是执行频率；googleid和cnzzid是活跃统计标识。configurl是脚本里面使用的远程配置，主要是挖矿DLL模块的下载地址和MD5，具体内容请看下文。&lt;/p&gt;
&lt;p&gt;任务模块下载后保存在%APP_DATA%\VideoLegend\RBC\Task目录下：&lt;/p&gt;
&lt;p&gt;&lt;a href="http://image.3001.net/images/20160914/1473840576321.png"&gt;&lt;img alt="7.png" loading="lazy" src="http://image.3001.net/images/20160914/1473840576321.png!small"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[%APP_DATA%\VideoLegend\RBC\Task下生成的各任务目录]&lt;/p&gt;
&lt;p&gt;整理所有任务URL，如下：&lt;/p&gt;</description></item></channel></rss>