病毒分析整体思路

简单病毒逆向分析 电脑病毒(computer virus),或称电子计算机病毒。是一种在人为或非人为的情况下产生的、在用户不知情或未批准下,能自我复制或运行的电脑程序;电脑病毒往往会影响受感染电脑的正常运作,或是被控制而不自知,电脑正常运作仅盗窃资料、或者被利用做其他用途等用户非自发启动的行为。 阅读详情

声明

出品|长白山攻防实验室(ID:逆向萌新)      

以下内容,来自长白山攻防实验室作者原创,由于传播,利用此文所提供的信息而造成的任何直接或间接的后果和损失,均由使用者本人负责,长白山攻防实验室以及文章作者不承担任何责任。

0x01前言

计算机病毒(Computer Virus)指编制者在计算机程序中插入的破坏计算机功能或者破坏数据,影响计算机正常使用并且能够自我复制的一组计算机指令或程序代码。

0x02 分析思路

病毒分析,我的思路按照病毒(WannaCry勒索病毒)来分析。

首先,知道WannaCry勒索病毒是蠕虫式勒索病毒,我们先拿到了病毒的样本,确定了环境,是Windows环境下,(放在虚拟机中)进行分析,首先查验一下是否存在壳和导入导出了某些表,在Exeinfo PE软件中进行查看,知道了这个是c语言病毒,利用软件VC++,链接器版本为6.0。

查看pe头部,因为导出表为0,所以我们查看导入表,分析导入的这些动态链接库,存在哪些windows api函数,来分析可能存在了哪些操作。

导入库中KERNEL.dll发现了导入了Windows API函数GetCurrentThreadId这个API函数,通过Windows API函数手册发现,这个的作用是检索指定线程的线程标识符,说明存在对线程的操作,同时获取当前线程但是返回值是当前线程的伪句柄。

而GetCurrentThreadId返回值是当前线程的的标识符,也包含了CreateFileA这个API说明存在创建或者是读取文件的操作还存在TerminateThread,终止线程的操作,GetProcAddress,获取地址的操作,看下一个ADVAPI32.dll,里面有重要的API,CryptGenRandom和CryptAcquireContextA,这两个API,都是加密用的API函数。

利用软件查看反编译。

第一步就是把后面那一串网址,写入变量szURL中,下面定义了一些变量为v4,之后v4=InternetOpenA的作用是初始化了程序对于WinINet的应用,WinInet是对socket进行一层封装可以直接处理http,所以这一步也可以认定为是在初始化http,进入了v5,这一步用了InternetOpenUrlA,第一个参数,必须输入InternetOpenA的返回值,所要访问的url,获取到的值给v5,如果v5不等于0,直接关闭掉这v4和v5的句柄,结束运行,如果等于0,那么关闭v4,跳转到sub_408090函数中。

进入了sub_408090函数中要获取一个包含特定模块的一个特定模块的全路径,必须有当前运行的进程进行生成,因为第一个是为空,所以获取的是当前的进程的全路径,之后会出现了_p___argc()这个库函数,目前不知道具体什么意思,但是大概知道会指向一个数,之后如果这个数值小于2,就会跳转到函数sub_407F20

如果不是小于2,就会建立与指定计算机上的服务器控制器进行连接,并且打开指定的服务控制管理器数据库,之后返回的值,赋值给了v1,之后v1复赋值给了v2,如果v1不等于0,则去打开这个服务,之后又一次赋值给了v4,如果v3不等于0,跳转到函数sub_407FA0,运行完成之后关闭v4的这个句柄,如果等于0的话,那么就直接关闭v2的句柄,之后往下结束serviceStartTable.lpServiceName =mssecsvc2.0,从函数中出来,v6,v7初始化为0,返回ServiceStartTable的将服务进程的主线程连接到服务控制管理器。

现在到这里,已经出来了好几个函数了,所以我们可以先看一下流程图,从最开始的main,到sub_408090判断是sub_407F20还是sub_407FA0。

先进入函数sub_407C40()

