[go: up one dir, main page]

CN118520462A - Concealment method of PE program - Google Patents

Concealment method of PE program Download PDF

Info

Publication number
CN118520462A
CN118520462A CN202410633541.1A CN202410633541A CN118520462A CN 118520462 A CN118520462 A CN 118520462A CN 202410633541 A CN202410633541 A CN 202410633541A CN 118520462 A CN118520462 A CN 118520462A
Authority
CN
China
Prior art keywords
file
program
function
key
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202410633541.1A
Other languages
Chinese (zh)
Inventor
方智阳
陈浩廷
陈弈安
刘津闻
王俊峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sichuan University
Original Assignee
Sichuan University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sichuan University filed Critical Sichuan University
Priority to CN202410633541.1A priority Critical patent/CN118520462A/en
Publication of CN118520462A publication Critical patent/CN118520462A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Virology (AREA)
  • Storage Device Security (AREA)

Abstract

The invention provides a concealment method of a PE program, and relates to the technical field of computer software security. The method comprises the following steps: generating random three keys a, b and c to correspondingly encrypt an exe program to be concealed, shellcode data of a PE loader and corresponding sensitive character strings, and generating first, second and third encrypted data; sequentially writing a key a, first encryption data, a key b, second encryption data, a key c and third encryption data into data_encryption.h, peloader.h and basicFuncName _encryption.h files of a background; and calling a CL compiler and a LINK connector to compile and LINK the C language file, and generating a hidden exe program. The method can effectively reduce the suspicious degree of the exe program, improves the concealment of the exe program, has quicker implementation process and lower cost, is easy to realize, and is beneficial to improving the robustness of a malicious software detection technology and the defending capability of a disinfection engine.

Description

一种PE程序的隐蔽方法A concealment method for PE programs

技术领域Technical Field

本发明涉及计算机软件安全技术领域,特别是涉及一种PE程序的隐蔽方法。The present invention relates to the technical field of computer software security, and in particular to a concealment method for a PE program.

背景技术Background Art

恶意软件(Malware)是一种恶意的计算机程序或文件,其目的是在未经用户许可或知情的情况下,对计算机系统、网络或数据进行损害、破坏、窃取或滥用,如病毒、木马、勒索软件等,严重威胁信息系统的安全。Malware is a malicious computer program or file whose purpose is to damage, destroy, steal or abuse computer systems, networks or data without the user's permission or knowledge, such as viruses, Trojans, ransomware, etc., which seriously threaten the security of information systems.

为更有效地促进恶意软件检测技术的发展,不仅要研究防御技术,如何检测恶意软件,更需要研究攻击技术,如何隐蔽恶意软件使之规避反病毒引擎的检测,以从攻击对抗层入手提高检测技术的鲁棒性。In order to more effectively promote the development of malware detection technology, we need to study not only defense technology, how to detect malware, but also attack technology, how to conceal malware so that it can evade detection by anti-virus engines, so as to improve the robustness of detection technology from the attack confrontation layer.

在Windows环境下,应用于恶意软件检测训练的PE程序隐蔽的方法包括:定位并去除特征码,代码混淆以降低静态分析的可读性;反沙箱技术规避沙箱检测;采用加密或加壳技术来隐藏恶意特征;模拟正常程序行为以减少可疑性;利用系统漏洞以绕过安全检测等。该类技术使恶意软件有效避免或延迟被安全软件检测,但也存在限制:如去除特征码可能影响软件正常运行,代码混淆可能增加执行复杂性,漏洞利用依赖于特定未修补的漏洞,加密、加壳和反杀箱代码特征可能引起查杀引擎的注意,且隐蔽性代码越多反而使软件可疑度升高。此外,由于恶意软件规避与查杀具有对抗性,双方需要实时更新,固定的规避方法难以实现恶意软件的长久隐蔽。In the Windows environment, the methods used to conceal PE programs in malware detection training include: locating and removing signature codes, code obfuscation to reduce the readability of static analysis; anti-sandbox technology to evade sandbox detection; using encryption or shelling technology to hide malicious features; simulating normal program behavior to reduce suspicion; exploiting system vulnerabilities to bypass security detection, etc. This type of technology enables malware to effectively avoid or delay detection by security software, but there are also limitations: for example, removing signature codes may affect the normal operation of the software, code obfuscation may increase execution complexity, vulnerability exploitation depends on specific unpatched vulnerabilities, encryption, shelling and anti-killing box code features may attract the attention of the killing engine, and the more hidden codes, the more suspicious the software is. In addition, since malware evasion and killing are confrontational, both parties need to be updated in real time, and fixed evasion methods are difficult to achieve long-term concealment of malware.

发明内容Summary of the invention

为解决现有技术中存在的上述技术问题,本发明旨在提供一种PE程序的隐蔽方法以用于恶意软件检测的训练中,以提升恶意软件检测技术的鲁棒性和查杀毒引擎的防御能力。In order to solve the above-mentioned technical problems existing in the prior art, the present invention aims to provide a concealment method of PE program for use in malware detection training, so as to improve the robustness of malware detection technology and the defense capability of antivirus engine.

具体地,该方法包括以下步骤:Specifically, the method comprises the following steps:

步骤S1:生成随机密钥a,加密待隐蔽的exe程序,生成第一加密数据;将密钥a和第一加密数据写入后台的data_encrypt.h文件;Step S1: Generate a random key a, encrypt the exe program to be hidden, and generate the first encrypted data; write the key a and the first encrypted data into the background data_encrypt.h file;

步骤S2:生成随机密钥b,加密PE加载器(Portable Execute loader)的shellcode,生成第二加密数据;将密钥b和第二加密数据写入后台的PELoader.h文件;Step S2: Generate a random key b, encrypt the shellcode of the PE loader (Portable Execute loader), and generate the second encrypted data; write the key b and the second encrypted data into the PELoader.h file in the background;

步骤S3:生成随机密钥c,加密敏感字符串,生成第三加密数据;将密钥和第三加密数据写入后台的basicFuncName_encrypt.h文件;Step S3: Generate a random key c, encrypt the sensitive string, and generate the third encrypted data; write the key and the third encrypted data into the basicFuncName_encrypt.h file in the background;

其中,敏感字符串包括LoadLibraryA、VirtualAlloc和VirtualProtect;Among them, sensitive strings include LoadLibraryA, VirtualAlloc and VirtualProtect;

