主题:流氓联盟欺软怕硬,多链路恶意推广
z3960发表于 2025-08-18 14:52
,只是不会影响锁屏广告的出现。例如,其中 lksecond 字段值为监听倒计时的默认秒数。读取云控数据并检查必要字段倒计时监听器设置:设置三个 Timer 监听器,其中 0x463 与 0x464 事件可以利用用户输入与鼠标移动幅度刷新监听时间,0x465 事件可以在倒计时结束后调用锁屏广告。调用锁屏广告展示锁屏广告:随后通过 webstub.dll 间接创建 cefwebview.exe 程序,并传入参数 url(网页地址)与 tab_rect(横纵坐标)设置为全屏大小,从而实现全屏展示锁屏广告,其中进程 cefwebview.exe 是 Chromium Embedded Framework (CEF) 的内核,可在独立窗口中渲染指定 URL 网页内容。创建 cefwebview.exe 展示锁屏广告下图为锁屏广告:锁屏广告1.3 pwnd.dll(桌面弹窗以及托盘闪烁推广模块)大致流程:获取 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 解释器对象,并利用对象中解释器函数进行解释执行。获取解释器对象1.3.1 夸克弹窗推广推广夸克弹窗时首先会控制频率和规避杀毒软件并展示弹窗:检测是否为 32 位系统(64 位则继续)24 小时内是否弹过(没弹过则继续)30 天内是否选择不再弹出(超过 30 天则继续)60 天内安装过夸克(超过 60 天则继续)2 小时内弹过游戏相关弹窗或图标(没弹过则继续)请求云控确定是否展示该软件(等待云控返回值)检测是否存在夸克软件(不存在则继续)检测杀毒软件(如果不存在指定杀毒软件则继续)控制频率与规避脚本随后如果用户点击相应按钮则会执行相应脚本,包括不再提示、安装、关闭等脚本,其中关闭脚本为空,即不执行任何操作。不再提示脚本:设置 %APPDATA%tjchconfig.ini 中 quark_popup 项中 last_dontshow 字段值为当前时间。安装脚本:点击安装按钮后开始下载,随后静默安装并检查是否安装完成,安装完成后打开夸克。不再提示脚本安装脚本夸克推广弹窗1.3.2 传奇微端推广推广传奇微端时首先会控制频率和规避杀毒软件并展示弹窗:检测是否为 XP(不是 XP 则继续)检测安全卫士是否设置禁止弹窗(没设置则继续)检测安全卫士弹窗拦截是否为强力模式(非强力模式则继续)检测杀毒软件(无指定杀毒软件则继续)检测用户是否设置为不再提示(没设置则继续)检测当前产品是否在 4 小时内展示托盘弹窗(未展示则继续)检测所有产品是否在 3 小时内展示托盘弹窗(未展示则继续)控制频率与规避脚本选择需推广的游戏,创建托盘并闪烁:随后通过概率选择推广的游戏,下图代码示例为 100%概率推广“wjcq”游戏,这是因为该表中的其他游戏 percent 值都为 0,所以 10 概率则为 100%推广,随后创建托盘并闪烁。选择推广的游戏托盘闪烁点击托盘回调:此时如果用户点击该托盘图标则会先打开 URL,以及若没有 360 则下载 wd_url 字段值中的 URL 指向的文件并执行。点击托盘图标1.4 runext.pln(脚本执行模块)大致流程:该 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%DXRepairDataconfig.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) 时才会删除静默安装的内容。静默安装软件列表:测试时获取到的脚本中静默安装的软件有以下内容,可能还会有其他软件(与云控配置下发的脚本相关)。DustAwaycolorx迅读PDF迅读CADFastZip其中静默安装 DsutAway 清理软件的 Lua 脚本具体逻辑如下:删除旧安装包、检测当天是否执行过、若执行过则进行标记。检测是否安装过、若被删除则两个月内不会安装。规避安装的部分推广软件、规避卡巴、火绒、2345 卫士安全软件,但是注释掉了腾讯管家和金山毒霸(部分脚本会注释)。下载 DustAway 安装包,随后静默安装。弹窗 30 秒(或任意秒)、只有弹窗时间内点击“我不需要”(btn_dontshow)时才会进行删除,点击右上角关闭也会保持安装结果。弹出窗口DustAway 静默安装 Lua 脚本具体逻辑规避特定浏览器历史记录与收藏中 URL:其中某个 Lua 脚本还会获取浏览器历史记录与收藏的网址进行规避,猜测是不想干扰特定人群,从而避免麻烦。利用浏览器历史记录或收藏进行规避自带注释与文档链接:其中有些 Lua 脚本自带整体注释或插件推广需求文档链接:脚本整体注释推广需
回帖(2):全部回帖(2)»