进来就先格式化了一下字符串,经过格式化之后的字符串在Dest中,打开SERVICES_ACTIVE_DATABASE服务控制管理器数据库,返回的值给v0,之后v0赋值给v1,如果v0 = 0,就返回值为0,如果不等于0,则创建一个服务对象mssecsvc2.0用户界面程序用于标识服务显示Microsoft Security Center (2.0) Service,之后值给v2,之后v2给v3,如果v2不等于0,启动这个服务,关闭这个v3的句柄,如果等于0,则直接关闭v1句柄,之后返回0。

第二个函数,sub_407CE0()

进来就是加载&ModuleName变量的一个模块,但是不确定是exe还是dll之后出现了GetProcAddress可以基本确定是个dll,查找从这个v0模块句柄中查找这个函数和变量名称之后ProcName=CreateProcessA,综合下面三个查找CrateProcessA,CreateFileA和WriteFile分别给了dword_431478,dword_431458和dword_431460, 

v2是CloseHandle赋值给了dword_43144C,到一串if到里面,v3搜索用于创建当前进程的模块,v5获取v3的获取指向内存中指定资源的第一个字节的指针的句柄,之后检索第一个资源给v9检索v4大小的资源给v6,继续往下探测,到了最里面的if中,Dest被赋值为0,用100个0去填充v19,变量20,21为0,NewFileName为0,用100个0填充v23,之后24,25为0,这里出现了新的东西,一个是C:\WINDOWS\tasksche.exe和C:\WINDOWS\qeriuw-jhrf,tasksche.exe移动到了qeriuwjhrf下。

没有继续往下的分支了,都是返回0,所以最后还是会返回回来sub_408090(),也就是运行到sub_u407CE0之后回到sub_408090()。

进入sub_407FA0(v3,60中)。

v3赋值1,info赋值0,v4 = 1000*60,v6,v7不知道是什么值,v9 = 1,返回的最后的是更改SERVICE_CONFIG_FAILURE_ACTIONS配置信息,继续往下看函数,进入sub_408000()到这里才是真正的程序开始进入了运算。

     一进来,先赋值上去,注册了一个函数来处理服务控制请求,通过mssecsvc2.0来调用,处理程序的函数指针HandlerProc,转入到了HandlerProc中。

在整个HandlerProc中是一个大的switch,最后一句是更新服务控制管理器的状态信息,hServiceStatus里面是当前状态信息的结果句柄,&ServiceStatus里面是包含调用服务最新状态信息的SERVICE_STATUS结果指针。

回到sub_408000中,到了SetServiceStatus(res-ult,&serviceStatus),汇报调用服务的服务控制管理器的状态信息,第一个参数是result,是新的句柄,后面结构指针,之后进入sub_407BD0()。

这是整个静态调试的大题,但是静态调试有一些东西是看不出来的,所以要进行一次动态调试,由于这个有个验证网站的限制,导致病毒是运行不起来的,所以我们可以在前面看一下内存转储看一下。

发现了很多的文件后缀,所以这些是可被这个勒索病毒所加密的后缀。

0x03总结

对于病毒分析,其实比拼的就是windows api的理解还有足够的信心和耐心,需要一个很长久的一个时间去磨一个病毒文件,否则这个病毒想做什么,你可能是一直都不知道的,只要耐心的去看,去磨,去查,慢慢的就自己能看懂了,做好标记,因为有很多时候,都有防止你破解的动作,比如加壳,花指令,混淆等,但是这里没有,以后会碰到。

欢迎关注长白山攻防实验室

定期更新优质文章分享

详解计算机病毒 计算机病毒,是指编制或者在计算机程序中插入的或者,影响计算机使用,并的一组计算机指令或者程序代码。 阅读详情

相关推荐

计算机病毒解析与防范技术研究