步骤S4:命令行调用CL编译器(CL.EXE)编译C语言文件,生成obj文件;再调用LINK连接器链接obj文件,生成隐蔽的exe程序;Step S4: The command line calls the CL compiler (CL.EXE) to compile the C language file and generate an obj file; then calls the LINK connector to link the obj file and generate a hidden exe program;

其中,链接过程中链接选项选择随机基址;Among them, the link option selects a random base address during the link process;

C语言文件包括:The C language files include:

data_encrypt.h文件、PELoader.h文件、basicFuncName_encrypt.h文件;data_encrypt.h file, PELoader.h file, basicFuncName_encrypt.h file;

checkSandBox.h,包含沙箱检测代码;checkSandBox.h, contains the sandbox detection code;

decrypt.h,包含步骤S1-步骤S3对应的解密函数;decrypt.h, contains the decryption functions corresponding to steps S1-S3;

head.h,用于声明所包含的头文件;head.h, used to declare the included header files;

main.cpp,包含main函数代码,其执行逻辑包括:进行沙箱检测、解密敏感字符串获取对应关键Win32API、开辟可读可执行的第一新内存、解密第一加密数据、解密第二加密数据并复制到第一新内存中,调用shellcode对应的内存加载待隐蔽的exe程序。main.cpp, contains the main function code, and its execution logic includes: performing sandbox detection, decrypting sensitive strings to obtain corresponding key Win32APIs, opening up a readable and executable first new memory, decrypting the first encrypted data, decrypting the second encrypted data and copying it to the first new memory, and calling the memory corresponding to the shellcode to load the exe program to be hidden.

优选地,步骤S2中,通过相邻函数首地址相减获取PE加载器中PELoader函数的字节码长度,从PELoader函数名表示的起始地址开始提取shellcode;Preferably, in step S2, the bytecode length of the PELoader function in the PE loader is obtained by subtracting the first addresses of adjacent functions, and the shellcode is extracted starting from the starting address represented by the PELoader function name;

采用逐字符方式定义PELoader函数中的字符串;Define the string in the PELoader function character by character;

PELoader函数的编译选项中,选择禁用SDL(Security Development Lifecycle ,软件安全开发周期)检查、禁用优化、禁用安全检查、禁用增量链接、采用无增强指令。In the compilation options of the PELoader function, select Disable SDL (Security Development Lifecycle) check, Disable optimization, Disable security check, Disable incremental linking, and Use no enhanced instructions.

优选地,shellcode函数包括以下步骤:Preferably, the shellcode function comprises the following steps:

步骤C1:定位PEB(ProcessEnvironmentBlock,进程环境块),遍历LDR(LeftDegree Right,中根遍历)获取Kernel32模块地址,解析Kernel32模块PE结构,获取GetProcAddress函数、LoadLibrary函数、WinExec函数;Step C1: Locate PEB (ProcessEnvironmentBlock), traverse LDR (LeftDegree Right, middle root traversal) to obtain the address of Kernel32 module, parse Kernel32 module PE structure, obtain GetProcAddress function, LoadLibrary function, WinExec function;

步骤C2:解析待加载的exe程序的PE结构,获取ImageBase字段值,利用VirtualAlloc申请第二新内存、字段值;第二新内存地址为ImageBase,字段值大小为SizeOfImage;Step C2: Parse the PE structure of the exe program to be loaded, obtain the ImageBase field value, and use VirtualAlloc to apply for the second new memory and field value; the second new memory address is ImageBase, and the field value size is SizeOfImage;

若失败,则重启程序,直至成功申请;If it fails, restart the process until the application is successful;

按照PE文件结构中的内存对齐字段大小,映射exe程序的数据到第二新内存;According to the memory alignment field size in the PE file structure, map the data of the exe program to the second new memory;

步骤C3:解析exe程序的PE结构,通过GetProcAddress和LoadLibrary函数修正IAT表中的函数地址;Step C3: Parse the PE structure of the exe program and correct the function address in the IAT table through the GetProcAddress and LoadLibrary functions;

步骤C4:解析exe程序的PE结构,修正重定位表;Step C4: parse the PE structure of the exe program and correct the relocation table;

步骤C5:修正PEB和LDR中记录的进程主模块地址为第二新内存的起始地址;Step C5: Correct the process main module address recorded in PEB and LDR to the starting address of the second new memory;

步骤C6:跳转到AddressOfEntryPoint字段指向的入口地址,启动exe程序。Step C6: Jump to the entry address pointed to by the AddressOfEntryPoint field and start the exe program.

优选地,步骤S1-步骤S3中加密所应用的加密为自定义位运算加密。Preferably, the encryption used in step S1 to step S3 is a custom bit operation encryption.

本发明所提供的技术方案可针对Windows平台的可执行程序,每次随机密钥加密使固定特征更少,每次调用CL、LINK编译、链接使生成的隐蔽exe一体性更强,能够有效降低种exe程序可疑度,提高其隐蔽性;后台存放源码C语言文件有利于实施更新,且整体实施过程更快速、成本更低、开销更小,易于实现;换言之,若应用该方法进行恶意软件检测技术的训练,有助于提升其鲁棒性,并进一步提升杀毒引擎的防御能力。The technical solution provided by the present invention can be used for executable programs on the Windows platform. Each random key encryption reduces fixed features, and each call to CL, LINK compilation and linking makes the generated hidden exe more integrated, which can effectively reduce the suspicion of such exe programs and improve their concealment. Storing source code C language files in the background is conducive to implementation updates, and the overall implementation process is faster, less costly, and less expensive, and easy to implement. In other words, if this method is applied to train malware detection technology, it will help improve its robustness and further enhance the defense capabilities of the antivirus engine.

附图说明BRIEF DESCRIPTION OF THE DRAWINGS

图1为本发明一实施例中基于CL编译器的自动化恶意软件隐蔽框架示意图。FIG1 is a schematic diagram of an automated malware concealment framework based on a CL compiler in one embodiment of the present invention.

图2为本发明一实施例中PE加载器的工作流程示意图。FIG. 2 is a schematic diagram of the working process of a PE loader according to an embodiment of the present invention.

