亲,这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到-人的牌一样。所以很多小伙伴就怀疑这...
2025-08-16 0
随着国内互联网的爆发式增长,流氓软件也在不断地发展。其推广手段的不断迭代升级,反映出技术、商业与监管各方之间的复杂博弈。多数流氓软件都具备强制安装,难以卸载,捆绑推广,弹窗广告等恶意行为,通过挟持用户终端资源变现。从合作捆绑到群魔乱舞,网民的觉醒是否让流氓软件黔驴技穷了呢?并不见得,如今流氓软件也具备了“柿子挑软的捏”的特质。会尝试规避有杀软的电脑,规避访问技术论坛的技术人士,甚至规避短时间内成功卸载过流氓软件的用户。一方面我们希望源头处做好监管,一方面我们也希望每个人都能了解到流氓软件的恶行并加以规避。
近期,火绒威胁情报中心监测到名为“小蓝鸽极速卸载”软件频繁推广至用户,通过溯源发现其源头有“多标签文件管理器”、“DX强力修复”、“EchoFind 文件搜索”等软件,软件中包含的插件极其相似,分析过程中选择了其中的一个名为“DX 强力修复”的软件进行分析,分析初期发现该软件有锁屏广告,随后发现还会进行桌面弹窗推广、任务栏图标闪烁推广、直接静默安装后展示一定时间弹窗、若错过则保持安装等行为,甚至浏览器访问特定页面时额外跳转至推广页面。其推广行为都是由下发的云控配置决定,且下发的配置中包含各种规避行为,例如规避安全软件、读取浏览器历史记录匹配特定 URL 进行规避等。火绒安全产品可对上述流氓软件进行拦截查杀。
查杀图
流程图如下:
流程图
市面上可以下载该软件主要通过三个渠道,分别为联想商店、3DM 以及百度竞价推广。
多渠道推广
启动插件:“DX 强力修复”软件主进程为 dxrepair.exe,启动初期不仅初始化自身相关,创建软件窗口,还会加载并初始化推广插件或插件必要模块,随后分别执行插件主函数。
多个推广插件:插件是以独立文件的形式存储在安装目录下的 Bin 或 Plugins 文件夹下,其中推广相关插件分别有弹窗推广、锁屏推广、任务栏托盘推广、静默下载安装推广、浏览器广告等模块。其他插件例如 cache.dll 和 cachestub.dll 主要是用于云控配置的下载和分发至插件。
下图为文件名称所对应的插件功能介绍表:
推广插件列表
下图是 DLL 类插件的加载并启动的逻辑:
插件初始化并启动
下图是 PLN 类插件的加载并启动的逻辑:
查找 pln 文件并循环调用插件主函数
大致流程:该插件的主要功能为弹窗推广,通过请求云控配置获取到弹窗推广模块下载地址列表,随后通过下载地址下载不同的软件推广模块,例如 BlueDove(小蓝鸽)软件被推广方式为独立的模块进行弹窗,若想要推广 A 软件则可以将 A 软件的弹窗推广模块的下载地址和配置信息加入到 tpihub.pln 会请求的云控配置中即可。
互斥体创建:插件初始化时会创建互斥体 TpiHubSingleInstance,从而防止冲突。
插件初始化
防止冲突
获取云控配置:随后该模块开始获取云控配置,具体网页链接为 http://base.heheshield.com/p/tpihub,参数为分别有 mid2(机器 ID)、winver(操作系统版本)、appver(主进程版本)、modver(更新模块版本)、pid(下载平台,例如 lx_store 联想商店)、app(主进程名,例如 dxrepair)。后续其他请求云控配置时都会带有这些参数,区别是携带数量的不同。
参数获取方式:
拼接字符串:其中部分字符串通过单字符拼接的方式获取,从而规避静态字符串提取,加大逆向分析复杂度。
字符串拼接
解析弹窗推广云控配置:获取到的云控配置中含有多个推广模块,本文以 bdtpi.dll(小蓝鸽弹窗推广模块)为示例进行分析,可以看到其中含有模块本地名、模块下载地址、模块哈希值、模块等待秒数,随后该模块对云控配置进行解析并准备下载。
弹窗推广云控配置
下载并加载获取其中初始化函数地址:随后先获取文件存放路径,随后检查该路径文件的 MD5 值是否与云控配置中的 MD5 值一致,如果不一致则会删掉原文件并通过 tpi_url 下载新的弹窗推广模块并加载该模块,获取其中 CreatePlugin 初始化函数地址。
下载并加载初始化函数地址
初始化并调用主函数:调用到此步骤时将会转移至 bdtpi.dll 模块内部。
初始化并调用主函数
创建互斥体:该模块也与分发模块类似,初始化时创建互斥体 BlueDoveUnistSingleInstance,只是名称不同,且后续也会等待互斥体,防止出现冲突。
创建互斥体
获取云控配置:随后开始获取云控配置,请求链接 http://base.heheshield.com/k/bluedove/install 并传入参数 pid(下载平台,例如 lx_store 联想商店)。可以看到其中包含下载链接、执行参数、安装包哈希值、控制弹窗等数据。其中 command 为经过密钥 blowfish 加密(密钥LAG9R1ZFWIS3J2LDHBAWZ50OGSAB99US)与 base64 编码后形成的数据,解密发现是 /S --pid=lite_n3 --optimize --run,其中测试得知 /S 参数为无弹窗静默安装参数。
云控配置
随后通过云控配置对弹窗频率和规避操作进行控制,最终创建弹窗:
创建弹窗
窗口按钮:随后窗口中会有 btn_close、btn_inst、dont_show 等按钮,其中 btn_inst 按钮即“立即卸载”按钮,点击该按钮则会执行下载操作。
按钮点击事件
安装逻辑:随后先检查 Temp 目录下是否存在 bluedove_setup.exe 文件,如果存在则直接删除,随后通过云控配置中 url 下载并计算 MD5 值是否与云控配置中 md5 相同,若不同则删除,相同则返回 True 并执行安装程序。
下载安装程序并安装
大致流程:锁屏广告由 lckscr.dll 负责,该模块通过获取云控配置获取到需要锁屏推广的网址,随后通过 cefwebview.exe 并传入网址和全屏横纵坐标,从而进行锁屏展示。
初始化:初期会先将软件相关 URL、类名、软件名等信息存储至全局变量中,随后通过读取 AppData\Roaming\cdheheyoudun\config.ini 中读取 lockscreen 项下 enable 字段,如果为 1,则会继续执行。随后会请求至 base.heheshield.com/k/sp 获取锁屏相关云控配置。
锁屏推广云控配置例子
创建互斥体与云控配置写入共享内存:随后解析云控配置并从中提取 lockscreen_mutex 字段值作为名称创建互斥体,随后利用全局变量获取软件名,并与 6CBA6EFE-0D50-46A5-B68A-114B848B1733_ 拼接为指定文件映射对象的名称并创建内存映射将云控数据写入到其中。
创建互斥体与写入共享内存
读取云控数据并检查必要字段:随后再通过内存映射对象获取云控数据,解析并判断是否 data->sp 字段下 ids、url(锁屏推广时所打开的网页链接) 等字段数据是否存在,若存在则执行锁屏监听倒计时。这里并非只读取上述字段,也会读取其他频率相关字段并设置锁屏广告频率,只是不会影响锁屏广告的出现。例如,其中 lksecond 字段值为监听倒计时的默认秒数。
读取云控数据并检查必要字段
倒计时监听器设置:设置三个 Timer 监听器,其中 0x463 与 0x464 事件可以利用用户输入与鼠标移动幅度刷新监听时间,0x465 事件可以在倒计时结束后调用锁屏广告。
调用锁屏广告
展示锁屏广告:随后通过 webstub.dll 间接创建 cefwebview.exe 程序,并传入参数 url(网页地址)与 tab_rect(横纵坐标)设置为全屏大小,从而实现全屏展示锁屏广告,其中进程 cefwebview.exe 是 Chromium Embedded Framework (CEF) 的内核,可在独立窗口中渲染指定 URL 网页内容。
创建 cefwebview.exe 展示锁屏广告
下图为锁屏广告:
锁屏广告
大致流程:获取 cachestub.dll 分发的云控配置中 ppw_slow 字段值,其中 usual 字段值用于弹窗推广,tray_icon 用于托盘推广(主要为传奇微端推广),随后pwnd.dll会下载并执行两个字段值中不同的脚本,例如控制频率和规避脚本以及安装脚本,从而实现弹窗与托盘闪烁,其中点击托盘会打开网页,并根据云控配置判断是否下载传奇微端并执行。
云控配置的获取路径:包括该模块,以及 runext.pln 和 wsadd.pln ,三者并不是独立获取云控配置,而是通过 cache.dll 请求 intf-pc.heheshield.com/cfg/dxrepair_detail.php 下载云控配置,随后利用 COPYDATA 消息将云控数据传输至 cachestub.dll 中,随后 cachestub.dll 再分发至这三个模块中。
弹窗和任务栏图标推广云控配置
Lua 脚本执行:随后开始执行 Lua 脚本,其中 Lua 脚本执行是通过调用 bapi.dll 导出函数 GetBasicObj,随即获取到 Lua 解释器对象,并利用对象中解释器函数进行解释执行。
获取解释器对象
推广夸克弹窗时首先会控制频率和规避杀毒软件并展示弹窗:
控制频率与规避脚本
随后如果用户点击相应按钮则会执行相应脚本,包括不再提示、安装、关闭等脚本,其中关闭脚本为空,即不执行任何操作。
不再提示脚本:设置 %APPDATA%\tjch\config.ini 中 quark_popup 项中 last_dontshow 字段值为当前时间。
安装脚本:点击安装按钮后开始下载,随后静默安装并检查是否安装完成,安装完成后打开夸克。
不再提示脚本
安装脚本
夸克推广弹窗
推广传奇微端时首先会控制频率和规避杀毒软件并展示弹窗:
控制频率与规避脚本
选择需推广的游戏,创建托盘并闪烁:随后通过概率选择推广的游戏,下图代码示例为 100%概率推广“wjcq”游戏,这是因为该表中的其他游戏 percent 值都为 0,所以 10 概率则为 100%推广,随后创建托盘并闪烁。
选择推广的游戏
托盘闪烁
点击托盘回调:此时如果用户点击该托盘图标则会先打开 URL,以及若没有 360 则下载 wd_url 字段值中的 URL 指向的文件并执行。
点击托盘图标
大致流程:该 runext.pln 模块主要功能为接收云控配置后下载 Lua 脚本并执行,脚本主要目的为静默下载安装需要推广的软件,其中不乏控制频率和规避等操作,比较有趣的是静默下载安装完成后将会弹出应用推荐窗口,此时如果不选择“我不需要”(btn_dontshow)按钮的话则会保持安装状态,即使点击右上角的“关闭”按钮也会保持安装,还存在其他脚本会通过获取浏览器历史记录和收藏进行对特定人群的规避。
云控配置来源:与 pwnd.dll 模块一样,也是通过 cache.dll 获取云控配置并通过cachestub.dll 传输,不同的是 pwnd.dll 会利用 ppw_slow 字段值,runext.pln 会利用 run_extention_slow 字段值执行脚本,下图中 script_url 与 script_url_zip 分别为非压缩和压缩包形式的被加密 Lua 脚本。
静默安装云控配置
执行脚本前期准备以及创建 runext.exe 执行脚本进程:获取到 cachestub.dll 模块发送过来的数据后,通过 event 数值进行不同的操作,若 event 值为 1 或 3 时则会准备执行脚本,而值为 2 的时候将会执行删除缓存操作。如下图所示,其中 1 或 3 时会先解析传过来的 JSON 数据后构造出新的 JSON 数据(该数据中包含 event 值与 url 值),随后将 0x1401 消息传递出去,该消息的含义是该模块中为执行脚本。
随后将 JSON 数据写入至共享内存中,以便之后跨进程获取数据,随后将开始构造参数并将参数利用 blowfish 加密和 base64 编码,并将结果存储于 %APPDATA%\DXRepairData\config.ini 文件中的 mechanism 项 cdl 字段中,也便于跨进程获取数据,随后创建 runext.exe 程序进行执行脚本操作。
获取 JSON 数据并准备数据
runext.exe 进程通过ini 文件与共享内存,加载和调用执行脚本的函数:在 runext.exe 进程中,将会通过解密上述 config.ini 文件中 cdl 字段值获取到共享内存名称,随后读取共享内存中的 JSON 数据并获取 event 与 url 值。随后通过参数中的 --dll 与 --entry 获取到插件名称 runext.pln(即本模块) 与导出函数名称(runext,用于执行脚本的函数),分别加载和调用。
获取参数并加载与调用导出函数
不同 event 值的操作——下载或使用缓存:随后利用 event 值进行不同操作,值为 3 的时候通过 url 值下载脚本(被加密),并先后通过 base64 算法与 blowfish 算法解密出原始脚本并执行,然后将 url 字符串的 md5 值作为文件名并写入被加密脚本。值为 1 的时候将会通过 url 字符串的 md5 值为文件名读取缓存并解密后执行。
下载或读取缓存并解密执行
Lua 脚本弹窗:随后开始执行 Lua 脚本,该系列脚本都是静默安装后通过弹窗 30 秒(或任意秒)让用户交互一下,其中只有当用户在 30 秒或任意时间内点击“我不需要”(btn_dontshow) 时才会删除静默安装的内容。
静默安装软件列表:测试时获取到的脚本中静默安装的软件有以下内容,可能还会有其他软件(与云控配置下发的脚本相关)。
其中静默安装 DsutAway 清理软件的 Lua 脚本具体逻辑如下:
弹出窗口
DustAway 静默安装 Lua 脚本具体逻辑
规避特定浏览器历史记录与收藏中 URL:其中某个 Lua 脚本还会获取浏览器历史记录与收藏的网址进行规避,猜测是不想干扰特定人群,从而避免麻烦。
利用浏览器历史记录或收藏进行规避
自带注释与文档链接:其中有些 Lua 脚本自带整体注释或插件推广需求文档链接:
脚本整体注释
推广需求文档链接
大致流程:获取到云控配置后会下载不同的配置文件,随后通过配置进行规避操作,若无需要规避的选项时将会匹配特定网页并弹出推广网页,例如匹配京东商品页面并弹出。
云控配置来源和作用:与 pwnd.dll 模块一样,不同的是 wsadd.pln 会利用 alice_assist_v3_slow 字段值。其中 avoid_bro、avoid_web_cdn、sensitive_soft_path_cdn 分别规避特定浏览器、访问特定网址、特定软件;global_script_cdn 为动态开关(一般为 Lua 脚本 return "1");resource_url 为匹配特定网页并弹出推广网页所用。
云控配置
每次用户访问符合推广条件的网页时将会触发规避函数,具体规避行为如下:
规避特定浏览器(avoid_bro):若用户使用 slbrowser(联想浏览器)、iexplore(IE 浏览器)、sogouexplorer(搜狗浏览器)等浏览器则不会推送广告。
规避访问特定网址(avoid_web_cdn):若用户访问以下带有技术性或投诉相关网址时会将 ini 文件中的推广开关字段(WebADSwitch 字段)设置为 0,从而禁止推广(下文中称为“设置禁止推广”)。
规避特定网址
检测安装的软件(sensitive_soft_path_cdn):遍历注册表 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall 获取安装列表并获取其中 DisplayName,与需要规避的软件列表比较,若符合规避条件,则终止推广操作。
遍历安装列表并进行规避
检测控制面板窗口:检测标题名为“所有控制面板项”或“控制面板”以及类名为 CabinetWClass 的窗口,经过确认发现该类名为控制面板特有的类名。
检测控制面版窗口
检测进程:将会进行检测的进程有三种,分别为必须规避、系统管理进程、远程控制进程,对应的处理方式也会不同。
MD5 值所对应名称
匹配网页并请求云控配置(resource_url):随后通过云控配置 resource_url 中 url_reg对用户访问的网页进行匹配,随后通过请求 link_req_url 链接获取到被加密的推广网页。
resource_url 云控配置
通过各类工具解密被加密的推广网页,获取原始数据。
解密
随后将会弹出推广网页。
弹出推广页面
初期关注到该事件是因为火绒威胁情报系统中小蓝鸽数据异常,从而判断可能是有其他软件正在推广该软件,其中通过数据发现主要是来源于“多标签文件管理器”、“DX强力修复”、“Echofind”等多种软件,通过数字签名和隐私声明中发现这些软件是由“成都有望科技有限公司”和“重庆赫赫有盾科技有限公司”等制作。
签名和公司
因为分析时发现 DX 强力修复软件会推广自家其他软件或其他公司的软件(例如 BlueDove 小蓝鸽签名为“天津简诚科技有限公司”),所以通过“天眼查”等查询软件发现这些公司之间有一些细微的联系,例如电话号码、姓名、邮箱后缀等地方出现意外关联。
天眼查
随后分析过程中搜索其中进程名时意外搜索到编译这些软件包的CCNet服务器日志,其中包含多个软件包,例如 BlueDove、DustAway 等,还有多个编译选项,其中不乏 cqhhyd、tjch、tjxinyuan 等,火绒工程师通过分析多个公司之间的联系时获取到了一些信息,通过这些信息推测出了多个名称的含义。
编译选项中公司名称
编译选项
相关文章
亲,这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到-人的牌一样。所以很多小伙伴就怀疑这...
2025-08-16 0
现在人们打棋牌麻将谁不想赢?手机微乐麻将必赢神器但是手机棋牌麻将是这么好赢的吗?在手机上打棋牌麻将想赢,不仅需要运气,也需要技巧。掌握的棋牌麻将技巧就...
2025-08-16 0
当戴尔服务器的包装箱被拆开,内部电路板上隐藏的微型追踪器悄然闪烁,一场围绕高端芯片的隐形战争已全面升级。路透社8月13日爆出内幕:美国商务部工业与安全...
2025-08-16 0
您好:这款游戏可以开挂,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总是好牌,而且好像能看到-人的牌一样。所以很多小伙伴就怀疑这...
2025-08-16 0
证券之星消息,根据天眼查APP数据显示富信科技(688662)新获得一项实用新型专利授权,专利名为“一种带有可快速确定通信地址的半导体制冷设备的降温衣...
2025-08-16 0
意大利工程、钻井和施工服务巨头Saipem牵头的财团近日确认,其已进入价值200亿美元的位于亚洲印度尼西亚的液化天然气(LNG)项目的浮式生产、储存和...
2025-08-16 0
金融界2025年8月16日消息,国家知识产权局信息显示,淄博松柏电子科技有限公司取得一项名为“一种利用电致变色技术的调光薄膜”的专利,授权公告号CN1...
2025-08-16 0
发表评论