当特洛伊木马的服务器运行时,就会生成让用户相当困惑的名称对受害者进行传递,受害者往往难以察觉,一旦将端口开启之后就会把数据信息传送至相应的地址,这时候就可以盗取用户个人密码以及账号信息,甚至还能够借助开放端口对用户个人计算机进行大规模入侵。脚本病毒也是比较常见的一种病毒,这种病毒的前缀为script,该病毒事实上属于通过编写脚本语言借助网页的形式进行传播,最常见的有红色代码(Script.Redlof)。计算机病毒最出众的不是破坏性,而是病毒的滋生性,如果病毒发生突变或者被复制,其蔓延速度很难进行阻止。

2402_82389843的博客 314

病毒样本分析学习一

简单的一次静态病毒样本分析

weixin_45299049的博客 3252

应急响应思路

删除busybox不要使⽤rm -rf等相关参数,以免打错路径误删⽂件。搞清楚,攻击者从哪⾥来,攻击者做了什么。ELFcrontab,脚本名称等等。

墨痕诉清风的博客 840

病毒分析流程总结

前段时间拜读了《恶意代码分析实战》一书,算是对整个病毒分析的流程和常用方法有个大致的了解,现在总结一下,也算是给自己做的一个笔记。         首先,病毒分析师必须具备以下知识:编程、汇编/反汇编、逆向分析、PE文件结构以及一些常用行为分析软件。下面开启我们的旅程。                 一、在一个已经感染了病毒的机器上如何找到病毒文件?                找到

auriel的博客 6909

宏基因组病毒组分析流程源码:从读段到病毒基因组的完整链路

在生物信息学流程开发中,宏基因组分析是主流方向,但其中病毒组分析因病毒序列占比极低、宿主污染干扰严重而具有独特的技术挑战。常规的总宏基因组流程难以直接适用,需要专门设计从宿主去除、病毒序列识别到基因组组装与质量评估的完整解决方案。本文围绕一套开源的宏基因组病毒组分析流程源码,详细拆解其模块化架构、工具选型逻辑与关键参数阈值,包括采用Nextflow实现流程的可复现性与断点续跑,以及通过Virsorter2与VirFinder联合投票提升病毒召回率。同时结合真实样本实战中遇到的低深度检出率下降、宿主去污染误杀

weixin_26824299的博客 332

海上AI导航系统:技术架构与行业应用解析

计算机视觉与强化学习技术在海上导航系统中的应用正逐步改变传统航运业。通过多模态传感器融合技术,现代AI导航系统能够实现高精度的物体识别与实时路径规划,有效解决能见度依赖、决策延迟等核心痛点。以Orca AI的SeaPod系统为例,其结合了NVIDIA GeForce RTX 4070的边缘计算能力与多光谱协同识别技术,在恶劣环境下仍能保持稳定性能。这类系统不仅提升了航行安全性,还通过优化航线显著降低燃油消耗,在东京湾、马六甲海峡等繁忙水域展现出巨大价值。随着毫米波雷达融合方案的测试推进,未来海上导航将突破极

weixin_33597080的博客 356

office文档病毒分析整体思路

1.打开office文档时,看看加载页面是否有相关下载连接服务器等字眼,如果出现则说明利用的远程注入,直接以压缩包方式打开该文档到/word/_rels/settings.xml.rels 这个文件中查看相应的连接地址。2.进入文档后看看是否有提示说启用宏或者启用应用程序等字眼,有该提示说明有宏文件或者DDE命令,直接去宏编辑器查看宏命令,将。5.对于VBA工程锁定不可查看这种情况,可以试着使用EvilClippy工具进行解除锁定,命令如下。打开即可在文档页面查看到该DDE命令。

qq_45844442的博客 2397

linux上使用tun/tap设备模拟一个虚拟网卡,并将该虚拟网卡连接到新创建的网桥上

tun/tap设备是操作系统内核中的虚拟网络设备,是用软件模拟的网络设备,提供与硬件网络设备完全相同的功能。主要用于用户空间和内核空间传递报文。tun/tap对于硬件网络设备而言,一端连接的是物理网络,一端连接的是网络协议栈。对于tun/tap设备而言,一端连接的是应用程序(通过 字符设备文件),一端连接的是网络协议栈。

