记联软 UniAccess 导致 NSIS 安装包启动进程失效
本文记录联软 UniAccess 注入的 C:\Window\LVUAAgentInstBaseRoot\syswow64\MozartBreathCore.dll 导致 NSIS 安装包启动进程失效,启动进程直接结束问题。且给出 NSIS 安装包脚本的规避方法
特别感谢 lsj 定位到此问题,我只是帮助他记录问题的工具人
联软 UniAccess 是一款监控电脑设备的应用,在很多公司都会使用。遇到此问题时最佳做法是卸载,如何卸载请参阅以下博客
- 卸载联软UniAccess,删除UniAccess Agent记录 - Never_Await_Victory - 博客园
- 最新彻底删除联软uniaccessAgent_zhangxl2000的博客-CSDN博客_uniaccessagenttray.exe
- 卸载 UniAccessAgent 软件_ITPUB博客
如果无法卸载或好奇联软 UniAccess 是如何投毒的,请继续阅读本文
我的 NSIS 脚本是使用以下代码进行启动进程的
nsExec::Exec "${PATH_MAIN}\lindexi.exe install"
这里的 ${PATH_MAIN} 在运行的时候大概是 D:\Program Files (x86)\lindexi 文件夹路径
预期以上安装包代码将会启动 lindexi.exe 应用,然而通过 ProcessMonitor 却发现启动的路径似乎不对

如上图,可以看到先在安装包里创建出了 D:\Program Files (x86)\lindexi\lindexi.exe 文件,接下来预期的就是安装包将启动此进程。然而通过 ProcessMonitor 看到是 QueryOpen 了 D:\Program 文件
右击看是调用 D:\Program 文件的堆栈,如下图