图3为本发明一实施例中生成的隐蔽exe运行流程示意图。FIG3 is a schematic diagram of the hidden exe operation flow generated in one embodiment of the present invention.

具体实施方式DETAILED DESCRIPTION

随着互联网和计算机技术的迅猛发展,恶意软件已经成为威胁网络安全的一个重大问题,不仅能够对个人用户的隐私信息构成威胁,还能对企业和政府机构的信息系统造成严重危害。据数据显示,2019至2023年其安全解决方案平均每日检测到的恶意文件数量持续上升。其中2023年总共检测到近1.25亿个恶意文件,平均每日检测到35.1万个;而网络犯罪分子平均每天释放41.1万个恶意文件,较去年增加了近3%。Windows作为网络攻击主要目标,占比高达88%,其主要威胁为特洛伊木马。恶意软件威胁日益严峻,对个人隐私、企业和政府信息系统构成了前所未有的挑战,迫切要求加强Windows恶意软件检测技术,以更有效地防御和应对日益复杂和隐蔽的网络威胁。With the rapid development of the Internet and computer technology, malware has become a major problem threatening network security, which can not only threaten the privacy information of individual users, but also cause serious harm to the information systems of enterprises and government agencies. According to data, the average number of malicious files detected by its security solutions on a daily basis continued to rise from 2019 to 2023. Among them, nearly 125 million malicious files were detected in 2023, with an average of 351,000 detected per day; and cyber criminals released an average of 411,000 malicious files per day, an increase of nearly 3% over last year. Windows, as the main target of network attacks, accounts for as much as 88%, and its main threat is Trojan horses. The threat of malware is becoming increasingly severe, posing an unprecedented challenge to personal privacy, enterprises and government information systems. It is urgent to strengthen Windows malware detection technology to more effectively defend and respond to increasingly complex and hidden network threats.

在Windows恶意代码检测领域,研究主要集中于几个关键类别。首先是基于签名的检测,这种传统方法依靠匹配已知恶意软件的特征签名。其次是行为分析检测,它通过检测软件的行为模式(如系统调用、网络活动)来识别潜在的恶意活动。启发式检测则利用特定算法来鉴别未知恶意软件。此外,沙箱检测技术在隔离环境中运行软件来观察其行为,能有效识别0day漏洞。基于云的检测利用云计算资源进行大规模数据分析。最后,机器学习和人工智能技术通过分析数据模式自动识别恶意软件,尤其在处理大量数据和新型威胁方面显示出巨大潜力。In the field of Windows malicious code detection, research focuses on several key categories. The first is signature-based detection, a traditional method that relies on matching the characteristic signatures of known malware. The second is behavioral analysis detection, which identifies potential malicious activities by detecting the behavior patterns of software (such as system calls, network activities). Heuristic detection uses specific algorithms to identify unknown malware. In addition, sandbox detection technology runs software in an isolated environment to observe its behavior, which can effectively identify 0day vulnerabilities. Cloud-based detection uses cloud computing resources for large-scale data analysis. Finally, machine learning and artificial intelligence technologies automatically identify malware by analyzing data patterns, especially showing great potential in processing large amounts of data and new threats.

每种恶意代码检测技术都具有其独特的优势和局限性。基于签名的检测精确度高,但难以应对未知或变种恶意软件。行为分析检测能够识别新型恶意软件,但可能会产生误报。启发式检测适用于新型恶意软件,但误报率同样较高。沙箱检测能够有效识别0day攻击和新型恶意软件,但运行成本较高。基于云的检测具有实时更新和大数据分析的优势,但依赖网络连接。机器学习和人工智能技术在新型威胁检测方面表现优异,但需要大量数据训练模型。因此,在实际应用中,通常会结合多种技术,以平衡它们的优势和局限性,实现更高的检测效率和准确性。Each malicious code detection technology has its own unique advantages and limitations. Signature-based detection is highly accurate, but has difficulty dealing with unknown or variant malware. Behavioral analysis detection can identify new malware, but may produce false positives. Heuristic detection is suitable for new malware, but the false positive rate is also high. Sandbox detection can effectively identify 0day attacks and new malware, but the operating cost is high. Cloud-based detection has the advantages of real-time updates and big data analysis, but relies on network connections. Machine learning and artificial intelligence technologies excel in detecting new threats, but require a large amount of data to train the model. Therefore, in actual applications, multiple technologies are usually combined to balance their advantages and limitations to achieve higher detection efficiency and accuracy.

因此,为提升恶意软件检测技术的鲁棒性和杀毒引擎的防御能力,本发明提供了一种PE程序的隐蔽方法。Therefore, in order to improve the robustness of malware detection technology and the defense capability of antivirus engines, the present invention provides a method for concealing PE programs.

以下,发明人将结合实施例和附图对本发明的技术方法做进一步介绍。Hereinafter, the inventor will further introduce the technical method of the present invention in combination with embodiments and drawings.

实施例1Example 1

步骤S1:生成随机密钥a,加密待隐蔽的exe程序,生成第一加密数据;将密钥a和第一加密数据写入后台的data_encrypt.h文件。Step S1: Generate a random key a, encrypt the exe program to be hidden, and generate first encrypted data; write the key a and the first encrypted data into the background data_encrypt.h file.

步骤S2:生成随机密钥b,加密PE加载器的shellcode数据,生成第二加密数据;将密钥b和第二加密数据写入后台的PELoader.h文件。Step S2: Generate a random key b, encrypt the shellcode data of the PE loader, and generate second encrypted data; write the key b and the second encrypted data into the background PELoader.h file.

步骤S3:生成随机密钥c,加密敏感字符串,生成第三加密数据;将密钥和第三加密数据写入后台的basicFuncName_encrypt.h文件。Step S3: Generate a random key c, encrypt the sensitive string, and generate third encrypted data; write the key and the third encrypted data into the basicFuncName_encrypt.h file in the background.

其中,敏感字符串包括LoadLibraryA、VirtualAlloc和VirtualProtect。Among them, sensitive strings include LoadLibraryA, VirtualAlloc, and VirtualProtect.

步骤S4:命令行调用CL编译器(CL.EXE)编译C语言文件,生成obj文件;再调用LINK连接器链接obj文件,生成隐蔽的exe程序;Step S4: The command line calls the CL compiler (CL.EXE) to compile the C language file and generate an obj file; then calls the LINK connector to link the obj file and generate a hidden exe program;

