病毒丨熊猫烧香病毒分析
作者丨黑蛋
一、病毒简介
病毒名称:
熊猫烧香
文件名称:
40fee2a4be91d9d46cc133328ed41a3bdf9099be5084efbc95c8d0535ecee496
文件格式:
EXEx86
文件类型(Magic):
MS-DOS executable
文件大小:
29.30KB
SHA256:
40fee2a4be91d9d46cc133328ed41a3bdf9099be5084efbc95c8d0535ecee496
SHA1:
ca3a1070cff311c0ba40ab60a8fe3266cfefe870
MD5:
512301c535c88255c9a252fdf70b7a03
CRC32:
E334747C
SSDEEP:
768:Zf4LGjK09Rex9hq4gx9dtdiKosOOOf1G7mV/Wz3ETC7:Zf4LGjDeNA3diKCOOf4oG3N
TLSH:
T102D2D0E3770A58CDC1811CF0DCB347781994AC79AA0E83B9A911752D0E795FFAF42A35
AuthentiHash:
n/a
peHashNG:
ee0d0b18b39a36cf914131c260b08a27cd71a31b3be9a72d3ef7768cac57aec0
impfuzzy:
3:swBJAEPwS9KTXzW:dBJAEHGDW
ImpHash:
87bed5a7cba00c7e1f4015f1bdae2183
ICON SHA256:
0bf3ce8f441c6ef00c8f8406204f5273cad371683c764c5a901ab9ce925999a9
ICON DHash:
e89433333333e171
Tags:
exe,tls_callback,section_name_exception,lang_chinese,timestamp_exception
二、环境准备
| 虚拟机 | 调试器 | 安全软件 |
| Win7x86 | x32dbg、OD | 火绒剑 |
三、程序脱壳
首先修改病毒后缀为exe,然后拖入PEID查看:

FSG壳,拖入x32dbg中,F9运行到程序领空,然后分析代码,F8几步就会发现刚开始有一个大循环,F4跳出循环:

然后继续F8就会发现又是一个循环,俩个函数一个LoadLibrary,一个GetProAddress,这里应该是修复IAT表,然后我们F4到其中跳出循环的jmp上面:

F8就是OEP:

根据x32dbg自带插件脱壳先Dump:

需要修复IAT表,右键->搜索->模块间调用:

双击第一个,看到call回车进jmp,然后右键数据跟随选择地址:

然后在这里看一下IAT表偏移,大小,再把7FFFFFFF改成00000000,然后打开插件,写入OEP:


脱壳成功:

四、行为分析
首先拍个快照,为了更好的查看熊猫行为,咱赋予他管理员权限,然后把熊猫添加到信任区,最后打开火绒剑开启监控,过滤掉其他进程:

然后简单的进行一下动作过滤,主要是行为监控,注册表创建,文件创建等:

可以看到主要是释放了一个文件,C:\Windows\System32\drivers\spo0lsv.exe:

五、静态分析
把脱壳后的exe拖到IDA中,从start开始分析,F5反汇编:

首先前面一坨都是一些变量赋值等操作,重点在以下三个函数:

5.1、sub_40819C分析
通过对函数内部分析,猜测加分析,对部分函数命名,以及对部分变量直接赋予字符串:

可以看到这里是获取系统目录,然后在各个文件夹中创建Desktop.ini,然后在C盘Driver文件夹中创建一个名为spo0slv.exe的可执行文件。最后运行起来程序。
5.2、sub_40D18C分析
进入此函数,一共有三个函数:

5.2.1、创建线程:

进入回调函数sub_40A48C:

这里是一个循环执行,然后遍历目录创建Desktop.ini的线程。
5.2.2、Sub_40C374:

进入箭头指向函数:

这里就是简单的看steup.exe和autorun.inf文件是否存在,否则拷贝自身创建。
5.2.6、sub_40BACC:

进入sub_40BA8C:

进入sub_40B864:

可以看到这里是一个创建网络链接的函数,也是这个函数根本目的。
5.3、sub_40D088:
这个函数里面有6个计时器,咱一个一个分析:

5.3.1、第一个计时器

里面有些函数是我根据分析+猜测修改的名称,以My开头,根据注册表路径信息可以看到,这里是进行了自启动注册表修改,然后设置属性为隐藏。
5.3.2、第二个计时器
一直跟进去,直到跟进一个创建线程回调函数里面:

可以看到就是简单的从网络下载东西然后创建文件,最后启动。
5.3.3、第三个计时器