从图片可以看到,从 nsExec.dll 里面居然进入了 MozartBreathCore.dll 里面,证明就是被联软 UniAccess 的 C:\Window\LVUAAgentInstBaseRoot\syswow64\MozartBreathCore.dll 注入。然而联软 UniAccess 比较垃圾,没有好好处理好路径空格文件,于是就访问成了 D:\Program 文件
而且联软 UniAccess 更垃圾的是发现文件不存在就啥都不干,让安装包继续使用,安装包以为完成了进程启动,记录的日志也都是完成启动进程
其实以上的 NSIS 脚本还是有一刀的,那就是传入的参数是没有给带空格的路径加上引号。不过在 Win32 的 CreateProcess 方法可以很好处理此问题,会自动识别路径空格。因此安装包在没有联软 UniAccess 情况下可以很好进行安装
既然知道了联软 UniAccess 投毒了,而且是路径空格问题,就可以额外照顾一下联软 UniAccess 这个垃圾。修改 NSIS 脚本,给路径带上引号,解决路径空格导致联软 UniAccess 启动进程失效
nsExec::Exec '"${PATH_MAIN}\lindexi.exe" install'
如上面代码,将 ${PATH_MAIN}\lindexi.exe 使用引号来解决 ${PATH_MAIN} 是存在空格的 D:\Program Files (x86)\lindexi 路径导致联软 UniAccess 这个垃圾无法启动进程
记联软 UniAccess 导致 NSIS 安装包启动进程失效的更多相关文章
- 转:阿里旺旺导致python安装包失败的解决办法
我以前使用web.py没事,今天运行时报错, mimetypes.init() # try to read system mime.types File "D:\ProgramFiles\p ...
- nsis安装包_示例脚本语法解析
以下是代码及解析,其中有底色的部分为脚本内容. 注释.!define.变量.!include.常量 ; Script generated by the HM NIS Edit Script Wizar ...
- [Win] Win8权限机制导致R安装包失败
在Rstudio安装tidyselect的时候,提示 ERROR: compilation failed for package ‘tidyselect’ 搜了一下,在github上找到tidysel ...
- appium定位安装包启动类名称
cmd输入:adb logcat > d:/1.txt 然后运行APP,关闭APP,到D盘查找文件1,Ctrl+F,输入LAUNCHER,定位启动类,如下图所示位置 即为,eclipse调用A ...
- NSIS安装包制作
6)闪屏界面,可以在源代码中加入下列代码即可: A.普通效果 以下是代码片段: Function .onInit SetOutPath $TEMP File /oname=spltmp.bmp &qu ...
- NSIS使用教程(安装包制作安装文件教程,如何封装打包文件) 中文版
nsis中文版(Nullsoft Scriptable Install System)是一个专业的开源的可以用来封闭Windows程序的实用工具,是一个开源的 Windows 系统下安装程序制作程序. ...
- NSIS打包(二)第一个安装包
基本介绍完之后,我们大概了解了NSIS中有哪些组件,现在我们通过一个简单的demo来学习如何使用这些组件. 1.环境配置 NSIS的环境非常简单,只有一个安装包,安装后即可使用. 官网:http:// ...
- 利用NSIS软件制作C#安装包
最近在做C#程序安装包,结果网上看到这个软件还是不错的,可以尝试以下. NSIS 是“Nullsoft 脚本安装系统”(Nullsoft Scriptable Installation System) ...
- 使用NSIS脚本制作一个安装包
大部分人第一次看到NSIS脚本都是一脸懵逼的.因为它这个脚本的结构乍一看上去就非常奇怪,不作说明的话是看不懂的. 编写脚本命令的时候要非常注意,命令要按照规定写在脚本中不同的段落里,也就是说,命令的先 ...
- C# Note19: Windows安装包制作实践
前言 最近在项目中需要不断更新新版本的software installer(软件安装包),于是便查阅资料,整理了下制作方法. NSIS安装包制作脚本 NSIS(Nullsoft Scriptable ...
随机推荐
- uni-app 应对微信小程序最新隐私协议接口要求的处理方法
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 一,问题起因 最新在开发小程序的时候,调用微信小程序来获取用户信息的时候经常报错一个问题 fail api scope is not de ...
- 工作记录:Stylus基础教程及应用
前言 传统CSS的缺陷 css的可重用性差.代码冗余量大.不支持语言特性如变量循环及方法等(虽然css也在慢慢支持,比如现在的css变量等,但明显这些远远不够). 三大预处理 于是预处理器出现了: 2 ...
- 记录--Vue3 封装 ECharts 通用组件
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 按需导入的配置文件 配置文件这里就不再赘述,内容都是一样的,主打一个随用随取,按需导入. import * as echarts from ...
- cyc_to_led
Entity: cyc_to_led File: cyc_to_led.v Diagram Generics Generic name Type Value Description MD_SIM_AB ...
- Oracle 触发器迁移至KingbaseES常见的问题
oracle数据库的触发器迁移到KingbaseES的时候经常会出现一下两类错误: 1.SQL 错误 [42809]: 错误: "xxxxxxxx" 是一个视图.Detail: 视 ...
- #模拟#洛谷 5957 [POI2017]Flappy Bird
题目 分析 小鸟所在坐标的奇偶性一定相同, 考虑每次维护一个可行区间表示小鸟在当前列可以进入的纵坐标区间, 那么它有\(x_i-x_{i-1}\)的纵坐标最大改变差,然后根据奇偶性以及限制区间缩小范围 ...
- 一文弄懂String的所有小秘密
目录 简介 String是不可变的 传值还是传引用 substring() 导致的内存泄露 总结 简介 String是java中非常常用的一个对象类型.可以说java中使用最多的就是String了.那 ...
- VS的 x86_64 , x64_86 , x64 , x86 有什么区别
x86 Native Tools Command Prompt - Sets the environment to use 32-bit, x86-native tools to build 32-b ...
- C# 布尔值和条件语句:入门指南和实用示例
C# 布尔值 在编程中,通常需要一个只能有两个值之一的数据类型,比如: 是 / 否 开 / 关 真 / 假 为此,C# 有一个 bool 数据类型,可以取 true 或 false 的值. 布尔值 使 ...
- 华为Push用户增长服务:精准触达,加速增长
速戳了解华为Push用户增长服务:通过精细化运营,助力开发者高效实现用户增长,提升用户活跃度和粘性! 合作咨询请点此链接 了解更多详情>> 访问华为开发者联盟官网 获取开发指导文档 华为移 ...