其中,链接过程中链接选项选择随机基址;Among them, the link option selects a random base address during the link process;

C语言文件包括:The C language files include:

data_encrypt.h文件、PELoader.h文件、basicFuncName_encrypt.h文件;data_encrypt.h file, PELoader.h file, basicFuncName_encrypt.h file;

checkSandBox.h,包含沙箱检测代码;checkSandBox.h, contains the sandbox detection code;

decrypt.h,包含步骤S1-步骤S3对应的解密函数;decrypt.h, contains the decryption functions corresponding to steps S1-S3;

head.h,即用于声明所包含的头文件;head.h, which is used to declare the included header files;

main.cpp,包含main函数代码,用于隐蔽exe程序,代表生成隐蔽exe程序的主要执行逻辑,包括:进行沙箱检测、解密敏感字符串获取对应关键Win32API、开辟可读可执行的第一新内存、解密第一加密数据、解密第二加密数据并复制到第一新内存中,调用shellcode函数对应的内存加载待隐蔽的exe程序。main.cpp, contains the main function code, which is used to hide the exe program and represents the main execution logic of generating the hidden exe program, including: performing sandbox detection, decrypting sensitive strings to obtain corresponding key Win32APIs, opening up a readable and executable first new memory, decrypting the first encrypted data, decrypting the second encrypted data and copying it to the first new memory, and calling the memory corresponding to the shellcode function to load the exe program to be hidden.

其中,Shellcode函数是一个包含shellcode数据的函数。shellcode数据是一段二进制代码,通常指代一段代码的二进制数据(字节码)。shellcode数据本身并不是一个函数,它只是一段可以在内存中执行的机器码。C语言中的shellcode通常由地址无关代码组成。仅在本发明中,所构造的shellcode为从一整个函数提取的。Among them, the Shellcode function is a function containing shellcode data. Shellcode data is a piece of binary code, usually referring to the binary data (bytecode) of a piece of code. Shellcode data itself is not a function, it is just a piece of machine code that can be executed in memory. Shellcode in C language usually consists of address-independent code. Only in the present invention, the constructed shellcode is extracted from an entire function.

将隐蔽的exe程序应用于恶意软件检测训练。具体地,用原始恶意软件的隐蔽处理后的隐蔽exe程序加入检测模型的训练集中,重新训练模型,最终提升恶意软件检测技术的鲁棒性,提升杀毒引擎的防御能力。The hidden exe program is applied to malware detection training. Specifically, the hidden exe program after the original malware is hidden is added to the training set of the detection model, and the model is retrained, which ultimately improves the robustness of the malware detection technology and enhances the defense capability of the antivirus engine.

优选地,步骤S2中,通过相邻函数首地址相减获取PE加载器中PELoader函数的字节码长度,从PELoader函数名表示的起始地址开始提取shellcode数;Preferably, in step S2, the bytecode length of the PELoader function in the PE loader is obtained by subtracting the first addresses of adjacent functions, and the shellcode number is extracted starting from the starting address represented by the PELoader function name;

采用逐字符方式定义PELoader函数中的字符串;Define the string in the PELoader function character by character;

PELoader函数的编译选项中,选择禁用SDL检查、禁用优化、禁用安全检查、禁用增量链接、采用无增强指令In the compilation options of the PELoader function, select Disable SDL check, Disable optimization, Disable security check, Disable incremental linking, and Use no enhanced instructions

优选地,shellcode包括以下步骤:Preferably, the shellcode includes the following steps:

步骤C1:定位PEB,遍历LDR获取Kernel32模块地址,解析Kernel32模块PE结构,获取GetProcAddress函数、LoadLibrary函数、WinExec函数;Step C1: locate PEB, traverse LDR to obtain Kernel32 module address, parse Kernel32 module PE structure, obtain GetProcAddress function, LoadLibrary function, WinExec function;

步骤C2:解析待加载的exe程序的PE结构,获取ImageBase字段值,利用VirtualAlloc申请第二新内存、字段值;第二新内存地址为ImageBase,字段值大小为SizeOfImage;Step C2: Parse the PE structure of the exe program to be loaded, obtain the ImageBase field value, and use VirtualAlloc to apply for the second new memory and field value; the second new memory address is ImageBase, and the field value size is SizeOfImage;

若失败,则重启程序,直至成功申请;If it fails, restart the process until the application is successful;

按照PE文件结构中的内存对齐字段大小,映射exe程序的数据到第二新内存;According to the memory alignment field size in the PE file structure, map the data of the exe program to the second new memory;

步骤C3:解析exe程序的PE结构,通过GetProcAddress和LoadLibrary函数修正IAT(Import Address Table,通道地址表)表中的函数地址;Step C3: Parse the PE structure of the exe program and correct the function address in the IAT (Import Address Table) table through the GetProcAddress and LoadLibrary functions;

步骤C4:解析exe程序的PE结构,修正重定位表;Step C4: parse the PE structure of the exe program and correct the relocation table;

步骤C5:修正PEB和LDR中记录的进程主模块地址为第二新内存的起始地址;Step C5: Correct the process main module address recorded in PEB and LDR to the starting address of the second new memory;

步骤C6:跳转到AddressOfEntryPoint字段指向的入口地址,启动exe程序。Step C6: Jump to the entry address pointed to by the AddressOfEntryPoint field and start the exe program.

优选地,步骤S1-步骤S3中加密采用自定义位运算加密算法。Preferably, the encryption in steps S1 to S3 adopts a custom bit operation encryption algorithm.

加密细节:加密采用字节流加密方式,对于明文数据中的每个字节,都执行以下操作:Encryption details: Encryption uses byte stream encryption. For each byte in the plaintext data, the following operations are performed:

a. 使用密钥中的对应字节进行异或运算,以混淆数据;a. XOR the corresponding bytes in the key to obfuscate the data;

b.利用当前字节的序号对8取模,计算出循环移位的位数,将字节进行循环移位;b. Use the sequence number of the current byte to take modulo 8, calculate the number of bits to be cyclically shifted, and cyclically shift the byte;

c. 对字节进行取反操作,增加加密的随机性;c. Perform a byte inversion operation to increase the randomness of encryption;

