原文出处:https://www.cnblogs.com/lonelyxmas/p/5088028.html
直接上代码:(亲测可用)

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;using System.Runtime.InteropServices;
using System.Diagnostics;namespace WindowsFormsApplication1
{publicpartialclass Form1 : Form{public Form1(){InitializeComponent();}[DllImport("kernel32.dll")] //声明API函数
publicstaticexternint VirtualAllocEx(IntPtr hwnd, int lpaddress, int size, int type, int tect);[DllImport("kernel32.dll")]publicstaticexternint WriteProcessMemory(IntPtr hwnd, int baseaddress, string buffer, int nsize, int filewriten);[DllImport("kernel32.dll")]publicstaticexternint GetProcAddress(int hwnd, string lpname);[DllImport("kernel32.dll")]publicstaticexternint GetModuleHandleA(string name);[DllImport("kernel32.dll")]publicstaticexternint CreateRemoteThread(IntPtr hwnd, int attrib, int size, int address, int par, int flags, int threadid);privatevoid button1_Click(object sender, EventArgs e){int ok1;//int ok2;//int hwnd;
int baseaddress;int temp =0;int hack;int yan;string dllname;dllname ="c:\\dll.dll";int dlllength;dlllength = dllname.Length +1;Process[] pname = Process.GetProcesses(); //取得所有进程foreach (Process name in pname) //遍历进程{//MessageBox.Show(name.ProcessName.ToLower());
if (name.ProcessName.ToLower().IndexOf("notepad") !=-1) //所示记事本,那么下面开始注入{baseaddress = VirtualAllocEx(name.Handle, 0, dlllength, 4096, 4);   //申请内存空间
if (baseaddress ==0) //返回0则操作失败,下面都是{MessageBox.Show("申请内存空间失败!!");Application.Exit();}ok1 = WriteProcessMemory(name.Handle, baseaddress, dllname, dlllength, temp); //写内存
if (ok1 ==0){MessageBox.Show("写内存失败!!");Application.Exit();}hack = GetProcAddress(GetModuleHandleA("Kernel32"), "LoadLibraryA"); //取得loadlibarary在kernek32.dll地址if (hack ==0){MessageBox.Show("无法取得函数的入口点!!");Application.Exit();}yan = CreateRemoteThread(name.Handle, 0, 0, hack, baseaddress, 0, temp); //创建远程线程。if (yan ==0){MessageBox.Show("创建远程线程失败!!");Application.Exit();}else{MessageBox.Show("已成功注入dll!!");}}}}}
}

C# dll注入(指定进程注入指定dll)相关推荐

  1. 【Android 逆向】Android 进程代码注入原理 ( 进程注入原理 | 远程调用流程 | 获取函数地址 | 设置 IP 寄存器 | mmap 申请内存 | 设置 SP 寄存器 )

    文章目录 一.进程注入原理 二.远程调用流程 ( 获取 so 动态库地址 | 获取函数地址 | 设置 IP 寄存器 | mmap 申请内存 | 设置 SP 寄存器 ) 一.进程注入原理 调试进程 At ...

  2. 【Android 逆向】Android 进程注入工具开发 ( 总结 | 源码编译 | 逆向环境搭建使用 | 使用进程注入工具进行逆向操作 ) ★★★

    文章目录 一.Android 进程注入工具开发系列博客 二.Android 进程注入工具 源码下载编译 三.逆向环境搭建 四.使用注入工具进行逆向操作 1.获取远程进程号 2.注入工具准备 3.注入动 ...

  3. 【Android 逆向】Android 进程注入工具开发 ( SO 进程注入环境及 root 权限获取 | 进程注入时序分析 )

    文章目录 一.SO 进程注入环境及 root 权限获取 二.进程注入时序分析 一.SO 进程注入环境及 root 权限获取 SO 注入的前提必须有 root 权限 , 有了 root 权限后 , 才能 ...

  4. 【Android 逆向】Android 进程代码注入原理 ( 注入本质 | 静态注入和动态注入 | 静态注入两种方式 | 修改动态库重打包 | 修改 /data/app/xx/libs 动态库 )

    文章目录 一.注入本质 二.静态注入和动态注入 三.静态注入两种方式 ( 修改动态库重打包 | 修改 /data/app/packageName/libs/ 下的动态库 ) 一.注入本质 进程注入本质 ...

  5. windows权限提升——windows2003进程注入提升(本地)

    一.进程注入简介 进程注入提权是本地提权方式的一种较为老的安全技术了,利用的是注入进程的所有者实现权限共享机制,这类技术主要利用在Windows2008之前操作系统上.所以我们需要学习后续的本地提权更 ...

  6. 使用NtCreateThreadEx将Dll注入目标进程

    第一遍学习这个注入方法时候,只知道NtCreateThreadEx是未公开的nt函数,当时要定义一个函数指针出来,好像在看雪上找到的这个函数的声明,,太久远了,记不清了. 在Windows2000的源 ...

  7. 进程注入之DLL注入

    前言 DLL注入是我在大一的时候接触的一种技术,那时候还不懂,最近结合小程序详细的理解了一下. DLL注入是将代码注入到一个远程进程中,并让远程进程调用LoadLibrary()函数,从而强制远程进程 ...

  8. c++实现dll注入其它进程

    DLL注入技术才具有强大的功能和使用性,同时简单易用,因为DLL中可以实现复杂的功能和很多的技术. 技术要点: 1.宿主进程调用LoadLibrary,就可以完成DLL的远程注入.可以通过Create ...

  9. 易语言输入法注入dll到游戏进程

    易语言的输入法注入,需要一个易语言专门的输入法,我们在这里集成到程序里,通过判断先写到system32目录 输入法注入流程: 1.安装输入法 2.激活一下 3.将输入法文件复制到c:\WINDOWS\ ...

最新文章

  1. STL中的nth_element()方法的使用
  2. R语言使用ggplot2包使用geom_dotplot函数绘制分组点图(添加均值、标准偏差)实战(dot plot)
  3. Pytorch-学习记录 卷积操作——Tensor.size()
  4. 3.1常用类(java学习笔记)包装类及日期类
  5. java语言中解释方式是什么意思,Java语言快速入门·简答T
  6. aws iam php,php-AWS4签名密钥-本教程错误吗?
  7. struts2.2 json配置
  8. 滴滴 Web 移动端组件库 cube-ui 开源
  9. 面试:Synchronized知识点
  10. 计算机软硬件故障排除知识,计算机软硬件基础知识及常见故障排除方法
  11. 计算机word加边框,Word2010怎样为段落加上边框
  12. Captain Flint and a Long Voyage
  13. 如何将pdf转换成word的3种免费方法
  14. 你的颜值打几分?——基于tensorflow实现人脸打分模型
  15. 计算机辅助设计表现的发展给设计带来的影响,计算机辅助设计对艺术设计的影响.doc...
  16. 如何实现某些软件自动点赞
  17. matlab微分方程求解并仿真
  18. jQuery里面的选择属性和修改属性
  19. html轮播台袋效果,jQuery轮播图插件带Ken Burns效果
  20. 每天一个Java知识点(spring-计划任务)

热门文章

  1. 云服务器和普通服务器主要区别有三点
  2. 看不见的竞争 带宽优化
  3. Java 和 MySQL 数据类型对照表
  4. root过的手机保修吗,root过的手机保修吗苹果
  5. 编程语言排行榜2021年3月
  6. 常见分布式算法的介绍
  7. css3 制作音乐播放器音乐播放跳动音符
  8. 解决:AWVS(Acunetix)激活频繁失效(仅供学习)
  9. 微信小程序会议OA-后台数据交互(首页)05
  10. 用JS实现一个秒表计时器