CN111506437A - 基于windows原始调用接口的靶场应用程序调用方法、系统、电子设备及存储介质 - Google Patents

基于windows原始调用接口的靶场应用程序调用方法、系统、电子设备及存储介质 Download PDF

Info

Publication number
CN111506437A
CN111506437A CN202010243853.3A CN202010243853A CN111506437A CN 111506437 A CN111506437 A CN 111506437A CN 202010243853 A CN202010243853 A CN 202010243853A CN 111506437 A CN111506437 A CN 111506437A
Authority
CN
China
Prior art keywords
original
asm
windows
calling
interface
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
CN202010243853.3A
Other languages
English (en)
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.)
BEIJING SAFE-CODE TECHNOLOGY CO LTD
Original Assignee
BEIJING SAFE-CODE TECHNOLOGY CO LTD
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 BEIJING SAFE-CODE TECHNOLOGY CO LTD filed Critical BEIJING SAFE-CODE TECHNOLOGY CO LTD
Priority to CN202010243853.3A priority Critical patent/CN111506437A/zh
Publication of CN111506437A publication Critical patent/CN111506437A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及网络靶场应用程序调用技术领域,尤其涉及一种基于windows原始调用接口的靶场应用程序调用方法、系统、电子设备及存储介质;调用方法,包括以下步骤:导出ntdll原始调用接口,输出对应asm和h文件;在工程中,将得到的asm和h文件,添加到工程,并设置asm文件为“Microsoft Macro Assemble”;在工程中使用asm和h中导出的函数完成对应功能;编译、连接生成应用程序。本发明所公开的基于windows原始调用接口的靶场应用程序调用方法、系统、电子设备及存储介质,跳过Win32 API层,直接调用ntdll.dll函数,开发各种应用功能,响应速度快,无需通过安全防护软件检测;不存在误查杀和误拦截等问题。

Description

