修改进程PE头
报错

修改进程_EPROCESS
+0x12c SectionBaseAddress : 0x00bf0000
都会报错 不是有效的win32程序 错误号193

修改进程PEB +0x018 ProcessHeap : 0x000c0000 为0
报错 线程创建成功 执行失败。第二次打开提示 打开进程更多失败

修改进程_EPROCESS
+270 为0
打开进程失败,参数错误 错误号87

LoadLibray 载入模块时。会调用目标进程的 LdrInit函数

1.当A进程用CreateRemoteThread注入线程时,B进程所有已加载的dll都会得到通知(系统会以参数DLL_THREAD_ATTACH依次调用各DLL的dllmain). 因此你可以用一个静态链接的dll实现防止别人CreateRemoteThread。不过在dll接到DLL_THREAD_ATTACH后要找出非法线程就比较麻烦了,因为你不知道哪个线程的创建触发了这次调用(系统都是通过process的第一个thread来调用的), 一个可行的办法是调用NtQuerySystemInformation查找当前进程的信息,其中有一个thread列表,最后一个就是新创建的线程, 你可以首先判断一下它的入口地址是否就是LoadLibraryA, LoadLibraryW, 如果是那么可以肯定是别人CreateRemoteThread注入进来的,其次可以通过VirtualQuery找出该入口地址所分配内存的起始地址, 看看是不是就是某个dll的module(用GetModuleFileName,如果成功那么就知道这块代码属于某个dll)然后判断一下这个module是否合法。如果不能找到对应module, 那么也可以多半确定是别人WriteProcessMemory/CreateRemoteThread注入进来的,此时可以直接杀掉了事。

2. 可以用一个变通的办法加以判断, 用线程入口地址(或者不知道怎么获知某个线程入口地址的话可以直接Suspend那个线程,GetThreadContext获取其当前EIP)作为参数调用VirtualQuery, 判断memory_basic_information.AllocationBase是否就是B.exe的HInstance, 如果是的话, 说明该线程代码位于B.exe内, 当然就是合法的(谁写的正常包含线程的程序线程代码不包含在exe内而是动态分配一块内存然后复制一些代码进去再跳过去执行呢?)。

CreateRemoteThreadex开启远程线程失败集合的更多相关文章

  1. windows:shellcode 远程线程hook/注入(一)

    https://www.cnblogs.com/theseventhson/p/13199381.html 上次分享了通过APC注入方式,让目标线程运行shellcode.这么做有个前提条件:目标线程 ...

  2. mfc HackerTools远程线程注入

    在一个进程中,调用CreateThread或CreateRemoteThreadEx函数,在另一个进程内创建一个线程(因为不在同一个进程中,所以叫做远程线程).创建的线程一般为Windows API函 ...

  3. 远程线程注入DLL

    远程线程注入 0x00 前言 远程线程注入是一种经典的DLL注入技术.其实就是指一个新进程中另一个进程中创建线程的技术. 0x01 介绍 1.远程线程注入原理 画了一个图大致理解了下远程线程注入dll ...

  4. Powershell 开启远程桌面

    function Set-RemoteDesktop {   while($InNumber -ne 6)   {   Write-Host " ###################### ...

  5. Win7系统怎么开启远程桌面?Win7远程桌面怎么用(转)

    远程桌面服务开启之后,可以方便的远程管理服务器或计算机.为生活和工作带来不少便利呢,很多小伙伴还不知道怎么开启win7远程桌面吧(下面咗嚛以内网远程桌面为例)   工具/原料 Win7 Win7远程桌 ...

  6. 【windows核心编程】使用远程线程注入DLL

    前言 该技术是指通过在[目标进程]中创建一个[远程线程]来达到注入的目的. 创建的[远程线程]函数为LoadLibrary, 线程函数的参数为DLL名字, 想要做的工作在DLL中编写.  示意图如下: ...

  7. discuz云平台报调用远程接口失败的问题分析和解决

    根据网络两篇文章整理 问题描述:当开通或关闭某个云平台服务的时候,报如下错误信息:调用远程接口失败.请检查您的服务器是否处于内网以及您服务器的防火墙设置. 云平台测试站点的接口文件正常,于是开始在文件 ...

  8. 【windows核心编程】远程线程DLL注入

    15.1 DLL注入 目前公开的DLL注入技巧共有以下几种: 1.注入表注入 2.ComRes注入 3.APC注入 4.消息钩子注入 5.远线程注入 6.依赖可信进程注入 7.劫持进程创建注入 8.输 ...

  9. win10不能被远程解决方案(开启远程桌面,防火墙仍不能被远程解决方案)

    开启远程桌面,防火墙仍不能被远程解决方案 1.“Win+R”→“gpedit.msc” 2.依次展开“计算机配置”→“管理模版”→“系统”→“凭据分配”→找到“允许分配保存的凭据用于仅NTLM服务器身 ...

随机推荐

  1. cat /proc/iomem

    在proc目录下有iomem和ioports文件,其主要描述了系统的io内存和io端口资源分布. 对于外设的访问,最终都是通过读写设备上的寄存器实现的,寄存器不外乎:控制寄存器.状态寄存器和数据寄存器 ...

  2. 怎样给ExecutorService异步计算设置超时

    ExecutorService接口使用submit方法会返回一个Future<V>对象.Future表示异步计算的结果.它提供了检查计算是否完毕的方法,以等待计算的完毕,并获取计算的结果. ...

  3. 虚拟键盘 input 挡住

    https://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651226929&idx=1&sn=4587bf582dcb23 ...

  4. blender, 旋转和平移视图

    旋转视图:MMB(鼠标中键) 平移视图:shift+MMB

  5. [svc]jq神器使用

    jq神器 处理json数据 支持过滤某字段 支持数学运算(对字段处理) 安装 yum install -y jq 使用 参考: http://blog.just4fun.site/command-to ...

  6. cxf动态调用webservice设置超时,测试线程安全

    Java代码 import java.util.Random; import java.util.concurrent.ArrayBlockingQueue; import java.util.con ...

  7. Linux下编译C++程序遇到错误:undefined reference to `*::*

    “undefined reference to”的意思是,该函数未定义. 如果使用的是g++,有以下检查方案: 如果提示未定义的函数是某个库的函数.检查库是否已经安装,并在编译命令中采用-l和-L参数 ...

  8. Oracle:shared memory realm does not exist

    1. 先描述一个连接Oracle 10g的错误:“shared memory realm does not exist” 如图所示Sqlplus连接时出现这个错误: 2. Oracle 服务器主要组件 ...

  9. asp.net添加用户

    AddUser.html <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <h ...

  10. centos6.5 系统上升级2.6.6到2.7.12

    因开发需要,今天把CentOS 6.4自带的Python2.6.6升级到了Python2.7.3.按照如下步骤进行升级 1.查看当前系统python的版本 python -V 2.下载2.7.3版本的 ...