<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'><div style="line-height: 21.2999992370605px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);">Hi,</div><div style="line-height: 21.2999992370605px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);"><br></div><div style="line-height: 21.2999992370605px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);">Since I did not find the BlueStacks app detector within the OpenAppID package, here is the code for the same detector (client_Bluestacks.lua). Any feedback (including rants :)) are welcome. Pcap can be provided if required.</div><div style="line-height: 21.2999992370605px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);"><br style="line-height: 21.2999992370605px;"></div><div style="line-height: 21.2999992370605px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);"><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">--[[</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">detection_name: BlueStacks</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">version: 1</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">description: Detector for BlueStacks (Android Emulator/App Player) application network traffic.</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">metadata: OpenAppID community</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">]]--</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;"><br style="line-height: 18.4599990844727px;"></font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">require "DetectorCommon"</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">local DC = DetectorCommon</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;"><br style="line-height: 18.4599990844727px;"></font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">gDetector = nil</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;"><br style="line-height: 18.4599990844727px;"></font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">DetectorPackageInfo = {</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">    name = 'BlueStacks',</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">    proto = DC.ipproto.tcp,</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">    client = {</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">        init = 'DetectorInit',</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">        validate = 'DetectorValidate',</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">        clean = 'DetectorClean',</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">        minimum_matches = 1</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">    }</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">}</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;"><br style="line-height: 18.4599990844727px;"></font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;"><br style="line-height: 18.4599990844727px;"></font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">function DetectorInit(detectorInstance)</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">    gDetector = detectorInstance;</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;"><br style="line-height: 18.4599990844727px;"></font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">    gAppId = gDetector:open_createApp('bluestacks');</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;"><br style="line-height: 18.4599990844727px;"></font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">    if gDetector.open_addUrlPattern then</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">        -- An attempt to differentiate BlueStacks stages</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">        gUrlPatternList = {</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">            -- BlueStacks Update</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">            gDetector:open_addUrlPattern(0, 0, gAppId, "cdn.bluestacks.com", "/updates/", "http:"),</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">            -- BlueStacks Download components</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">            gDetector:open_addUrlPattern(0, 0, gAppId, "cdn.bluestacks.com", "/downloads/", "http:"),</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">            -- BlueStacks Apps</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">            gDetector:open_addUrlPattern(0, 0, gAppId, "opasanet.appspot.com", "/op/", "http:")</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">        }</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">    end</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;"><br style="line-height: 18.4599990844727px;"></font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">    if gDetector.open_addHttpPattern then</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">        gDetector:open_addHttpPattern(2, 5, 0, gAppId, 0, 'BlueStacks');</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">        gDetector:open_addHttpPattern(2, 5, 0, gAppId, 0, "BlueStacks/");</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">    end</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;"><br style="line-height: 18.4599990844727px;"></font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">    if gDetector.open_addUrlPattern then</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">         for i,v in ipairs(gUrlPatternList) do</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">            gDetector:addAppUrl(v[1],v[2],v[3],v[4],v[5],v[6]);</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">        end</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">    end</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;"><br style="line-height: 18.4599990844727px;"></font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">    return gDetector;</font></div></div><div style="line-height: 21.2999992370605px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);"><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">end</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;"><br style="line-height: 18.4599990844727px;"></font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">function DetectorValidator()</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">    local context = {}</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">    return clientFail(context)</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">end</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;"><br style="line-height: 18.4599990844727px;"></font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">function DetectorFini()</font></div><div style="line-height: 21.2999992370605px;"><font face="Courier New, sans-serif" size="2" style="line-height: normal;">end</font></div></div><div style="line-height: 21.2999992370605px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);"><font face="Courier New, sans-serif" size="2" style="line-height: normal;"><br style="line-height: 18.4599990844727px;"></font></div><div style="line-height: 21.2999992370605px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);"><font size="3" style="line-height: normal;">Thanks.</font></div><div style="line-height: 21.2999992370605px; color: rgb(68, 68, 68); font-size: 15px; background-color: rgb(255, 255, 255);"><font size="3" style="line-height: normal;">YM</font></div>                                           </div></body>
</html>