d.再次使用密钥中的下一个字节进行异或运算。最后将加密后的每个字节拆分为高四位和低四位两字节,得到最终加密数据序列,以降低加密数据的熵值。d. Use the next byte in the key to perform XOR operation again. Finally, split each encrypted byte into two bytes, the upper four bits and the lower four bits, to obtain the final encrypted data sequence to reduce the entropy value of the encrypted data.

自定义位运算加密实现过程简单高效,通过异或运算和位移操作结合密钥混淆并结合取反操作,提供了一定的数据保护和安全性。且最终拆分字节有效降低加密数据熵值。The implementation process of custom bit operation encryption is simple and efficient. It provides certain data protection and security through XOR operation and shift operation combined with key obfuscation and negation operation. And finally, splitting bytes effectively reduces the entropy value of encrypted data.

可选的,还可以采用为加密函数接口,包含参数:明文指针pBuffer、明文大小bSize,密钥指针pKey、密钥大小kSize,outDataSize指针返回加密后的数据大小。返回值:成功返回加密后的密文指针,失败返回NULL。任意加密方法都可以封装到该接口函数。对应解密函数接口定义相同。Optionally, it can also be used as an encryption function interface, including parameters: plaintext pointer pBuffer, plaintext size bSize, key pointer pKey, key size kSize, outDataSize pointer returns the encrypted data size. Return value: Returns the encrypted ciphertext pointer if successful, and returns NULL if failed. Any encryption method can be encapsulated into this interface function. The corresponding decryption function interface definition is the same.

实施例2Example 2

如图1所示,本实施例所提供的隐蔽方法,包括:As shown in FIG1 , the concealment method provided in this embodiment includes:

步骤1:生成随机密钥a,对待隐蔽的exe程序进行加密处理,将密钥a和加密数据写入后台data_encrypt.h文件中;Step 1: Generate a random key a, encrypt the hidden exe program, and write the key a and encrypted data into the background data_encrypt.h file;

步骤2:生成随机密钥b,对PE加载器的shellcode函数进行加密处理,将密钥b和加密数据写入后台PELoader.h文件中;Step 2: Generate a random key b, encrypt the shellcode function of the PE loader, and write the key b and encrypted data into the background PELoader.h file;

步骤3:生成随机密钥c,对相应敏感字符串进行加密处理,将密钥和加密数据写入后台basicFuncName_encrypt.h文件中;Step 3: Generate a random key c, encrypt the corresponding sensitive string, and write the key and encrypted data into the background basicFuncName_encrypt.h file;

步骤4:命令行调用CL编译器和LINK链接器分别对后台C语言文件进行编译、链接,生成隐蔽处理后的exe程序。其中,链接选项选择随机基址/DYNAMICBASE,这个地址指生成的exe启动时的内存基址,若选择固定基址,则exe每次启动的内存基址都是ImageBase+AddressOfEntryPoint;若选择随机基址,则exe程序每次启动的内存基址为随机基址+AddressOfEntryPoint。Step 4: The command line calls the CL compiler and LINK linker to compile and link the background C language file respectively, and generate the hidden exe program. Among them, the link option selects random base address/DYNAMICBASE, which refers to the memory base address when the generated exe is started. If a fixed base address is selected, the memory base address of each exe startup is ImageBase+AddressOfEntryPoint; if a random base address is selected, the memory base address of each exe startup is random base address+AddressOfEntryPoint.

进一步地,步骤1、步骤2、步骤3中的加密算法相同,为自定义位运算(与、或、非、异或、移位)加密。Furthermore, the encryption algorithms in step 1, step 2, and step 3 are the same, which are customized bit operation (AND, OR, NOT, XOR, shift) encryption.

进一步地,步骤2中,如图2所示,PE加载器的功能为实现内存加载运行exe文件,传入参数为待加载exe内存起始地址,实现流程为:Further, in step 2, as shown in FIG2 , the function of the PE loader is to implement memory loading and running of the exe file, and the input parameter is the memory start address of the exe to be loaded, and the implementation process is:

1)定位Kernel32模块基址获取关键函数;1) Locate the base address of the Kernel32 module to obtain key functions;

2)申请指定内存地址,映射exe;2) Apply for a specified memory address and map exe;

3)修正IAT表;3) Revise the IAT table;

4)修正重定位表;4) Correct the relocation table;

5)修正进程中主模块地址;5) Correct the main module address in the process;

6)跳转到入口地址启动exe;6) Jump to the entry address to start exe;

进一步地,步骤2中,提取PELoader的shellcode方式为通过相邻函数首地址相减获取PELoader函数的字节码长度(二进制PE文件中,函数块按照函数名的字母顺序排列),从PELoader函数名表示的起始地址开始提取shellcode,需注意以下几个点:Furthermore, in step 2, the method of extracting the PELoader shellcode is to obtain the bytecode length of the PELoader function by subtracting the first addresses of adjacent functions (in the binary PE file, the function blocks are arranged in alphabetical order according to the function names), and extract the shellcode starting from the starting address represented by the PELoader function name. The following points should be noted:

1)PELoader函数中字符串定义采用逐字符方式,确保其存储在字节码中;1) The string definition in the PELoader function is character by character to ensure that it is stored in the bytecode;

2)PELoader代码的编译选项中(编译环境为Visual Studio 2019),选择禁用SDL检查(/sdl-),禁用优化(/Od),采用无增强指令(/arch:IA32),禁用安全检查(/GS-),禁用增量链接(/INCREMENTAL:NO);2) In the compilation options of the PELoader code (compilation environment is Visual Studio 2019), select Disable SDL check (/sdl-), Disable optimization (/Od), Use non-enhanced instructions (/arch:IA32), Disable security check (/GS-), Disable incremental linking (/INCREMENTAL:NO);

进一步,步骤3中的敏感字符串为“LoadLibraryA”、“VirtualAlloc”、“VirtualProtect”。Furthermore, the sensitive strings in step 3 are “LoadLibraryA”, “VirtualAlloc”, and “VirtualProtect”.

进一步地,步骤4中,后台的C语言文件包括:Furthermore, in step 4, the background C language file includes:

1)basicFuncName_encrypt.h,包含敏感字符串加密数据及其密钥;1) basicFuncName_encrypt.h, which contains sensitive string encryption data and its key;

