一种用于实现跨进程注入的方法技术

技术编号:36080653 阅读:63 留言:0更新日期:2022-12-24 10:54
本发明专利技术提供了一种用于实现跨进程注入的方法,属于网络技术领域。方法包括:将注入进程打开,使DLL写入被注入进程,然后再被注入进程中定位DLL文件在其内存中的基址;从被注入进程的核心DLL文件中获取所需的系统API;在被注入进程的内存中分配一片用来装载DLL的空间,在分配的相应内存空间内复制DLL文件的头部和各个节;处理DLL的导入表,对DLL进行重定位;调用DLL入口点。本发明专利技术的方法能绕过安全产品的有效拦截,文件不需要落地,直接在内存中运行,减少被拦截的风险。减少被拦截的风险。减少被拦截的风险。

【技术实现步骤摘要】
一种用于实现跨进程注入的方法


[0001]本专利技术属于网络
,特别涉及一种用于实现跨进程注入的方法。

技术介绍

[0002]跨进程横向移动是恶意软件中非常常见的一种技术,以便在系统间进行传播。常规的进程注入技术使用LoadLibraryA()函数来使被注入进程加载指定的dll。常规注入手段如下:
[0003]1)通过调用CreateRemoteThread()/NtCreateThread()/RtlCreateUserThread()函数在被注入进程创建线程进行dll注入。
[0004]2)通过调用QueueUserAPC()/SetThreadContext()函数来劫持被注入进程已存在的线程加载dll。
[0005]3)通过调用SetWindowsHookEx()函数来设置拦截事件,在发生对应的事件时,被注入进程执行拦截事件函数加载dll。
[0006]常规dll注入的方式一个致命的缺陷是需要恶意的dll以文件的形式存储在受害者主机上。这样使得常规dll注入技术在受害者主机上留下痕迹较大,很容易被e本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种用于实现跨进程注入的方法,所述方法包括:将注入进程打开,使DLL写入被注入进程,然后再被注入进程中定位DLL文件在其内存中的基址;从被注入进程的核心DLL文件中获取所需的系统API函数;在被注入进程的内存中分配一片用来装载DLL的空间,在分配的相应内存空间内复制DLL文件的头部和各个节;处理DLL的导入表,对DLL进行重定位;调用DLL入口点。2.根据权利要求1所述的一种用于实现跨进程注入的方法,其特征在于,所述基址采用重定位方法获得:ULONG_PTR caller(VOID){return(ULONG_PTR)_ReturnAddress();}其中函数_ReturnAddress()返回的是当前调用函数的返回地址,也就是caller()的下一条指令的地址,通过找到的返回地址,逐字节的向上遍历,当查找到符合PE文件头之后,判断为找到了DLL文件在内存中的地址。3.根据权利要求1或2所述的一种用于实现跨进程注入的方法,其特征在于,所述API函数为kernel32.dll中的LoadLibraryA(),GetProcAddress(),VirtualAlloc()以及ntdll.dll中的NtFlushInstruc...

【专利技术属性】
技术研发人员:刘庆林
申请(专利权)人:山东中睿天下信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1