<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>Hi<div><br></div><div>The "docer" user-agent was bugging me for a while . Please find below detector for the WPS office traffic (Windows + Android). The application is chatty and promotes ads heavily within the app itself. Pcaps are available, please let me know.</div><div><br></div><div><div><font face="Courier New, sans-serif" size="2">--[[</font></div><div><font face="Courier New, sans-serif" size="2">detection_name: wps_office</font></div><div><font face="Courier New, sans-serif" size="2">version: 1</font></div><div><font face="Courier New, sans-serif" size="2">description: A Chinese office suite known as WPS/Kingsoft. For further testing apps can be downloaded from:</font></div><div><font face="Courier New, sans-serif" size="2">        Windows --> wdl1[dot]cache[dot]wps[dot]cn/wps/download/W.P.S.5155.19.552.exe</font></div><div><font face="Courier New, sans-serif" size="2">        Android --> kad[dot]www[dot]wps[dot]cn/wps/download/android/kingsoftoffice_2052/moffice_cn00563.apk</font></div><div><font face="Courier New, sans-serif" size="2">        Linux   --> wdl1[dot]cache[dot]wps[dot]cn/wps/download/Linux/unstable/wps-office_8.1.0.3724~b1p2_i386.deb</font></div><div><font face="Courier New, sans-serif" size="2">--]]</font></div><div><font face="Courier New, sans-serif" size="2"><br></font></div><div><font face="Courier New, sans-serif" size="2">require "DetectorCommon"</font></div><div><font face="Courier New, sans-serif" size="2">local DC = DetectorCommon</font></div><div><font face="Courier New, sans-serif" size="2"><br></font></div><div><font face="Courier New, sans-serif" size="2">local proto = DC.ipproto.tcp;</font></div><div><font face="Courier New, sans-serif" size="2">DetectorPackageInfo = {</font></div><div><font face="Courier New, sans-serif" size="2">        name = "wps_office",</font></div><div><font face="Courier New, sans-serif" size="2">        proto = proto,</font></div><div><font face="Courier New, sans-serif" size="2">        server = {</font></div><div><font face="Courier New, sans-serif" size="2">                init = 'DetectorInit',</font></div><div><font face="Courier New, sans-serif" size="2">                clean = 'DetectorClean',</font></div><div><font face="Courier New, sans-serif" size="2">                minimum_matches = 1</font></div><div><font face="Courier New, sans-serif" size="2">        }</font></div><div><font face="Courier New, sans-serif" size="2">}</font></div><div><font face="Courier New, sans-serif" size="2"><br></font></div><div><font face="Courier New, sans-serif" size="2">function DetectorInit(detectorInstance)</font></div><div><font face="Courier New, sans-serif" size="2"><br></font></div><div><font face="Courier New, sans-serif" size="2">        gDetector = detectorInstance;</font></div><div><font face="Courier New, sans-serif" size="2">        gAppId = gDetector:open_createApp("wps_office");</font></div><div><font face="Courier New, sans-serif" size="2"><br></font></div><div><font face="Courier New, sans-serif" size="2">        -- Observed with Windows versions.</font></div><div><font face="Courier New, sans-serif" size="2">        if gDetector.addHttpPattern then</font></div><div><font face="Courier New, sans-serif" size="2">                gDetector:addHttpPattern(2, 5, 0, gAppId, 0, 0, 0, "docer", gAppId);</font></div><div><font face="Courier New, sans-serif" size="2">                gDetector:addHttpPattern(2, 5, 0, gAppId, 0, 0, 0, "Update.WPS", gAppId);</font></div><div><font face="Courier New, sans-serif" size="2">        end</font></div><div><font face="Courier New, sans-serif" size="2"><br></font></div><div><font face="Courier New, sans-serif" size="2">        -- While the domain wps.cn is common between app versions, the Android version did not use any of the above User-Agents.</font></div><div><font face="Courier New, sans-serif" size="2">        if gDetector.addAppUrl then</font></div><div><font face="Courier New, sans-serif" size="2">                gDetector:addAppUrl(0, 0, 0, gAppId, 0, "wps.cn", "/", "http:", "", gAppId);</font></div><div><font face="Courier New, sans-serif" size="2">        end</font></div><div><font face="Courier New, sans-serif" size="2"><br></font></div><div><font face="Courier New, sans-serif" size="2">        if gDetector.addSSLCnamePattern then</font></div><div><font face="Courier New, sans-serif" size="2">                gDetector:addSSLCnamePattern(0, gAppId, "wps.cn");</font></div><div><font face="Courier New, sans-serif" size="2">        end</font></div><div><font face="Courier New, sans-serif" size="2"><br></font></div><div><font face="Courier New, sans-serif" size="2">        return gDetector;</font></div><div><font face="Courier New, sans-serif" size="2">end</font></div><div><font face="Courier New, sans-serif" size="2"><br></font></div><div><font face="Courier New, sans-serif" size="2">function DetectorClean()</font></div><div><font face="Courier New, sans-serif" size="2">end</font></div></div><div><br></div><div>Thanks.</div><div>YM</div>                                           </div></body>
</html>