2)data_encrypt.h,包含恶意exe的加密数据及其密钥;2) data_encrypt.h, which contains the encrypted data and key of the malicious exe;

3)PELoader.h,包含PE加载器shellcode的加密数据及其密钥;3) PELoader.h, which contains the encrypted data of the PE loader shellcode and its key;

4)checkSandBox.h,包含沙箱检测代码,该部分代码可自定义;4) checkSandBox.h, contains sandbox detection code, which can be customized;

5)decrypt.h,包含步骤1、步骤2、步骤3加密函数对应的解密函数;5) decrypt.h, contains the decryption functions corresponding to the encryption functions in step 1, step 2, and step 3;

6)head.h,用于声明所包含的头文件,如#pragma once、#include<stdio.h>、#include<Windows.h>;6) head.h, used to declare included header files, such as #pragma once, #include<stdio.h>, #include<Windows.h>;

7)main.cpp,包含main函数代码,如图3所示,其主功能流程为:进行沙箱检测、解密敏感字符串数据获取对应关键Win32API、开辟一段可读可执行内存、解密PE加载器shellcode的加密数据并复制到新内存中、解密待隐蔽exe的加密数据,调用PE加载器shellcode内存加载待隐蔽exe;7) main.cpp, contains the main function code, as shown in Figure 3. Its main function flow is: perform sandbox detection, decrypt sensitive string data to obtain the corresponding key Win32API, open a readable and executable memory, decrypt the encrypted data of the PE loader shellcode and copy it to the new memory, decrypt the encrypted data of the exe to be hidden, and call the PE loader shellcode memory to load the exe to be hidden;

进一步地,步骤4中,CL编译器和LINK链接器来自Visual Studio 2019,先调用CL编译器对源码文件进行编译,生成obj文件,再调用LINK连接器对其进行链接,生成隐蔽处理后的exe,其中链接选项必须选择随机地址(/DYNAMICBASE),详细编译和链接选项为:Furthermore, in step 4, the CL compiler and LINK linker are from Visual Studio 2019. First, the CL compiler is called to compile the source code file to generate an obj file, and then the LINK connector is called to link it to generate a hidden exe. The link option must select a random address (/DYNAMICBASE). The detailed compilation and link options are:

1)CL编译器编译选项:1) CL compiler compilation options:

"x86/cl.exe" /I"./Include/1ucrt" /I"./Include/1include" /I"./Include/1shared"/I"./Include/1um" /c /Zi /nologo /W3 /WX- /diagnostics:column /sdl /O2 /Oi /Oy- /GL /D WIN32 /D NDEBUG /D _CONSOLE /D _UNICODE /D UNICODE /Gm-/EHsc /MD /GS /Gy /fp:precise /permissive- /Zc:wchar_t /Zc:forScope /Zc:inline/Fo"RELEASE\\" /Fd"RELEASE\VC142.PDB" /external:W3 /Gd /TP/analyze- /FCMAIN.CPP;"x86/cl.exe" /I"./Include/1ucrt" /I"./Include/1include" /I"./Include/1shared"/I"./Include/1um" /c /Zi /nologo / W3 /WX- /diagnostics:column /sdl /O2 /Oi /Oy- /GL /D WIN32 /D NDEBUG /D _CONSOLE /D _UNICODE /D UNICODE /Gm-/EHsc /MD /GS /Gy /fp:precise / permissive- /Zc:wchar_t /Zc:forScope /Zc:inline/Fo"RELEASE\\" /Fd"RELEASE\VC142.PDB" /external:W3 /Gd /TP/analyze- /FCMAIN.CPP;

2)LINK链接器链接选项:2) LINK linker link options:

"x86/link.exe" "RELEASE\\main.obj" /LIBPATH:"./lib/lib_x86" /LIBPATH:"./lib/um-x86"/LIBPATH:"./lib/urct-x86" /OUT:".\MAIN.EXE" /INCREMENTAL:NO /NOLOGO KERNEL32.LIB USER32.LIB GDI32.LIB WINSPOOL.LIBCOMDLG32.LIBADVAPI32.LIB SHELL32.LIB OLE32.LIB OLEAUT32.LIB UUID.LIBODBC32.LIB ODBCCP32.LIB /MANIFEST /MANIFESTUAC:"level='asInvoker'uiAccess='false'" /manifest:embed /PDB:".\RELEASE\main.PDB" /SUBSYSTEM:CONSOLE /OPT:REF/OPT:ICF /LTCG:incremental/LTCGOUT:"RELEASE\main.IOBJ" /TLBID:1 /DYNAMICBASE/NXCOMPAT /MACHINE:X86 /SAFESEH RELEASE\MAIN.OBJ。"x86/link.exe" "RELEASE\\main.obj" /LIBPATH:"./lib/lib_x86" /LIBPATH:"./lib/um-x86"/LIBPATH:"./lib/urct-x86" / OUT:".\MAIN.EXE" /INCREMENTAL:NO /NOLOGO KERNEL32.LIB USER32.LIB GDI32.LIB WINSPOOL.LIBCOMDLG32.LIBADVAPI32.LIB SHELL32.LIB OLE32.LIB OLEAUT32.LIB UUID.LIBODBC32.LIB ODBCCP32.LIB /MANIFEST /MANIFESTUAC:"level='asInvoker'uiAccess='false'" /manifest:embed /PDB:".\RELEASE\main.PDB" /SUBSYSTEM:CONSOLE /OPT:REF/OPT:ICF /LTCG:incremental/LTCGOUT:"RELEASE\main.IOBJ" /TLBID:1 /DYNAMICBASE/NXCOMPAT /MACHINE:X86 /SAFESEH RELEASE\MAIN.OBJ.

与现有技术相比,本实施例的有益效果是:Compared with the prior art, the beneficial effects of this embodiment are:

