【技术实现步骤摘要】
一种用于实现跨进程注入的方法
[0001]本专利技术属于网络
,特别涉及一种用于实现跨进程注入的方法。
技术介绍
[0002]跨进程横向移动是恶意软件中非常常见的一种技术,以便在系统间进行传播。常规的进程注入技术使用LoadLibraryA()函数来使被注入进程加载指定的dll。常规注入手段如下:
[0003]1)通过调用CreateRemoteThread()/NtCreateThread()/RtlCreateUserThread()函数在被注入进程创建线程进行dll注入。
[0004]2)通过调用QueueUserAPC()/SetThreadContext()函数来劫持被注入进程已存在的线程加载dll。
[0005]3)通过调用SetWindowsHookEx()函数来设置拦截事件,在发生对应的事件时,被注入进程执行拦截事件函数加载dll。
[0006]常规dll注入的方式一个致命的缺陷是需要恶意的dll以文件的形式存储在受害者主机上。这样使得常规dll注入技术在受害者主机上留下 ...
【技术保护点】
【技术特征摘要】
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...
【专利技术属性】
技术研发人员:刘庆林,
申请(专利权)人:山东中睿天下信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。