我需要一种方法将x64窗口中的CreateRemoteThread同时转换为64位和32位进程.我已经找到了如何找到目标进程的指令集,如何在程序集sled的目标进程中分配内存,我几乎已经找到了有关地址空间随机化的方法.
当它是错误的指令集时,我不知道如何在远程进程上实际启动线程.
注意:我不关心你解决的两个问题中的哪一个.我自己的exe可以是32位或64位(但我真的必须在我知道目标进程的位数之前选择).
在有人抱怨我真的不应该这样做之前,问问为什么我必须FILE_SHARE_DELETE
在所有打开的句柄上设置才能删除正在使用的文件.不,没有必要删除其他进程已打开的文件.
以下源代码执行正常以及X86-> X64和X64-> X86注入,具有您需要的所有详细信息:https://dev.metasploit.com/redmine/projects/framework/repository/revisions/master /entry/external/source/meterpreter/source/common/arch/win/i386/base_inject.c
简短的故事是它涉及许多特定于体系结构的"未记录"功能,因为您必须在32位WoW进程中执行64位代码才能执行X86-X64.
但是该代码在许多Windows版本中都运行良好.