提取PE加载器的shellcode,每次生成随机密钥对shellcode、待隐蔽exe数据和敏感字符串进行加密并写入后台C语言文件,再调用CL编译器和LINK链接器对后台源码文件进行编译、链接,生成隐蔽exe程序,最终达到绕过查杀引擎检测的效果。与其他恶意软件检测的对抗方法相比,本发明中提出的隐蔽方法,每次随机密钥加密使固定特征更少,每次调用CL、LINK编译、链接使生成的隐蔽exe一体性更强,后台存放源码文件方便实施更新(例如反杀箱代码),且整体实施过程开销小,易于实现。Extract the shellcode of the PE loader, generate a random key each time to encrypt the shellcode, the exe data to be concealed and the sensitive string and write them into the background C language file, then call the CL compiler and LINK linker to compile and link the background source code file to generate a concealed exe program, and finally achieve the effect of bypassing the detection of the anti-killing engine. Compared with other malware detection countermeasures, the concealment method proposed in the present invention has fewer fixed features each time the random key encryption, and each call of CL, LINK compilation and linking makes the generated concealed exe more integrated, and the source code file is stored in the background to facilitate the implementation of updates (such as anti-killing box code), and the overall implementation process has low overhead and is easy to implement.

本发明中基于CL的自动化恶意软件隐蔽方法,对于多种开源恶意软件查杀引擎都能达到不错规避效果。与定位去除特征码的规避方法相比,本方法不会影响exe的原本功能;与常见基于加密加壳的规避方法相比,本方法一体性更高,更不易察觉异常;与普通内存加载的规避技术相比,本方法调用CL、LINK自动编译链接,无需每次人工编译链接,自动化程度高;与基于GAN和基于梯度的恶意软件规避方法相比,本方法实现更快速、成本更低;有效提高检测技术的鲁棒性。The CL-based automated malware concealment method of the present invention can achieve good evasion effects for a variety of open source malware detection engines. Compared with the evasion method of positioning and removing signature codes, this method will not affect the original function of exe; compared with the common evasion method based on encryption and shelling, this method has higher integrity and is less likely to detect abnormalities; compared with the evasion technology of ordinary memory loading, this method calls CL and LINK to automatically compile and link, without the need for manual compilation and linking each time, and has a high degree of automation; compared with the GAN-based and gradient-based malware evasion methods, this method is faster and less costly; and effectively improves the robustness of the detection technology.

可见,本发明所提供的技术方案可针对Windows平台的可执行程序,每次随机密钥加密使固定特征更少,每次调用CL、LINK编译、链接使生成的隐蔽exe程序整体性更强,能够有效降低exe程序可疑度,提高其隐蔽性;后台存放源码C语言文件有利于实施更新,且整体实施过程更快速、成本更低、开销更小,易于实现;换言之,若应用该方法进行恶意软件检测技术的训练,有助于提升其鲁棒性,并进一步提升杀毒引擎的防御能力。It can be seen that the technical solution provided by the present invention can be used for executable programs on the Windows platform. Each random key encryption makes the fixed features less, and each call to CL, LINK compilation and linking makes the generated hidden exe program more integrated, which can effectively reduce the suspicion of the exe program and improve its concealment; storing the source code C language file in the background is conducive to the implementation of updates, and the overall implementation process is faster, lower cost, less overhead, and easy to implement; in other words, if this method is applied to train malware detection technology, it will help improve its robustness and further enhance the defense capability of the antivirus engine.

以上各优选方法在取得上述有益效果的基础上,还取得了以下有益效果:PELoader函数的shellcode为恶意代码检测的强特征,利用随机密钥加密shellcode函数有利于特征隐蔽;通过内存加载运行exe程序,可防止恶意软件的原始二进制数据暴露在本地文件中;自定义位运算加密实现过程简单高效,通过异或运算和位移操作结合密钥混淆并结合取反操作,提供了一定的数据保护和安全性,且拆分字节可有效降低加密数据熵值。In addition to achieving the above-mentioned beneficial effects, the above-mentioned preferred methods also achieve the following beneficial effects: the shellcode of the PELoader function is a strong feature of malicious code detection, and encrypting the shellcode function with a random key is conducive to feature concealment; loading and running the exe program through memory can prevent the original binary data of the malware from being exposed in local files; the custom bit operation encryption implementation process is simple and efficient, and provides certain data protection and security through XOR operations and shift operations combined with key obfuscation and inversion operations, and splitting bytes can effectively reduce the entropy value of encrypted data.

以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。The above are only preferred embodiments of the present invention and are not intended to limit the present invention. For those skilled in the art, the present invention may have various modifications and variations. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present invention shall be included in the protection scope of the present invention.

Claims (4)

