首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

NSIS:查找带有通配符的注册表项

NSIS(Nullsoft Scriptable Install System)是一种开源的安装脚本语言和工具集,用于创建Windows平台上的安装程序。它提供了一种简单而强大的方式来创建自定义的安装程序,可以用于软件的安装、升级和卸载。

NSIS支持使用通配符来查找注册表项。通配符是一种模式匹配的方法,可以用来查找符合特定模式的注册表项。在NSIS中,可以使用通配符来查找注册表项的键名或键值。

NSIS提供了几个用于查找注册表项的函数,包括:

  1. ReadRegStr:用于读取注册表项的字符串值。
  2. ReadRegDWORD:用于读取注册表项的32位整数值。
  3. ReadRegStrHKLM:用于读取HKEY_LOCAL_MACHINE(本地机器)下注册表项的字符串值。
  4. ReadRegDWORDHKLM:用于读取HKEY_LOCAL_MACHINE下注册表项的32位整数值。

使用通配符查找注册表项的示例代码如下:

代码语言:txt
复制
Section
  ; 查找以"Software\Microsoft\Windows\CurrentVersion\Uninstall\*"开头的注册表项
  ReadRegStr $0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\*" $1
  ; $0为返回的错误代码,0表示成功
  ; $1为返回的注册表项的值

  ; 如果找到了符合条件的注册表项
  IfErrors 0 found
  ; 如果没有找到符合条件的注册表项
  MessageBox MB_OK "未找到符合条件的注册表项"
  Goto done

  found:
  ; 找到了符合条件的注册表项,可以在这里进行相应的操作
  MessageBox MB_OK "找到了符合条件的注册表项,值为:$1"

  done:
SectionEnd

NSIS的优势在于它的简单易用性和灵活性。它提供了丰富的内置函数和命令,可以方便地进行各种操作,如文件复制、注册表操作、创建快捷方式等。同时,NSIS的脚本语言也支持自定义函数和插件,可以满足更复杂的需求。

NSIS的应用场景包括但不限于:

  • 软件安装程序的创建:NSIS可以用于创建自定义的软件安装程序,包括界面设计、文件复制、注册表操作、快捷方式创建等。
  • 软件升级和更新:NSIS可以用于创建软件的升级和更新程序,可以自动检测旧版本并进行相应的升级操作。
  • 软件卸载程序的创建:NSIS可以用于创建软件的卸载程序,可以自动删除相关文件、注册表项等。

腾讯云提供了一系列与云计算相关的产品,包括云服务器、云数据库、云存储等。具体推荐的腾讯云产品和产品介绍链接地址可以根据具体需求来确定。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

解密 Qakbot 加密注册表项

Qakbot 创建加密注册表项示例 那里只有一些关于 Qakbot 详细分析,但在其中我们并没有真正找到有关如何解密这些注册表项任何技术细节。...秘密帐户"mit_crc32_shift4(PASSWORD) // 返回值“\xac\xe9\xb5\x8d”密码哈希 = “\xac\xe9\xb5\x8d” 配置 ID Qakbot 恶意软件创建每个注册表项值名称都是由一字节...xaf\x46\xeb\xc0\xe3\xc7\xf6 \x9b\xf1\x97\x2b\x05\xd5\xca\x06\x8f SHA1 哈希结果将用作派生密钥,以使用 RC4 算法解密与 ID 相关注册表项值数据...x0e\x00\x00\x00" + "\xac\xe9\xb5\x8d") -> "\x6a\xae\x40\xdd" 下面的屏幕截图显示了可以使用 DERIVED_KEY 使用 RC4 算法解密特定注册表项值名称...解密工具: 我们编写了一个解密工具来帮助这个过程,它可以在我们Github 帐户存储库中找到。该工具可以帮助恶意软件逆向者和安全研究人员解密 Qakbot 注册表项

80810
  • C# Windows桌面应用打包指南

    MSI 安装包优势:支持自定义安装步骤,例如用户协议、组件选择等。能处理复杂安装逻辑和注册表操作。支持大多数企业环境分发。MSI 安装包局限性:配置复杂,学习曲线较高。...使用 WiX Toolset 打包WiX Toolset 是一个开源工具集,允许开发者通过 XML 定义复杂安装包。WiX 支持高级功能,如安装多个组件、创建注册表项、服务安装等。...使用 WiX 命令行工具编译 XML,生成 .msi 安装包。WiX Toolset 优势:高度可定制,适用于复杂安装需求。支持丰富安装功能,如服务安装、注册表管理、系统权限设置等。...Inno Setup 和 NSIS第三方工具:Inno Setup 和 NSISInno Setup 和 NSIS 是两款常见第三方打包工具,它们提供了更灵活安装包配置选项。...使用其内置脚本编辑器,编写安装脚本,定义要打包文件、安装路径等。编译脚本,生成安装包。NSIS 打包步骤:下载并安装 NSIS。编写 NSIS 安装脚本,配置安装过程中各项细节。

    18832

    DACL原理.控制文件访问权限(文件,注册表.目录.等任何带有安全属性对象.)

    说是他控制位.找了一圈没找到有用信息. 暂且不管.其实主要就是后面后括号里面的内容. 这些内容代表是权限.是你访问权限. 是ACE信息. 关于这个看一下 ACE Strings即可....里面有说这个ACE是来组成SDDL权限....代表是 内置客人用户,相应 BU是内置用户 BA是内置管理员 可以根据上面所说.查询SID 字符串代表意思 我这里代码是创建了文件.DACL是我自己控制....根据ACE字符串格式可以得出我文件安全权限为: 1.是一个拒绝访问用户 2.是一个允许 对象继承还有容器继承. 3.是有可读可写属性. 4.使用BA 说明是内置管理员 看下文件安全属性...如果想要添加新用户.可以继续参考MSDN创建DACL一章. 理解了原理. SDDL字符串不就是自己手动改改事情.

    2.3K30

    NSIS 打包脚本基础

    这如其名字所指出那样,NSIS 是通过它脚本语言来描述安装程序行为和逻辑NSIS 脚本语言和通常编程语言有类似的结构和语法,但它是为安装程序这类应用所设计。...工具: HW VNISEdit(NSIS脚本编辑器) 1、 使用编辑器中NSIS脚本向导功能,自动生成对应nsi脚本。...${NSISDIR} 包含 NSIS 安装目录一个标记。在编译时会检测到。...如果指定了 /ifempty,则该注册表键仅当它无子键时才会被删除(否则,整个注册表键将被删除)。有效根键值在后面的 WriteRegStr 列出。...(3)IfFileExists 要检测文件 文件存在时跳转标记 [文件不存在时跳转标记] 检测“要检测文件”是否存在(可以用通配符,或目录),并当文件存在时跳转到“文件存在时跳转”,否则跳转到“

    4.9K60

    GuLoader 转向使用 NSIS 历程

    【PE 文件中 NSIS 压缩数据】 垃圾邮件 2021 年 11 月,攻击者开始使用 NSIS 可执行文件前,研究人员发现了一个可疑 ZIP 文件。...该文件包含一个带有宏代码 Word 文档,宏代码会释放一个 LNK 文件与 VBS 脚本。VBS 脚本文件会释放 PE 文件,再加载 GuLoader Shellcode。...【ZIP 文件中 NSIS】 【ISO 镜像文件中 NSIS】 在压缩文件与镜像文件中嵌入可执行文件是能够进行检测逃避,在野发现可用于嵌入 NSIS 可执行文件格式如下所示: 【格式列表】...【简单 NSIS 脚本】 后来,攻击者开始使用混淆 NSIS 脚本。在 2022 年 4 月,攻击者对其进行两次改进。首先,Shellcode 文件扩展名从 .dat 更改为随机扩展名。...脚本使用带有 powershell.exe 或 cmd.exe 单行命令来执行对 Payload 异或解码,再通过 ExecToStack 从命令 stdout 检索。

    68330

    图解使用VS安装项目打包程序

    由于篇幅原因,先介绍第一阶段:直接使用VS自带安装项目打包程序。 后面会陆续介绍:自定义安装界面(不适用windows默认风格),使用NSIS脚本制作打包程序。 1. 建立安装项目工程 1.1....然后打开你创建那个快捷方式属性对话框, 在Aguements属性中输入"/x {ProductCode}", ? 安装程序后,打开注册表,可以查看到卸载信息。...添加注册表 (1) 在“解决方案资源管理器”窗口中选中安装项目,单击鼠标右键,在弹出对话框中选择“视图/注册表”选项,如图: ?...(4)选中添加注册表项值,单击鼠标右键,选择“属性窗口”选项,弹出“属性”窗口,如图,这里可以对注册表项值作修改。 按照以上步骤,就可以为安装程序添加一个注册表项。...在程序安装成功后,查看注册表,可以看到到我们写入键值。 ? 7. 添加、修改安装页面 VS支持对安装程序添加、修改安装页面。但是我在尝试中发现,不够灵活。只能使用默认样式风格。

    1.7K50

    将独立 Python 网络应用程序分发给非技术用户

    我们需要能够创建一种一体机类型安装程序,该安装程序可以安装 Python、依赖项 (Python-LDAP)、一些 Python 代码,并将基于 Python Web 服务器注册为 Windows...我们目前想法是使用 NSIS 创建一个包含 Python 和 Python-LDAP 作为 MSI 安装程序,然后注册我们自己简单基于 Python Web 服务器作为 Windows 服务...NSIS 可以做到这一点吗?例如,NSIS 可以检查当前安装 Python 副本吗?有没有更好方法来做到这一点——是否有方便框架可以让我们将代码放入一个文件夹并将其捆绑起来以制作安装程序?2....解决方案方法一使用 NSIS 是一个好主意,但我们建议使用诸如 pyinstaller(我们个人最喜欢,其他选择是 bb_freeze 和 py2exe)这样“打包器”来在使用 NSIS 之前创建...方法二您可以使用像 cx_Freeze 这样工具将 Python 脚本转换为可执行文件,然后使用 NSIS 将可执行文件打包成安装程序。

    9810

    PowerShell实战:Get-Item命令使用详解

    一般搭配使用通配符 (*) 来获取项目的包含项目。如果不使用*的话只是获取当前项内容。 一、语法格式 二、示例 获取当前目录 说明: ....表示位于当前位置项 获取当前目录中所有项 说明: 通配符 (*) 表示当前项所有内容 获取指定目录所有的项 注意:文件目录不要出现特殊字符,比如空格 等,否则执行会报错。具体看下图。...获取目录属性,这里获取文件创建时间 查看目录所有属性 语法格式:(Get-Item 文件按目录) | Get-Member 获取注册表项目的内容 首先打开注册表,找到蓝牙注册表进行测试对比 输出结果...-Include:包含一个或多个项作为字符串数组,可以使用通配符,简单来说就是根据文件名称进行过滤筛选,参数类型为字符串数组[]。...针对不同提供程序(文件、注册表、硬链接等等)有不同实现。 -Stream:文件系统提供程序提供动态参数。仅在 Windows 上可用。

    60310

    PowerShell实战:文件操作相关命令笔记

    可创建项类型取决于项位置。 例如,在文件系统 New-Item 中创建文件和文件夹。 在注册表中, New-Item 创建注册表项和条目。New-Item 还可以设置它创建值。...还可以通过管道将值传递给 New-Item ● -Confirm:用于创建操作运行cmdlet之前是否需要确认 ● -Force:针对文件夹,不会覆盖,只会返回之前创建文件夹,针对文件或者注册表会覆盖文件内容...它支持删除许多不同类型项,包括文件、文件夹、注册表项、变量、别名和函数。...Exclude *test*说明:-Include:包含某个字符串,支持通配符-Exclude:排除某个字符串,支持通配符 使用递归方式删除当前目录和子目录中所有的txt文件Get-ChildItem...文件重命名,当前demo.txt 文件名修改为 demonew.txtRename-Item demo.txt -NewName "demonew.txt"重命名该注册表项Rename-Item -Path

    36420

    用腾讯云云API和PHP写一个查找域名是否可注册API

    在批量查询时,可以直接通过Python调用,比起官网批量查询要灵活得多(官网还要先用Python生成列表再复制,而且一次查太多网页还容易出问题)。...唯一解决方法是准备多个账号,但账号分配成了问题。 使用场景:个人使用 均匀分配 统计每个账户调用次数,每次选择最小使用。 问题:还得弄数据库什么,太麻烦。...frequency of calls." }, "RequestId": "fd5f460b-3eb7-4a48-a00b-4a39b3fee63b" } } 域名无法注册返回值...常见有两种,一种是被注册了没法注册 "该域名已被注册,请选择其他域名" { "Response": { "DomainName": "ius.cn", "FeeTransfer...(至少在腾讯云无法注册,别的平台不清楚),但要注意,这只能说明这个域名有敏感词,不能说明没有被注册,腾讯云逻辑是先检查敏感与否再检查是否被注册了。

    4.1K30

    NSIS 打包 Electron 项目的注意事项(拖拽、权限、兼容性等)

    我自己本人不做 Electron 开发,但有一位合作伙伴在使用 NSIS 打包 Electron 应用时候遇到了一些问题,主要问题有以下几个,先记录下来,然后追个击破。...,告诉系统我们启动自己应用时使用 Windows 7 兼容模式运行,示例注册表如下: Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\...脚本中写入这个注册表,可以像下面这样操作: Section -Post WriteUninstaller "$INSTDIR\uninst.exe" WriteRegStr HKCU "Software...WriteRegStr 方法写入到了注册表中,给它设置值是 WIN7RTM,这样应用在启动时候,就会以 Windows 7 兼容性模式运行了。...安装或卸载前结束应用 需要两个插件,一个是 KillProcDLL.dll,另一个是 FindProcDLL.dll,这两个插件均可以从 NSIS 官网下载。

    1.4K20

    【C++】Qt:基于windeployqt+nsis程序打包和发布

    1.windeployqt和nsis介绍 windeployqt是一个Qt提供非常有用命令行工具,用于将Qt应用程序所需所有依赖项自动复制到应用程序构建目录中,以便在没有Qt安装计算机上运行应用程序...windeployqt可以自动查找并复制应用程序所需Qt库文件、插件、QML文件以及其他依赖库文件。...nsis我用版本是: nsis-3.02.1(最新版nsis是包含了下面的nisedit) 2.用nisedit制作脚本 1.新建向导脚本 2.填写应用信息 3.设置图标、语言等 4.设置目录与授权信息...Function .onInit Push "" Push ${LANG_ENGLISH} ;添加英文代码 语言代码是系统变量,多语言引入后,自动加载,拼接方式是“LANG_语言”,可以查看NSIS...‘$LANGUAGE’是多语言变量,在安装程序结束后,语言代码会存储在这个变量中,手动修改‘$LANGUAGE’值后,安装包会重新选择最匹配语言,参考最上面NSIS手册中选择界面语言步骤 StrCmp

    49910

    Electron实用技巧-electron-builder中用户协议(license)使用及多语言支持

    首先参考官网介绍:windows:nsis[1],macOS:dmg[2] # 2 官网上关于license配置说明写不是很详细,下面是我实践总结出正确姿势: 最简单方法是在你项目/build...但是ANSI在macOS下是不行,所以更推荐方案是使用 “带有BOMUTF-8“,这样在windows,macOS下都可以使用。...关于语言代码官网给出参考是language code to name[3],这里有个错误,中文对应是zh,实际上简体中文应该写zh_CN。...,默认跟随系统语言): nsis: { oneClick: false, allowToChangeInstallationDirectory: true, displayLanguageSelector...: true, }, 打包后安装,选择语言: 英文: 中文: macOS: 参考资料 [1] nsis: https://www.electron.build/configuration/nsis [

    2.6K40

    在 Microsoft Windows 平台上安装 JDK 17

    UninstallString,请参阅 查找 JDK 注册表项和 卸载字符串值 。...查找 JDK 注册表项和 UninstallString 价值 转到 开始 并键入 注册 。...在下面 Uninstall文件夹, 您会在 curl 中找到许多注册表项 括号。 点击 编辑 ,然后 查找 。 笔记: 强调 Uninstall之前文件夹 执行搜索特定注册表。...输入版本字符串作为值以查找相应注册表 钥匙。 例如,输入 jdk-15 。 注册表项突出显示在 窗格右侧和各种值 卸载字符串显示在左侧 窗格。...要删除注册表项: 确定正确注册表项。 请参阅 查找 JDK 注册表项和 UninstallString 价值 。 突出显示该键, 右键单击 并选择 删除 。 单击 是 出现提示时 。

    35610
    领券