基于windows原始调用接口的靶场应用程序调用方法、系统、 电子设备及存储介质
技术领域
本发明涉及网络靶场应用程序调用技术领域,尤其涉及一种基于windows原始调用接口的靶场应用程序调用方法、系统、电子设备及存储介质。
背景技术
1什么是windows原生调用机制
微软为了保护操作系统的安全性和稳定性,把系统分为内核层和用户层(内核层的代码只能在当CPU的特权级为R0状态下执行,用户层的代码在CPU特权级为R0和R3都能执行),windows在内核层构建了一套管理和保护机制,用于维护系统的正常运行,这些机制的实现被称为系统内核。为了区别于windows的内部实现,把我们日常使用的应用程序所运行的环境称为用户层,此时CPU特权级为R3,无法调用系统的内核函数。但是,只有内核函数才能操控硬件,所以windows又提供了可在用户层调用的函数接口,即Windows API,调用API最后调用的是系统的内核函数。
所有基于NT内核(XP到Win10都是基于NT内核开发)的Windows API都可以称为Win32,即便是64位系统,也用这个名称,因为64位系统是完全兼容32位程序的(纯32位系统不兼容16位程序),几乎所有运行在Windows用户层的程序都调用了Win 32API。
一个Win32 API调用的大体过程如下:Win32 API(kernel32.dll、user32.dll等函数)->调用ntdll.dll函数->使CPU进入内核模式(改变CPU特权级为R0)->查表并调用ntoskrnl.exe或win32k.sys内的函数(ntoskrnl.exe即nt系统内核程序,提供内存、进程管理等服务,同时内部包含了windows的内核函数。在任务管理器中的名字为System)->执行结束返回到用户模式(改模CPU特权级为R3)
Win 32API大多是微软提供的给ntdll.dll函数的封装,而ntdll.dll是执行内核函数的中介层,由其内的函数进入内核(改变CPU特权级)并调用内核函数。ntdll函数像内核中的函数一样,使用API和结构体,原始调用接口是指跳过win32API接口直接调用ntdll接口函数实现与底层操作系统交互。
2存在问题
靶场系统通常安装安全防护软件,如个人防火墙、杀毒软件、终端代理软件等,这些防护软件通过挂钩Win32 API,实现对于windows操作系统各种操作系统检测。靶场系统应用系统在分析恶意软件、与远端通信或者更改系统配置时,存在以下问题:靶场应用程序响应速度慢,由于目前各种安全防护软件在常用win32函数中设置钩子函数,应用程序响应速度较慢,用户体验较差;靶场应用程序涉及到文件访问、网络连接和权限切换,容易被杀毒软件认为是恶意软件,进行查杀,或者被主机防火墙误拦截,阻止远程访问;安全防护软件拦截靶场应用程序中的win32调用函数,弹出各种用户确认提示框,必须人工确认,才能继续,无法实现无人值守。
因此,为了解决上述问题,急需发明一种基于windows原始调用接口的靶场应用程序调用方法、系统、电子设备及存储介质。
发明内容
本发明的目的在于:提供一种基于windows原始调用接口的靶场应用程序调用方法、系统、电子设备及存储介质,跳过Win32 API层,直接调用ntdll.dll函数,开发各种应用功能,响应速度快,无需通过安全防护软件检测;不存在误查杀和误拦截等问题。
本发明提供了下述方案:
一种基于windows原始调用接口的靶场应用程序调用方法,包括以下步骤:
导出ntdll原始调用接口,输出对应asm和h文件;
在工程中,将得到的asm和h文件,添加到工程,并设置asm文件为“MicrosoftMacro Assemble”;
在工程中使用asm和h中导出的函数完成对应功能;
编译、连接生成应用程序。
还包括:
开发环境中,开启汇编编译选项;
导出ntdll原始调用接口,输出对应asm和h文件的步骤,具体为:
分析选定windows操作系统的ntoskrnl.exe文件,导出ntdll原始调用接口,输出对应asm和h文件。
ntdll原始调用接口,包括函数名和函数参数。
一种实现所述的基于windows原始调用接口的靶场应用程序调用方法的基于windows原始调用接口的靶场应用程序调用系统,包括:
原始调用接口导出模块,用于导出ntdll原始调用接口,输出对应asm和h文件;
开发模块,用于在工程中,将得到的asm和h文件,添加到工程,并设置asm文件为“Microsoft Macro Assemble”;在工程中使用asm和h中导出的函数完成对应功能;
应用程序生成模块,用于编译、连接生成应用程序。
导出ntdll原始调用接口,输出对应asm和h文件的步骤,具体为:
分析选定windows操作系统的ntoskrnl.exe文件,导出ntdll原始调用接口,输出对应asm和h文件。
ntdll原始调用接口,包括函数名和函数参数。
原始调用接口导出模块、开发模块和应用程序生成模块依次电连接。
一种电子设备,包括存储器和处理器;所述存储器用于存储计算机程序;所述处理器执行所述存储器中的计算机程序,以实现所述的基于windows原始调用接口的靶场应用程序调用方法。
一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时,用于实现所述的基于windows原始调用接口的靶场应用程序调用方法。
本发明产生的有益效果:
本发明所公开的基于windows原始调用接口的靶场应用程序调用方法、系统、电子设备及存储介质,调用方法,包括以下步骤:导出ntdll原始调用接口,输出对应asm和h文件;在工程中,将得到的asm和h文件,添加到工程,并设置asm文件为“Microsoft MacroAssemble”;在工程中使用asm和h中导出的函数完成对应功能;编译、连接生成应用程序;跳过Win32 API层,直接调用ntdll.dll函数,开发各种应用功能,响应速度快,无需通过安全防护软件检测;不存在误查杀和误拦截等问题;规避安全防护软件检测,不会弹出各种确认框,实现无人值守。
附图说明
图1为本发明的基于windows原始调用接口的靶场应用程序调用方法的流程框图。
图2为本发明的基于windows原始调用接口的靶场应用程序调用系统的结构框图。
图3为本发明的电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整地传达给本领域的技术人员。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非被特定定义,否则不会用理想化或过于正式的含义来解释。
参见图1所示,一种基于windows原始调用接口的靶场应用程序调用方法,包括以下步骤:
导出ntdll原始调用接口,输出对应asm和h文件;
在工程中,将得到的asm和h文件,添加到工程,并设置asm文件为“MicrosoftMacro Assemble”;
在工程中使用asm和h中导出的函数完成对应功能;
编译、连接生成应用程序。
还包括:
开发环境中,开启汇编编译选项;
导出ntdll原始调用接口,输出对应asm和h文件的步骤,具体为:
分析选定windows操作系统的ntoskrnl.exe文件,导出ntdll原始调用接口,输出对应asm和h文件。
ntdll原始调用接口,包括函数名和函数参数。
参见图2所示,一种实现所述的基于windows原始调用接口的靶场应用程序调用方法的基于windows原始调用接口的靶场应用程序调用系统,包括:
原始调用接口导出模块,用于导出ntdll原始调用接口,输出对应asm和h文件;
开发模块,用于在工程中,将得到的asm和h文件,添加到工程,并设置asm文件为“Microsoft Macro Assemble”;在工程中使用asm和h中导出的函数完成对应功能;
应用程序生成模块,用于编译、连接生成应用程序。
导出ntdll原始调用接口,输出对应asm和h文件的步骤,具体为:
分析选定windows操作系统的ntoskrnl.exe文件,导出ntdll原始调用接口,输出对应asm和h文件。
ntdll原始调用接口,包括函数名和函数参数。
原始调用接口导出模块、开发模块和应用程序生成模块依次电连接。
参见图3所示,一种电子设备,包括存储器501和处理器502;所述存储器用于存储计算机程序;所述处理器执行所述存储器中的计算机程序,以实现所述的基于windows原始调用接口的靶场应用程序调用方法。
进一步地,还提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时,用于实现所述的基于windows原始调用接口的靶场应用程序调用方法。
本实施例中所述的基于windows原始调用接口的靶场应用程序调用方法、系统、电子设备及存储介质,调用方法,包括以下步骤:导出ntdll原始调用接口,输出对应asm和h文件;在工程中,将得到的asm和h文件,添加到工程,并设置asm文件为“Microsoft MacroAssemble”;在工程中使用asm和h中导出的函数完成对应功能;编译、连接生成应用程序;跳过Win32 API层,直接调用ntdll.dll函数,开发各种应用功能,响应速度快,无需通过安全防护软件检测;不存在误查杀和误拦截等问题;规避安全防护软件检测,不会弹出各种确认框,实现无人值守。
本实施例中所述的基于windows原始调用接口的靶场应用程序调用方法,具体流程为:
1分析选定windows操作系统的ntoskrnl.exe文件,导出ntdll原始调用接口,包括函数名和函数参数,输出对应asm和h文件
2开发环境中,开启汇编编译选项,
3在工程中,将1中导出的asm和h文件,添加到工程,设置asm文件为“MicrosoftMacro Assemble”
4在工程中使用asm和h中导出的函数,完成对应功能
5编译、连接生成应用程序,进行测试。
本实施例中所述的基于windows原始调用接口的靶场应用程序调用方法,基于windows原始调用接口开发,跳过Win32 API层,直接调用ntdll.dll函数,开发各种应用功能。优点是:响应速度快,无需通过安全防护软件检测;不存在误查杀和误拦截等问题;规避安全防护软件检测,不会弹出各种确认框,实现无人值守。缺点是:开发难度较大,由于与底层密切相关,在更换windows操作系统或者操作系统升级时,可能出现兼容性问题,由于靶场系统使用操作系统通常是管理员统一安装和升级,因此可以指定操作系统类型和版本,在开发时,可以针对指定操作系统进行开发、调试和验证,从而确保不出现兼容性问题。
对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种基于windows原始调用接口的靶场应用程序调用方法,其特征在于:包括以下步骤:
导出ntdll原始调用接口,输出对应asm和h文件;
在工程中,将得到的asm和h文件,添加到工程,并设置asm文件为“Microsoft MacroAssemble”;
在工程中使用asm和h中导出的函数完成对应功能;
编译、连接生成应用程序。
2.根据权利要求1所述的基于windows原始调用接口的靶场应用程序调用方法,其特征在于:还包括:
开发环境中,开启汇编编译选项。
3.根据权利要求2所述的基于windows原始调用接口的靶场应用程序调用方法,其特征在于:导出ntdll原始调用接口,输出对应asm和h文件的步骤,具体为:
分析选定windows操作系统的ntoskrnl.exe文件,导出ntdll原始调用接口,输出对应asm和h文件。
4.根据权利要求3所述的基于windows原始调用接口的靶场应用程序调用方法,其特征在于:ntdll原始调用接口,包括函数名和函数参数。
5.一种实现如权利要求2所述的基于windows原始调用接口的靶场应用程序调用方法的基于windows原始调用接口的靶场应用程序调用系统,其特征在于:包括:
原始调用接口导出模块,用于导出ntdll原始调用接口,输出对应asm和h文件;
开发模块,用于在工程中,将得到的asm和h文件,添加到工程,并设置asm文件为“Microsoft Macro Assemble”;在工程中使用asm和h中导出的函数完成对应功能;
应用程序生成模块,用于编译、连接生成应用程序。
6.根据权利要求5所述的基于windows原始调用接口的靶场应用程序调用系统,其特征在于:导出ntdll原始调用接口,输出对应asm和h文件的步骤,具体为:
分析选定windows操作系统的ntoskrnl.exe文件,导出ntdll原始调用接口,输出对应asm和h文件。
7.根据权利要求6所述的基于windows原始调用接口的靶场应用程序调用系统,其特征在于:ntdll原始调用接口,包括函数名和函数参数。
8.根据权利要求7所述的基于windows原始调用接口的靶场应用程序调用系统,其特征在于:原始调用接口导出模块、开发模块和应用程序生成模块依次电连接。
9.一种电子设备,其特征在于:包括存储器和处理器;所述存储器用于存储计算机程序;所述处理器执行所述存储器中的计算机程序,以实现如权利要求1-4中任一所述的基于windows原始调用接口的靶场应用程序调用方法。
10.一种计算机可读存储介质,其特征在于:存储有计算机程序,该计算机程序被处理器执行时,用于实现如权利要求1-4中任一所述的基于windows原始调用接口的靶场应用程序调用方法。
CN202010243853.3A 2020-03-31 2020-03-31 基于windows原始调用接口的靶场应用程序调用方法、系统、电子设备及存储介质 Pending CN111506437A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010243853.3A CN111506437A (zh) 2020-03-31 2020-03-31 基于windows原始调用接口的靶场应用程序调用方法、系统、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010243853.3A CN111506437A (zh) 2020-03-31 2020-03-31 基于windows原始调用接口的靶场应用程序调用方法、系统、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN111506437A true CN111506437A (zh) 2020-08-07

