1. C#做外挂的常用API,本人用了很久,基本没发现问题
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Text;
  5. using System.Runtime.InteropServices;  //这个肯定要的
  6. namespace WindowsApplication1
  7. {
  8. class win32API
  9. {
  10. public const int OPEN_PROCESS_ALL = 2035711;
  11. public const int PAGE_READWRITE = 4;
  12. public const int PROCESS_CREATE_THREAD = 2;
  13. public const int PROCESS_HEAP_ENTRY_BUSY = 4;
  14. public const int PROCESS_VM_OPERATION = 8;
  15. public const int PROCESS_VM_READ = 256;
  16. public const int PROCESS_VM_WRITE = 32;
  17. private const int PAGE_EXECUTE_READWRITE = 0x4;
  18. private const int MEM_COMMIT = 4096;
  19. private const int MEM_RELEASE = 0x8000;
  20. private const int MEM_DECOMMIT = 0x4000;
  21. private const int PROCESS_ALL_ACCESS = 0x1F0FFF;
  22. //查找窗体
  23. [DllImport("User32.dll", EntryPoint = "FindWindow")]
  24. public extern static IntPtr FindWindow(
  25. string lpClassName,
  26. string lpWindowName
  27. );
  28. //得到目标进程句柄的函数
  29. [DllImport("USER32.DLL")]
  30. public extern static int GetWindowThreadProcessId(
  31. int hwnd,
  32. ref int lpdwProcessId
  33. );
  34. [DllImport("USER32.DLL")]
  35. public extern static int GetWindowThreadProcessId(
  36. IntPtr hwnd,
  37. ref int lpdwProcessId
  38. );
  39. //打开进程
  40. [DllImport("kernel32.dll")]
  41. public extern static int OpenProcess(
  42. int dwDesiredAccess,
  43. int bInheritHandle,
  44. int dwProcessId
  45. );
  46. [DllImport("kernel32.dll")]
  47. public extern static IntPtr OpenProcess(
  48. uint dwDesiredAccess,
  49. int bInheritHandle,
  50. uint dwProcessId
  51. );
  52. //关闭句柄的函数
  53. [DllImport("kernel32.dll", EntryPoint = "CloseHandle")]
  54. public static extern int CloseHandle(
  55. int hObject
  56. );
  57. //读内存
  58. [DllImport("Kernel32.dll ")]
  59. public static extern Int32 ReadProcessMemory(
  60. IntPtr hProcess,
  61. IntPtr lpBaseAddress,
  62. [In, Out] byte[] buffer,
  63. int size,
  64. out IntPtr lpNumberOfBytesWritten
  65. );
  66. [DllImport("Kernel32.dll ")]
  67. public static extern Int32 ReadProcessMemory(
  68. int hProcess,
  69. int lpBaseAddress,
  70. ref int buffer,
  71. //byte[] buffer,
  72. int size,
  73. int lpNumberOfBytesWritten
  74. );
  75. [DllImport("Kernel32.dll ")]
  76. public static extern Int32 ReadProcessMemory(
  77. int hProcess,
  78. int lpBaseAddress,
  79. byte[] buffer,
  80. int size,
  81. int lpNumberOfBytesWritten
  82. );
  83. //写内存
  84. [DllImport("kernel32.dll")]
  85. public static extern Int32 WriteProcessMemory(
  86. IntPtr hProcess,
  87. IntPtr lpBaseAddress,
  88. [In, Out] byte[] buffer,
  89. int size,
  90. out IntPtr lpNumberOfBytesWritten
  91. );
  92. [DllImport("kernel32.dll")]
  93. public static extern Int32 WriteProcessMemory(
  94. int hProcess,
  95. int lpBaseAddress,
  96. byte[] buffer,
  97. int size,
  98. int lpNumberOfBytesWritten
  99. );
  100. //创建线程
  101. [DllImport("kernel32", EntryPoint = "CreateRemoteThread")]
  102. public static extern int CreateRemoteThread(
  103. int hProcess,
  104. int lpThreadAttributes,
  105. int dwStackSize,
  106. int lpStartAddress,
  107. int lpParameter,
  108. int dwCreationFlags,
  109. ref int lpThreadId
  110. );
  111. //开辟指定进程的内存空间
  112. [DllImport("Kernel32.dll")]
  113. public static extern System.Int32 VirtualAllocEx(
  114. System.IntPtr hProcess,
  115. System.Int32 lpAddress,
  116. System.Int32 dwSize,
  117. System.Int16 flAllocationType,
  118. System.Int16 flProtect
  119. );
  120. [DllImport("Kernel32.dll")]
  121. public static extern System.Int32 VirtualAllocEx(
  122. int hProcess,
  123. int lpAddress,
  124. int dwSize,
  125. int flAllocationType,
  126. int flProtect
  127. );
  128. //释放内存空间
  129. [DllImport("Kernel32.dll")]
  130. public static extern System.Int32 VirtualFreeEx(
  131. int hProcess,
  132. int lpAddress,
  133. int dwSize,
  134. int flAllocationType
  135. );
  136. }
  137. }