糖果墙的博客 6414

应急响应的整体思路和基本流程

https://www.secrss.com/articles/7374

weixin_42109829的博客 4572

学习笔记9--智能驾驶的功能安全设计之功能安全设计

本系列博客包括6个专栏,分别为:《自动驾驶技术概览》、《自动驾驶汽车平台技术基础》、《自动驾驶汽车定位技术》、《自动驾驶汽车环境感知》、《自动驾驶汽车决策与控制》、《自动驾驶系统设计及应用》。此专栏是关于《自动驾驶系统设计及应用》书籍的笔记.

FUXI_Willard 1797

Blender骨骼绑定实战:如何用IK控制器让角色动作更自然(附常见问题解决)

本文深入探讨了Blender中IK控制器的实战应用,旨在解决角色动作僵硬问题。通过对比IK与FK的核心差异,详细解析了IK链的构建、参数设置及极向目标的使用,并提供了控制器定制、IK/FK无缝切换等高级技巧,帮助动画师实现更自然、符合直觉的角色动画。

weixin_29243279的博客 442

宏病毒组分析常见的分析软件

病毒是地球上数量最多的生物实体,其中细菌病毒(即噬菌体)约有1031个类群,从海洋到陆地再到人体几乎都是它们的栖息地。研究者将病毒视为调节人类生态系统的重要成员,人体内主要包括真核病毒和噬菌体,包括双链DNA (double-stranded DNA, dsDNA),单链DNA (single-stranded DNA, ssDNA)和RNA病毒。随着对病毒研究的广泛开展,“病毒组”与“病毒组学”的概念也应运而生,这些术语分别涵盖了栖息在生态系统中的所有病毒及其基因组和对它们的研究(Lefkowitz EJ

E_gene的博客 4040

【国产化信创实践】宝兰德bes中间件集成springboot

【国产化信创实践】宝兰德bes中间件集成springboot

项目管理、软件工厂、vue研发、Java研发、中国文化等。 1万+

【病毒分析】全网首发!袭扰国内top1家族Mallox家族破解思路及技术分享

关于Mallox家族信息可参考本篇文章【病毒分析】Mallox勒索家族新版本:加密算法全面解析,详情内容部分可移步solar官网处介绍https://www.solarsecurity.cn/family?id=3。

solarset的博客 1309

N32在Keil中J-Link识别失败的排查与修复指南

本文详细解析了在Keil开发环境中,J-Link调试器无法识别N32系列MCU的常见问题。通过分步指导,从检查修改Keil工程配置文件、更新J-Link驱动,到手动添加N32专用设备支持包,系统性地提供了排查与修复方案,帮助开发者快速恢复调试连接,确保开发流程顺畅。

306

一文搞懂电流、电压的有效值 RMS

交流电有正半周、负半周,直接平均可能抵消成 0,但负半周一样会发热。这个交流电如果换成直流电,能产生同样发热功率时,对应的直流电压或电流”,电容耐压通常不能按 220V 选,常见会选 400V 或更高余量。所以做硬件时,220VAC 整流滤波后电容上会接近。电压/电流的有效值,也叫。如果它加在电阻上,发热按。

qq_52293640的博客 452

病毒分析,病毒原理,ASLR,DEP,EPO

1.病毒分析的基本工具方法 整体的思维:利用一些工具来监控程序调用了哪些API或行为 ~1.对于监控API ~~1.apilog18pub http://www.softpedia.com/get/Programming/Other-Programming-Files/API-Logger.shtml ~~2.Api Monitor x86 x64都有 (强力推荐!!!) ~2.使用行为

zhuhuibeishadiao 2106

10、基于单倍型多样性隐马尔可夫模型的基因型错误检测

本文提出了一种基于单倍型多样性隐马尔可夫模型(HMM)的基因型错误检测方法,旨在提升三人组基因型数据中错误识别的准确性。通过利用群体水平的连锁信息,该方法克服了传统方法在小系谱数据中表现不佳的局限性。文章详细介绍了模型结构、三种替代似然函数及其计算方法,并通过模拟数据集和真实数据集验证了方法的有效性。实验结果显示,该方法在灵敏度、特异度和准确率方面均表现出色,为基因数据质量控制提供了新的解决方案。

moon9的博客 96

病毒分析复现记录及经验总结

昨天接到的任务,一个链接:https://mp.weixin.qq.com/s/ayfw8tWjBe3UOaDcAMrVgw 通过MD5检索相关信息,大概了解了GandCrab勒索病毒家族的概念,目前已经更新到V5.3 之前的时候有接触过V5.2的样本,双重RSA加密的思路实在无解,只有一个私钥落在了注册表,然后客户重装了电脑,直接懵逼。无解~ 早上通读了2遍病毒分析,整体感觉就是看雪的帖子很大程...

黑夜黎明 519

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

应急响应整体思路

[第一章:应急响应] 第1篇:Window入侵排查 第2篇:Linux入侵排查 [第二章:日志分析] 第1篇:Window日志分析 第2篇:Linux日志分析 第3篇:Web日志分析 第4篇:MSSQL日志分析 第5篇:MySQL日志分析 [第三章:Windows...

糖小喵 415

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

应急响应的整体思路一

应急响应的整体思路,就是上层有指导性原则和思想,下层有技能、知识点与工具,共同推进和保障应急响应流程的全生命周期。 原则和指导性思路 3W1H原则:3W即Who、What、Why,1H即How,做应急响应要带着疑问来做事,一定要收集清楚这些信息。网络拓扑是怎么样的?需求是啥?发生了什么事?你能做什么?用户用了什么产品?产品版本多少?病毒库版本多少?多少主机中了?主机是普通PC还是服务器?服务器是做什么的?……信息收集越多,对应急响应越有利。 易失性原则:做应急响应免不了要做信息收集和取证的,但这里是有一定

weixin_43977912的博客 591

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

中了勒索病毒怎么办

一:面对越来越疯狂的勒索病毒,我不能无动于衷; 自2016年开始勒索病毒出现到2017年wannacry肆意传播,再到2020年WannaRen通过各大下载资源站传播。勒索病毒越来越疯狂了,给大家看一组数字。 二:网上没有专业人士写的详细的教程贴; 各大搜索引擎任意搜索下,好帖是有,但95%以上都是广告贴和水贴,甚至一些误人子弟,未经深思熟虑写的帖子。病不在他们身上,真敢随便开药,治死不偿命啊!总得有人补上这个空缺,各路大神都很忙,只有我还有时间码字。 三:不想重复造轮子,方便别人的同时也方便自己

m0_68649618的博客 6749

应急响应思路分享及案例

应急响应思路分享、面对常见病毒的应急响应

m0_64583632的博客 1130

Microbiome|动物DNA宏病毒组的分析天花板?!

未来的研究还应研究瘤胃中的单株DNA或RNA病毒,因为它们目前在瘤胃病毒数据库和瘤胃宏基因组中未得到充分代表。

SHANGHAILINGEN的博客 931

用Burglar病毒实例学汇编:中断向量、驻留与病毒分析实战

汇编语言是理解底层程序执行逻辑的关键工具,尤其在恶意代码分析领域,通过指令级别的观察能还原高级语言无法表达的内存与寄存器操作。中断向量作为实模式下操作系统与硬件的交互入口,是TSR病毒篡改和劫持的核心目标,修改向量地址即可静默拦截系统调用。理解这一原理,不仅有助于分析老式DOS病毒的工作机制,也为现代逆向工程中的钩子检测与防护提供基础。在实际安全场景中,驻留内存的判定、键盘记录的定位、特征码扫描器的编写,都离不开对段地址、偏移量和查表流程的熟练运用。本文从一个具有代表性的Burglar病毒样本切入,串联汇编

weixin_33501543的博客 284
上一篇: jpress代码审计分享
下一篇: CVE-2022-42920 BCEL 任意文件写漏洞
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值