Family

ID=71871826

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010243853.3A Pending CN111506437A (zh) 2020-03-31 2020-03-31 基于windows原始调用接口的靶场应用程序调用方法、系统、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN111506437A (zh)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003304354A (ja) * 2002-04-09 2003-10-24 Seiko Epson Corp 画像読み取り装置の制御方法及びプログラム
CN103530552A (zh) * 2013-09-29 2014-01-22 广州华多网络科技有限公司 Native API函数重构方法及装置
CN104091100A (zh) * 2014-07-15 2014-10-08 电子科技大学 一种基于编译中间结果的软件保护方法
CN104392169A (zh) * 2014-12-15 2015-03-04 福建天晴数码有限公司 一种Native API函数重构方法和装置
CN105488415A (zh) * 2015-11-30 2016-04-13 福建天晴数码有限公司 扫描系统进程的方法和装置
CN105893000A (zh) * 2014-10-28 2016-08-24 北京确安科技股份有限公司 防止测试机系统时间被非法修改的方法
CN107808094A (zh) * 2016-09-08 2018-03-16 卡巴斯基实验室股份制公司 检测文件中的恶意代码的系统和方法
CN108228434A (zh) * 2016-12-21 2018-06-29 中国科学院信息工程研究所 一种内核源码级的系统调用跟踪方法
CN108491237A (zh) * 2018-03-29 2018-09-04 山东华软金盾软件股份有限公司 一种隐蔽的Dll文件注入方法
CN109214148A (zh) * 2018-09-03 2019-01-15 平安普惠企业管理有限公司 一种dex文件抽取方法、系统及终端设备
CN109298952A (zh) * 2018-08-27 2019-02-01 优视科技新加坡有限公司 应用程序编程接口的调用方法及其装置
CN109472135A (zh) * 2017-12-29 2019-03-15 北京安天网络安全技术有限公司 一种检测进程注入的方法、装置及存储介质

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003304354A (ja) * 2002-04-09 2003-10-24 Seiko Epson Corp 画像読み取り装置の制御方法及びプログラム
CN103530552A (zh) * 2013-09-29 2014-01-22 广州华多网络科技有限公司 Native API函数重构方法及装置
CN104091100A (zh) * 2014-07-15 2014-10-08 电子科技大学 一种基于编译中间结果的软件保护方法
CN105893000A (zh) * 2014-10-28 2016-08-24 北京确安科技股份有限公司 防止测试机系统时间被非法修改的方法
CN104392169A (zh) * 2014-12-15 2015-03-04 福建天晴数码有限公司 一种Native API函数重构方法和装置
CN105488415A (zh) * 2015-11-30 2016-04-13 福建天晴数码有限公司 扫描系统进程的方法和装置
CN107808094A (zh) * 2016-09-08 2018-03-16 卡巴斯基实验室股份制公司 检测文件中的恶意代码的系统和方法
CN108228434A (zh) * 2016-12-21 2018-06-29 中国科学院信息工程研究所 一种内核源码级的系统调用跟踪方法
CN109472135A (zh) * 2017-12-29 2019-03-15 北京安天网络安全技术有限公司 一种检测进程注入的方法、装置及存储介质
CN108491237A (zh) * 2018-03-29 2018-09-04 山东华软金盾软件股份有限公司 一种隐蔽的Dll文件注入方法
CN109298952A (zh) * 2018-08-27 2019-02-01 优视科技新加坡有限公司 应用程序编程接口的调用方法及其装置
CN109214148A (zh) * 2018-09-03 2019-01-15 平安普惠企业管理有限公司 一种dex文件抽取方法、系统及终端设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DQTHJ: "新人提问:反汇编后的动态库函数能否把函数加到VC工程?", 《HTTPS//BBS.PEDIY.COMTHREAD-37699.HTM》 *
DQTHJ: "新人提问:反汇编后的动态库函数能否把函数加到VC工程?", 《HTTPS//BBS.PEDIY.COMTHREAD-37699.HTM》, 9 January 2007 (2007-01-09), pages 1 - 3 *

