记录一次DLL分析实战

2023-09-22 15:13:44

1.VT查看分析报告

virustotal

全绿,没有报毒:

在这里插入图片描述

可以看到这个dll是32位的:

在这里插入图片描述

下面可以看它调用的其他dll:

在这里插入图片描述

以及它对外提供的函数接口:

在这里插入图片描述

其中RunCmd很可疑,看起来是调用cmd窗口的接口,后续需要重点关注

可以看到它联系的IP地址和域信息:

在这里插入图片描述

行为模块可以查看它恶意加载的流程:

在这里插入图片描述


2.判断文件是否加壳

使用 PEiD 可以查看该信息,如下无壳:

在这里插入图片描述

使用Exeinfo PE新一代查壳工具:

这款查壳工具的加壳特征库比较准确而且范围很广,如ThemIDA、WinLicense、VMProtect、ZProtect、Shielden都可以轻松识别出来,但对于具体加壳程序的版本都是模糊的

在这里插入图片描述


3.查看导入函数

用 Dependency Walker 可以看到导入函数

重点是 CreateProcessASleep 导入函数,这两个函数经常在后门程序中使用:

CreateProcessA 函数用于创建一个新的进程并执行指定的可执行文件。它是通过指定一组参数来启动新进程的,包括可执行文件的路径、命令行参数、安全属性等。该函数返回一个布尔值,表示新进程是否成功创建

Sleep 函数用于使当前线程暂时休眠一段指定的时间。它接受一个以毫秒为单位的时间参数,并把当前线程从运行状态转为休眠状态,直到指定的时间过去后再恢复运行

在这里插入图片描述


4.查看是否有任何其他文件或基于主机的迹象

使用 strings -n 4 -nobanner xxx.dll 指令查看 xxx.dll 中的字符串

如下,除了已知的 CreateProcessA 和 Sleep,我们还注意到 exec 和 sleep。exec 可能用于通过网络给后门程序传送命令 ,再利用 CreateProcess 函数运行某个程序 。sleep 可能用于让后门程序进入休眠模式

在这里插入图片描述


5.使用工具IDA Pro进行字符串分析

通过 View > Open Subviews > Strings,或者 Shift + F12 打开 Strings 窗口,使用 Strings 窗口,查看dll中的字符串:

在这里插入图片描述

更多推荐

python脚本(渗透测试)

python爬取edusrc通过此脚本,可以爬取edusrc的目标信息,生成目标字典,为下一步开发自动化测试工具做准备importqueueimportthreadingimporttimeimportrequestsfrombs4importBeautifulSoupimportredefget_edu_name()

NLP任务评价指标(BLEU,METOR,ROUGH,CIDEr)

BLEU,METEOR,ROUGE一般在机器翻译里用,CIDEr一般在图像字幕生成里用BLEU所谓BLEU,最开始是用于机器翻译中。他的思想其实很native,对于一个给定的句子,有标准译文S1,还有一个神经网络翻译的句子S2。BLEU的思想就是对于出现机器翻译S2的所有短语,看有多少个短语出现在S1中,然后算一下这个

Flink

flink应用场景maven依赖<properties><flink.version>1.17.0</flink.version></properties><dependencies><dependency><groupId>org.apache.flink</groupId><artifactId>flink-str

react 通过ref 获取对应 dom 的位置信息

需求:在点击某个dom元素的时候滚动条要同步滚动进程:获取ref打印,打印出来是一个dom元素,看不到有什么方法查找dom属性信息找到了两个参数,offsetLeft:返回元素的水平偏移位置。offsetTop:返回元素的垂直偏移位置。这两个参数都是基于父节点的,可以直接使用this.cellMainBox.curre

OceanMind海睿思入选弯弓研究院《2023中国营销技术生态图谱8.0》

近日,由国内MarTech领域知名机构弯弓研究院主办的第五届营销数字化大会暨营销科技MarTech交易展在广州成功召开。本次大会发布了《2023中国营销技术生态图谱8.0版》(以下简称“弯弓图谱8.0”),中新赛克海睿思凭借成熟的技术实力成功入选弯弓图谱8.0的中台板块,成为数据与分析领域本土优秀代表服务商之一。随着企

Linux 共享内存

#include<sys/ipc.h>#include<sys/shm.h>intshmget(key_tkey,size_tsize,intshmflg);功能:创建一个新的内存段或者获得一个既有的共享内存段的标识。新创建的内存段中的数据都会被初始化为0参数:-key:key_t类型是一个整型,通过这个创建或者找到一

Linux查看程序和动态库依赖的动态库

一.前言在一些时候,我们需要知道一个程序或者动态库所依赖的动态库有哪些。比如,当我们运行一个程序的时候,发现可能会报错,提示找不到某个符号,这时我们就需要知道程序依赖了什么库,从而添加对应需要的动态库。等等,接下来介绍两种方法查看程序和动态库所依赖的动态库。二.方法介绍1.使用objdump命令objdump-pFIL

Toaster - Android 吐司框架,专治 Toast 各种疑难杂症

官网https://github.com/getActivity/Toaster这可能是性能优、使用简单,支持自定义,不需要通知栏权限的吐司想了解实现原理的可以点击此链接查看:Toaster源码集成步骤如果你的项目Gradle配置是在7.0以下,需要在build.gradle文件中加入allprojects{repos

(总目录)springboot - 实现zip文件上传并对zip文件解压, 包含上传oss

全文目录,一步到位1.本文概述1.1本文简介2.功能实现2.1统一文件校验2.2普通(多)文件上传[服务器]2.2.1controller层2.2.2service层2.2.3业务impl实现类2.2.4FileIOUtils工具包代码2.3zip文件的解压2.4图片文件的压缩2.5oss文件后端上传2.6oss文件前

九、【漏洞复现】Struts 2 远程代码执行漏洞s2-046(CVE-2017-5638)

九、【漏洞复现】Struts2远程代码执行漏洞s2-046(CVE-2017-5638)9.1、漏洞原理Struts2是一个基于MVC设计模式的Web应用框架,本质上相当于一个Servlet,在MVC设计模式中,Struts2作为控制器来建立模型与视图进行数据交互。攻击者通过发送恶意构造的HTTP数据包利用该漏洞(通过

vue 把echarts封装成一个方法 并且从后端读取数据 +转换数据格式 =动态echarts 联动echarts表

1.把echarts在methods封装成一个方法mounted在中调用折线图和柱状图mounted调用下边两个方法mounted(){//最早获取DOM元素的生命周期函数挂载完毕console.log('mounted-id',document.getElementById('charts'))this.line()

热文推荐