C# 制作外挂常用的API的更多相关文章

  1. 微信小程序入门与实战 常用组件API开发技巧项目实战*全

    第1章 什么是微信小程序? 第2章 小程序环境搭建与开发工具介绍 第3章 从一个简单的“欢迎“页面开始小程序之旅 第4章 第二个页面:新闻阅读列表 第5章 小程序的模板化与模块化 第6章 构建新闻详情 ...

  2. React常用的API说明

    楼主刚开始学习react,感受到了他的博大精深,看到很多莫名的用法,不知云云,找了很多没有找到参考手册,只有在中文社区和react官方看了一些,收集了一些比较常用的API,有补充的可以楼下评论补充.后 ...

  3. Appium常用的API函数

    在学习应用一个框架之前,应该了解一下这个框架的整体结构或是相应的API函数.这篇文章还不错:http://blog.sina.com.cn/s/blog_68f262210102vzf9.html,就 ...

  4. elasticsearch中常用的API

    elasticsearch中常用的API分类如下: 文档API: 提供对文档的增删改查操作 搜索API: 提供对文档进行某个字段的查询 索引API: 提供对索引进行操作,查看索引信息等 查看API: ...

  5. 【转】基于laravel制作APP接口(API)

    这篇文章主要介绍了基于laravel制作APP接口(API)的相关资料,需要的朋友可以参考下 前期准备 前言,为什么做以及要做个啥本人姓小名白,不折不扣编程届小白一名,但是自从大一那会儿接触到编程这件 ...

  6. 第二篇、JavaScript常用的API

    下面是我整理的一些JavaScript常用的API清单. 目录 元素查找 class操作 节点操作 属性操作 内容操作 css操作 位置大小 事件 DOM加载完毕 绑定上下文 去除空格 Ajax JS ...

  7. [Windows Phone]常用类库&API推荐

    原文 [Windows Phone]常用类库&API推荐 简介: 把自己的应用程序搭建在稳定的API之上,这会使得我们在开发时能把精力都集中在程序的业务逻辑之上,避免重复造轮子,并且使得程序结 ...

  8. 生活常用类API调用的代码示例合集:邮编查询、今日热门新闻查询、区号查询等

    以下示例代码适用于 www.apishop.net 网站下的API,使用本文提及的接口调用代码示例前,您需要先申请相应的API服务. 邮编查询:通过邮编查询地名:通过地名查询邮编 今日热门新闻查询:提 ...

  9. Web自动化框架LazyUI使用手册(7)--浏览器常用操作API

      LazyUI框架中,BrowserEmulator类提供了大量的浏览器操作,常用的API列举如下: 1. 基本操作 /** * Open the URL * 打开一个URL * @param ur ...

随机推荐

  1. MySQL基础之第10章 查询数据

    10.1.基本查询语句 SELECT 属性列表 FROM 表名和视图列表[WHERE条件表达式1][GROUPBY 属性名1 [HAVING条件表达式2]][ORDERBY 属性名2[ASC|DESC ...

  2. AFNetworking教程

    转:http://www.lanrenios.com/tutorials/network/2012/1126/527.html AFNETWORKING AFNetworking他是一个现在非常用得多 ...

  3. Javascript Utils.js

    \ var Utils ={//字符串格式化StringFormat: function () {if (arguments.length == 0)return null;var str = arg ...

  4. PHP 获取文件权限函数

    /* * substr 返回字符串的子串 * base_convert 在任意进制之间转换数字 * fileperms 取得文件的权限 */ // 获取权限 function getChmod($fi ...

  5. CUDA 进阶学习

    CUDA基本概念 CUDA网格限制 1.2CPU和GPU的设计区别 2.1CUDA-Thread 2.2CUDA-Memory(存储)和bank-conflict 2.3CUDA矩阵乘法 3.1 全局 ...

  6. Spring学习笔记(二)Spring基础AOP、IOC

    Spring AOP 1. 代理模式 1.1. 静态代理 程序中经常需要为某些动作或事件作下记录,以便在事后检测或作为排错的依据,先看一个简单的例子: import java.util.logging ...

  7. Codevs No.1052 地鼠游戏

    2016-05-31 18:22:32 题目链接: 地鼠游戏 Codevs No.1245 题目大意: 打地鼠,一开始所有地鼠都出现,但是维持的时间(s)和击中所得的积分各不同,求出采用最优策略(1s ...

  8. PC问题-该虚拟机似乎正在使用中

    问题现象:运行VMware Workstation,选中一个虚拟机,运行.卡住了,再运行VMware Workstation时,选中一个虚拟机,提示“该虚拟机似乎正在使用中”. 问题原因:因为上次非正 ...

  9. HDU 5660 jrMz and angles (暴力枚举)

    jrMz and angles 题目链接: http://acm.hust.edu.cn/vjudge/contest/123316#problem/E Description jrMz has tw ...

  10. 扩展KMP--求字符串S的所有后缀和字符串T的最长公共前缀

    在解上面这个问题前我们要先解决一个类似的问题:求字符串s的所有后缀和s本身的最长公共前缀: 我们用next[]数组保存这些值: 现在我们假设要求next[ x ],并且next[ i ] 0<i ...