Similar Documents

Publication Publication Date Title
US6996677B2 (en) Method and apparatus for protecting memory stacks
US20200257804A1 (en) Method for Validating an Untrusted Native Code Module
US10284591B2 (en) Detecting and preventing execution of software exploits
US9536079B2 (en) Safely executing an untrusted native code module on a computing device
RU2679175C1 (ru) Способ поведенческого обнаружения вредоносных программ с использованием виртуальной машины-интерпретатора
JP4676744B2 (ja) セキュリティ関連プログラミング・インターフェース
US6832302B1 (en) Methods and apparatus for detecting heap smashing
US8214900B1 (en) Method and apparatus for monitoring a computer to detect operating system process manipulation
CN113569244B (zh) 一种基于处理器跟踪的内存恶意代码检测方法
JP2014503901A (ja) オペコードランダム化によるセキュリティ
US20080046709A1 (en) File manipulation during early boot time
US8990116B2 (en) Preventing execution of tampered application code in a computer system
US20240004967A1 (en) Software protection method and apparatus, electronic device, and storage medium
CN111506437A (zh) 基于windows原始调用接口的靶场应用程序调用方法、系统、电子设备及存储介质
US11361070B1 (en) Protecting devices from remote code execution attacks
Brodbeck Covert android rootkit detection: Evaluating linux kernel level rootkits on the android operating system
CN116522343B (zh) 一种Native函数防御攻击的方法及装置
Aboughadareh et al. Mixed-mode malware and its analysis
CN110806860B (zh) 安卓环境下的应用封装方法、装置及应用运行方法、装置
US20230222213A1 (en) Stack protection
KR101563657B1 (ko) 샌드박싱 된 윈도우 응용프로그램 외부로의 데이터 전송방법
CN114036468A (zh) 一种进程隐藏方法、装置、设备及可读存储介质
CN117113331A (zh) 一种基于eBPF-LSM机制的可信程序启动控制方法
CN116684161A (zh) 程序运行方法、装置、电子设备及存储介质
CN117786672A (zh) 一种基于windowsX86可扩展的进程保护方法

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
AD01 Patent right deemed abandoned

Effective date of abandoning: 20240227

AD01 Patent right deemed abandoned