进第一个回调函数,一直跟进去发现和之前的是一样的,就是下载,创建,启动。跟进第二个回调函数:

可以看到这里是通过cmd中断所有网络连接,删除网络共享。
5.3.4、第四个计时器
一直跟进去,到最后是sub_406E44:

根据分析我对里面的函数都进行了重命名,都是删除注册表值,关闭服务等内容,这里是关闭了杀软。
5.3.5、第五个计时器

这里是对一些网址进行解密打开,解密之后我都进行了备注。
5.3.6、第六个计时器

首先跟进箭头函数,可以看到是一些网络操作,读取创建等操作:

返回上一步向下看,同样是一些下载东西,创建文件,然后启动等操作:

六、总结
此病毒是加了一个壳,然后需要脱壳修复IAT表,然后根据火绒剑观察一下具体行为操作。然后拖到IDA中静态分析就可以了。
相关文章:
病毒丨熊猫烧香病毒分析
作者丨黑蛋 一、病毒简介 病毒名称: 熊猫烧香 文件名称: 40fee2a4be91d9d46cc133328ed41a3bdf9099be5084efbc95c8d0535ecee496 文件格式: EXEx86 文件类型(Magic): MS-DOS executable 文件大小: 29.30KB SHA256&…...
SparkSQL学习——SparkSQL配置与文件的读取与保存
目录 一、添加依赖 二、配置log4j 三、spark提交jar包 四、读取文件 (一)加载数据 (二)保存数据 1.Parquet 2.json 3.CSV 4.MySql 5.hive on spark 6.IDEA的Spark中操作Hive 一、添加依赖 <properties><project.build.sourceEncoding>UTF-8</proje…...
随想录Day45--动态规划:70. 爬楼梯 (进阶), 322. 零钱兑换, 279.完全平方数
70爬楼梯这道题之前已经做过,是动态规划思想的入门,想要爬上第n层阶梯,看爬上n-1层的方法和n-2层的方法共有多少种,两个相加就是爬上n层阶梯的方法。这里扩展到每次可以爬k层,这样就是一个动态规划问题。因为每次可以爬…...
原理+案例,关于主从延迟,一篇文章给你讲明白!
前言 在生产环境中,为了满足安全性,高可用性以及高并发等方面的需求,基本上采用的MySQL数据库架构都是MHA、MGR等,最低也得是一主一从的架构,搭配自动切换脚本,实现故障自动切换。 上述架构都是通过集群主…...
QT开发笔记(Camera)
Camera 此章节例程适用于 Ubuntu 和正点原子 I.MX6U 开发板,不适用于 Windows(需要自行修改 才能适用 Windows,Windows 上的应用不在我们讨论范围)! 资源简介 正点原子 I.MX6U 开发板底板上有一路“CSI”摄像头接口。支持正点原…...
从C++的角度讲解C#容器
讲解C#容器的文章网上一搜一大把,作为一名C程序员如何高效学习C#容器呢,其实学语言如果能讲到这点就能触类旁通,举一反三,那效果是最好的问题市面上没有这样的书籍,那就跟着老白来一起从C的角度去讲解C#容器1.List<…...
React组件库实践:React + Typescript + Less + Rollup + Storybook
背景 原先在做低代码平台的时候,刚好有搭载React组件库的需求,所以就搞了一套通用的React组件库模版。目前通过这套模板也搭建过好几个组件库。 为了让这个模板更干净和通用,我把所有和低代码相关的代码都剔除了,只保留最纯粹的…...
c++ atomic
文章目录why atomic?sequentially consistent atomicRelaxed memory modelswhy atomic? 当我们有一片内存空间S,线程A正在往S里写数据,这个时候线程B突然往S中做了操作,导致线程A的操作结果变得不可预知(对线程A来说),这种情况换句话说叫做data race,我们一般的操作时上锁,在…...
要想孩子写作文没烦恼?建议家长这样做
说起语文学习,就不得不提作文。作为语文学习中的重中之重,作文写作一直是压在学生和家长身上的一块“心头大石”。发现很多孩子在写作文时,往往存在四大问题:写不出、不生动、流水账、太空洞。如今,孩子怕写作文&#…...
基于Python的高光谱图像分析教程
1、前言超光谱图像 (HSI) 分析因其在从农业到监控的各个领域的应用而成为人工智能 (AI) 研究的前沿领域之一。 该领域正在发表许多研究论文,这使它变得更加有趣! 和“对于初学者来说,在 HSI 上开始模式识别和机器学习是相当麻烦的”ÿ…...
【图神经网络】从0到1使用PyG手把手创建异构图
从0到1用PyG创建异构图异构图创建异构图电影评分数据集MovieLens建立二分图数据集转换为可训练的数据集建立异构图神经网络以OGB数据集为例HeteroData中常用的函数将简单图神经网络转换为异质图神经网络GraphGym的使用PyG中常用的卷积层参考资料在现实中需要对 多种类型的节点以…...
2023美赛春季赛思路分析汇总
将在本帖更新汇总2023美赛春季赛两个赛题思路,大家可以点赞收藏! 2023美赛春季赛各赛题全部解题参考思路资料模型代码等全部实时更新!第一时间获取全部美赛春季赛相关资料! 目前思路整理仅为部分,请大家耐心等待&…...
GPT4国内镜像站
GPT-4介绍GPT-4是OpenAI发布的最先进的大型语言模型,是ChatGPT模型的超级进化版本。与ChatGPT相比,GPT-4的推理能力、复杂问题的理解能力、写代码能力得到了极大的强化,是当前人工智能领域,最有希望实现通用人工智能的大模型。但G…...
代码随想录算法训练营第四十八天| 198 打家劫舍 213 打家劫舍II 337 打家劫舍III
代码随想录算法训练营第四十八天| 198 打家劫舍 213 打家劫舍II 337 打家劫舍III LeetCode 198 打家劫舍 题目: 198.打家劫舍 动规五部曲: 确定dp数组以及下标的含义 dp[i]:考虑下标i(包括i)以内的房屋,最多可以偷…...
飞桨DeepXDE用例验证及评估
在之前发布的文章中,我们介绍了飞桨全量支持业内优秀科学计算深度学习工具 DeepXDE。本期主要介绍基于飞桨动态图模式对 DeepXDE 中 PINN 方法用例实现、验证及评估的具体流程,同时提供典型环节的代码,旨在帮助大家更加高效地基于飞桨框架进行…...
telegram连接本地Proxy连接不上
1.ClashX开启允许局域网连接。 2.重启ClashX和Telegram...
【分布式版本控制系统Git】| 国内代码托管中心-Gitee、自建代码托管平台-GitLab
目录 一:国内代码托管中心-码云 1. 码云创建远程库 2. IDEA 集成码云 3. 码云复制 GitHub 项目 二:自建代码托管平台-GitLab 1. GitLab 安装 2. IDEA 集成 GitLab 一:国内代码托管中心-码云 众所周知,GitHub 服务器在国外&…...
【面试】BIO、NIO、AIO面试题
文章目录什么是IO在了解不同的IO之前先了解:同步与异步,阻塞与非阻塞的区别什么是BIO什么是NIO什么是AIO什么NettyBIO和NIO、AIO的区别IO流的分类按照读写的单位大小来分:按照实际IO操作来分:按照读写时是否直接与硬盘,…...
C语言实现拼图求解
题目: 有如下的八种拼图块,每块都是由八块小正方块构成, 这些拼图块刚好可以某种方式拼合放入给定的目标形状, 请以C或C++编程,自动求解 一种拼图方式 目标拼图: 本栏目适合想要深入了解无向图、深度优先算法、编程语句如何实现算法、想要去接拼图算法的小伙伴。...
python --获取本机屏幕分辨率
pywin32 方法一 使用 win32api.GetDeviceCaps() 方法来获取显示器的分辨率。 使用 win32api.GetDC() 方法获取整个屏幕的设备上下文句柄,然后使用 win32api.GetDeviceCaps() 方法获取水平和垂直方向的分辨率。最后需要调用 win32api.ReleaseDC() 方法释放设备上下…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...
AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...
CSS设置元素的宽度根据其内容自动调整
width: fit-content 是 CSS 中的一个属性值,用于设置元素的宽度根据其内容自动调整,确保宽度刚好容纳内容而不会超出。 效果对比 默认情况(width: auto): 块级元素(如 <div>)会占满父容器…...
LangFlow技术架构分析
🔧 LangFlow 的可视化技术栈 前端节点编辑器 底层框架:基于 (一个现代化的 React 节点绘图库) 功能: 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...
【SpringBoot自动化部署】
SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一,能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时,需要添加Git仓库地址和凭证,设置构建触发器(如GitHub…...
flow_controllers
关键点: 流控制器类型: 同步(Sync):发布操作会阻塞,直到数据被确认发送。异步(Async):发布操作非阻塞,数据发送由后台线程处理。纯同步(PureSync…...