1.一种PE程序的隐蔽方法,其特征在于,包括以下步骤:1. A method for concealing a PE program, characterized by comprising the following steps: 步骤S1:生成随机密钥a,加密待隐蔽的exe程序,生成第一加密数据;将密钥a和第一加密数据写入后台的data_encrypt.h文件;Step S1: Generate a random key a, encrypt the exe program to be hidden, and generate the first encrypted data; write the key a and the first encrypted data into the background data_encrypt.h file; 步骤S2:生成随机密钥b,加密PE加载器的shellcode,生成第二加密数据;将密钥b和第二加密数据写入后台的PELoader.h文件;Step S2: Generate a random key b, encrypt the shellcode of the PE loader, and generate second encrypted data; write the key b and the second encrypted data into the background PELoader.h file; 步骤S3:生成随机密钥c,加密敏感字符串,生成第三加密数据;将密钥和第三加密数据写入后台的basicFuncName_encrypt.h文件;Step S3: Generate a random key c, encrypt the sensitive string, and generate the third encrypted data; write the key and the third encrypted data into the basicFuncName_encrypt.h file in the background; 其中,敏感字符串包括LoadLibraryA、VirtualAlloc和VirtualProtect;Among them, sensitive strings include LoadLibraryA, VirtualAlloc and VirtualProtect; 步骤S4:命令行调用CL编译器编译C语言文件,生成obj文件;再调用LINK连接器链接obj文件,生成隐蔽的exe程序;Step S4: The command line calls the CL compiler to compile the C language file to generate an obj file; then calls the LINK connector to link the obj file to generate a hidden exe program; 其中,链接过程中链接选项选择随机基址;Among them, the link option selects a random base address during the link process; C语言文件包括:The C language files include: data_encrypt.h文件、PELoader.h文件、basicFuncName_encrypt.h文件;data_encrypt.h file, PELoader.h file, basicFuncName_encrypt.h file; checkSandBox.h,包含沙箱检测代码;checkSandBox.h, contains the sandbox detection code; decrypt.h,包含步骤S1-步骤S3对应的解密函数;decrypt.h, contains the decryption functions corresponding to steps S1-S3; head.h,用于声明所包含的头文件;head.h, used to declare the included header files; main.cpp,包含main函数代码,其执行逻辑包括:进行沙箱检测、解密敏感字符串获取对应关键Win32API、开辟可读可执行的第一新内存、解密第一加密数据、解密第二加密数据并复制到第一新内存中,调用shellcode对应的内存加载待隐蔽的exe程序。main.cpp, contains the main function code, and its execution logic includes: performing sandbox detection, decrypting sensitive strings to obtain corresponding key Win32APIs, opening up a readable and executable first new memory, decrypting the first encrypted data, decrypting the second encrypted data and copying it to the first new memory, and calling the memory corresponding to the shellcode to load the exe program to be hidden. 2.如权利要求1所述的一种PE程序的隐蔽方法,其特征在于,步骤S2中PE加载器的shellcode提取方式包括:2. A method for concealing a PE program as claimed in claim 1, characterized in that the shellcode extraction method of the PE loader in step S2 comprises: 通过相邻函数首地址相减获取PE加载器中PELoader函数的字节码长度,从PELoader函数名表示的起始地址开始提取shellcode;The bytecode length of the PELoader function in the PE loader is obtained by subtracting the first addresses of adjacent functions, and the shellcode is extracted starting from the starting address represented by the PELoader function name; 采用逐字符方式定义PELoader函数中的字符串;Define the string in the PELoader function character by character; PELoader函数的编译选项中,选择禁用SDL检查、禁用优化、禁用安全检查、禁用增量链接、采用无增强指令。In the compilation options of the PELoader function, select disable SDL check, disable optimization, disable security check, disable incremental linking, and use no enhanced instructions. 3.如权利要求1所述的一种PE程序的隐蔽方法,其特征在于,shellcode包括以下步骤:3. A method for concealing a PE program as claimed in claim 1, characterized in that the shellcode comprises the following steps: 步骤C1:定位PEB,遍历LDR获取Kernel32模块地址,解析Kernel32模块PE结构,获取GetProcAddress函数、LoadLibrary函数、WinExec函数;Step C1: locate PEB, traverse LDR to obtain Kernel32 module address, parse Kernel32 module PE structure, obtain GetProcAddress function, LoadLibrary function, WinExec function; 步骤C2:解析待加载的exe程序的PE结构,获取ImageBase字段值,利用VirtualAlloc申请第二新内存、字段值;第二新内存地址为ImageBase,字段值大小为SizeOfImage;Step C2: Parse the PE structure of the exe program to be loaded, obtain the ImageBase field value, and use VirtualAlloc to apply for the second new memory and field value; the second new memory address is ImageBase, and the field value size is SizeOfImage; 若失败,则重启程序,直至成功申请;If it fails, restart the process until the application is successful; 按照PE文件结构中的内存对齐字段大小,映射exe程序的数据到第二新内存;According to the memory alignment field size in the PE file structure, map the data of the exe program to the second new memory; 步骤C3:解析exe程序的PE结构,通过GetProcAddress和LoadLibrary函数修正IAT表中的函数地址;Step C3: Parse the PE structure of the exe program and correct the function address in the IAT table through the GetProcAddress and LoadLibrary functions; 步骤C4:解析exe程序的PE结构,修正重定位表;Step C4: parse the PE structure of the exe program and correct the relocation table; 步骤C5:修正PEB和LDR中记录的进程主模块地址为第二新内存的起始地址;Step C5: Correct the process main module address recorded in PEB and LDR to the starting address of the second new memory; 步骤C6:跳转到AddressOfEntryPoint字段指向的入口地址,启动exe程序。Step C6: Jump to the entry address pointed to by the AddressOfEntryPoint field and start the exe program. 4.如权利要求1所述的一种PE程序的隐蔽方法,其特征在于,步骤S1-步骤S3中加密采用自定义位运算加密算法。4. A method for concealing a PE program as described in claim 1, characterized in that the encryption in steps S1 to S3 adopts a custom bit operation encryption algorithm.
CN202410633541.1A 2024-05-21 2024-05-21 Concealment method of PE program Pending CN118520462A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410633541.1A CN118520462A (en) 2024-05-21 2024-05-21 Concealment method of PE program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410633541.1A CN118520462A (en) 2024-05-21 2024-05-21 Concealment method of PE program

Publications (1)

Publication Number Publication Date
CN118520462A true CN118520462A (en) 2024-08-20

Family

ID=92280592

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410633541.1A Pending CN118520462A (en) 2024-05-21 2024-05-21 Concealment method of PE program

Country Status (1)

Country Link
CN (1) CN118520462A (en)

Similar Documents

Publication Publication Date Title
Konstantinou et al. Metamorphic virus: Analysis and detection
Mavrogiannopoulos et al. A taxonomy of self-modifying code for obfuscation
US7958554B2 (en) Secure method and system for computer protection
RU2491615C1 (en) System and method of creating software detection records
US8195953B1 (en) Computer program with built-in malware protection
US20050251570A1 (en) Intrusion detection system
Caballero et al. Input generation via decomposition and re-stitching: Finding bugs in malware
Brezinski et al. Metamorphic malware and obfuscation: a survey of techniques, variants, and generation kits
Cicala et al. Analysis of encryption key generation in modern crypto ransomware
CN101866406A (en) A defense method for stack overflow attack
Poudyal et al. Pefile analysis: a static approach to ransomware analysis
Masid et al. Application of the SAMA methodology to Ryuk malware
Luoma-aho Analysis of Modern Malware: obfuscation techniques
CN118827163A (en) Backend interface call protection method, device, electronic device and storage medium
Ashawa et al. An Exploration of shared code execution for malware analysis
Ajmal et al. Defeating modern day anti-viruses for defense evaluation
Lemmou et al. Inside gandcrab ransomware
Zhang Polymorphic and metamorphic malware detection
CN118520462A (en) Concealment method of PE program
Vidyarthi et al. Identifying ransomware-specific properties using static analysis of executables
AbuShqeir Common Pattern Generation for the Detection of LOLBin Attacks
Sumbly et al. Static and Dynamic Analysis of Clop Ransomware
Singh A Digital Forensic Readiness Approach for Ransomware Forensics
Glani et al. Ayatdroid: a lightweight code cloning technique using different static features
Nguyen A study of polymorphic virus detection

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination