Board logo

标题: [注册表类] #求助# CMD/BAT将自身文件或其他文件加入注册表开机启动项 [打印本页]

作者: FenoX    时间: 2022-12-18 14:50     标题: #求助# CMD/BAT将自身文件或其他文件加入注册表开机启动项

本帖最后由 FenoX 于 2022-12-19 09:49 编辑

FenoX-C:  
         解决一个关于自动运行的问题,在很多软件,程序中,都需要在特定条件或时间点启动,最近,我因为某些原因需要制作一个BAT病毒专杀,(没错,就是bat),在写完代码后,想到了这个问题,如果病毒发作时用户再启动,就已经对系统造成了损伤,为时已晚了,
所以,我想到了现在主流的杀毒软件,比如360(”不怎么”好用),比如火绒,东可以将自身程序嵌入注册表开机启动项,对系统进行保护,那怎样用批处理,将自己的文件嵌入注册表呢?
作者: FenoX    时间: 2022-12-18 15:04

本帖最后由 FenoX 于 2022-12-19 09:58 编辑

FenoX-C:
   我现在有这样的想法,专杀程序分为两个部分,主程序部分和安装程序部分,主程序专门写专杀,用户下载后先运行安装程序,将主程序添加到注册表启动项(当然,也要设置去掉这个选项),然后在运行。
   现在最主要的问题:
   1.如何授予管理员权限:(即不用每次运行都走一遍流程(你们懂的))
   2.如何隐藏自身窗口:(总不能每次开机都弹窗吧)
   3.除了专杀,我还想在程序中添加其他功能(比如检测疑似被感染的文件,文件加密等),本人毫无头绪。
作者: FenoX    时间: 2022-12-18 16:28

"#求助# CMD/BAT将自身文件或其他文件加入注册表开机启动项" 此问题已解决!
感谢群2的@空空,@郑,授予解决方案。
  1. REG ADD KeyName [/v ValueName | /ve] [/t Type] [/s Separator] [/d Data] [/f]
  2.         [/reg:32 | /reg:64]
  3.   KeyName  [\\Machine\]FullKey
  4.            Machine  远程机器名 - 忽略默认到当前机器。远程机器上
  5.                     只有 HKLM 和 HKU 可用。
  6.            FullKey  ROOTKEY\SubKey
  7.            ROOTKEY  [ HKLM | HKCU | HKCR | HKU | HKCC ]
  8.            SubKey   所选 ROOTKEY 下注册表项的完整名称。
  9.   /v       所选项之下要添加的值名称。
  10.   /ve      为注册表项添加空白值名称(默认)。
  11.   /t       RegKey 数据类型
  12.            [ REG_SZ    | REG_MULTI_SZ | REG_EXPAND_SZ |
  13.              REG_DWORD | REG_QWORD    | REG_BINARY    | REG_NONE ]
  14.            如果忽略,则采用 REG_SZ。
  15.   /s       指定一个在 REG_MULTI_SZ 数据字符串中用作分隔符的字符
  16.            如果忽略,则将 "\0" 用作分隔符。
  17.   /d       要分配给添加的注册表 ValueName 的数据。
  18.   /f       不用提示就强行覆盖现有注册表项。
  19. /reg:32  指定应该使用 32 位注册表视图访问的注册表项。
  20. /reg:64  指定应该使用 64 位注册表视图访问的注册表项。
  21. 例如:
  22.   REG ADD \\ABC\HKLM\Software\MyCo
  23.     添加远程机器 ABC 上的一个注册表项 HKLM\Software\MyCo
  24.   REG ADD HKLM\Software\MyCo /v Data /t REG_BINARY /d fe340ead
  25.     添加一个值(名称: Data,类型: REG_BINARY,数据: fe340ead)
  26.   REG ADD HKLM\Software\MyCo /v MRU /t REG_MULTI_SZ /d fax\0mail
  27.     添加一个值(名称: MRU,类型: REG_MULTI_SZ,数据: fax\0mail\0\0)
  28.   REG ADD HKLM\Software\MyCo /v Path /t REG_EXPAND_SZ /d ^%systemroot^%
  29.     添加一个值(名称: Path,类型: REG_EXPAND_SZ,数据: %systemroot%)
  30.     注意: 在扩充字符串中使用插入符号 ( ^ )
复制代码
reg,添加&删除注册表项。
例1:添加本程序之注册表开机启动项:reg add HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v %~n0 /t reg_sz /d "\"%~f0\""

其中/t 为字符串格式,/d为路径,用到了标识符,\" ,此程序效果:
   新建一个字符串格式的 命名为此程序名称的(%~n0),值为此程序路径的注册表项。

另附:删除本程序的注册表项:(与例1对应)
reg delete "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v %~n0
_________________________________________________________
衷心感谢 ········@空空、@郑
                                                                                         FenoX-C
作者: Batcher    时间: 2022-12-19 09:42

本论坛禁止讨论逻辑炸弹、病毒的BAT等恶意代码!




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2