`

C# 制作外挂常用的API

    博客分类:
  • C#
阅读更多
C#做外挂的常用API,本人用了很久,基本没发现问题

using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;  //这个肯定要的 

namespace WindowsApplication1
{
    class win32API
    {
        public const int OPEN_PROCESS_ALL = 2035711;
        public const int PAGE_READWRITE = 4;
        public const int PROCESS_CREATE_THREAD = 2;
        public const int PROCESS_HEAP_ENTRY_BUSY = 4;
        public const int PROCESS_VM_OPERATION = 8;
        public const int PROCESS_VM_READ = 256;
        public const int PROCESS_VM_WRITE = 32;

        private const int PAGE_EXECUTE_READWRITE = 0x4;
        private const int MEM_COMMIT = 4096;
        private const int MEM_RELEASE = 0x8000;
        private const int MEM_DECOMMIT = 0x4000;
        private const int PROCESS_ALL_ACCESS = 0x1F0FFF;

       


        //查找窗体
        [DllImport("User32.dll", EntryPoint = "FindWindow")]
        public extern static IntPtr FindWindow(
            string lpClassName,
            string lpWindowName
            );

        //得到目标进程句柄的函数
        [DllImport("USER32.DLL")]
        public extern static int GetWindowThreadProcessId(
            int hwnd,
            ref int lpdwProcessId
            );
        [DllImport("USER32.DLL")]
        public extern static int GetWindowThreadProcessId(
            IntPtr hwnd,
            ref int lpdwProcessId
            );

        //打开进程
        [DllImport("kernel32.dll")]
        public extern static int OpenProcess(
            int dwDesiredAccess,
            int bInheritHandle,
            int dwProcessId
            );
        [DllImport("kernel32.dll")]
        public extern static IntPtr OpenProcess(
            uint dwDesiredAccess,
            int bInheritHandle,
            uint dwProcessId
            );
       
        //关闭句柄的函数
        [DllImport("kernel32.dll", EntryPoint = "CloseHandle")]
        public static extern int CloseHandle(
            int hObject
            );

        //读内存
        [DllImport("Kernel32.dll ")]
        public static extern Int32 ReadProcessMemory(
            IntPtr hProcess,
            IntPtr lpBaseAddress,
            [In, Out] byte[] buffer,
            int size,
            out IntPtr lpNumberOfBytesWritten
            );
        [DllImport("Kernel32.dll ")]
        public static extern Int32 ReadProcessMemory(
            int hProcess,
            int lpBaseAddress,
            ref int buffer,
            //byte[] buffer,
            int size,
            int lpNumberOfBytesWritten
            );
        [DllImport("Kernel32.dll ")]
        public static extern Int32 ReadProcessMemory(
            int hProcess,
            int lpBaseAddress,
            byte[] buffer,
            int size,
            int lpNumberOfBytesWritten
            );

        //写内存
        [DllImport("kernel32.dll")]
        public static extern Int32 WriteProcessMemory(
            IntPtr hProcess,
            IntPtr lpBaseAddress,
            [In, Out] byte[] buffer,
            int size,
            out IntPtr lpNumberOfBytesWritten
            );

        [DllImport("kernel32.dll")]
        public static extern Int32 WriteProcessMemory(
            int hProcess,
            int lpBaseAddress,
            byte[] buffer,
            int size,
            int lpNumberOfBytesWritten
            );

        //创建线程
        [DllImport("kernel32", EntryPoint = "CreateRemoteThread")]
        public static extern int CreateRemoteThread(
            int hProcess,
            int lpThreadAttributes,
            int dwStackSize,
            int lpStartAddress,
            int lpParameter,
            int dwCreationFlags,
            ref int lpThreadId
            );

        //开辟指定进程的内存空间
        [DllImport("Kernel32.dll")]
        public static extern System.Int32 VirtualAllocEx(
         System.IntPtr hProcess,
         System.Int32 lpAddress,
         System.Int32 dwSize,
         System.Int16 flAllocationType,
         System.Int16 flProtect
         );

        [DllImport("Kernel32.dll")]
        public static extern System.Int32 VirtualAllocEx(
        int hProcess,
        int lpAddress,
        int dwSize,
        int flAllocationType,
        int flProtect
        );

        //释放内存空间
        [DllImport("Kernel32.dll")]
        public static extern System.Int32 VirtualFreeEx(
        int hProcess,
        int lpAddress,
        int dwSize,
        int flAllocationType
        );
    }
}

 

分享到:
评论

相关推荐

    C#API大全_C#api_C#API_API_

    C# API,全称为应用程序接口(Application Programming Interface),是微软为C#开发者提供的一套用于构建、运行和扩展.NET...如果你手头有"C#API大全.docx"文档,建议仔细阅读,这将对你的C#编程技能提升大有裨益。

    C#键盘外挂hookapi钩子.pdf

    C#键盘外挂hookapi钩子.pdf

    C#winform调用webapi.rar

    在IT行业中,C#是一种广泛使用的编程语言,尤其在开发Windows桌面应用时,WinForm是一个常用的框架。WebAPI则是.NET Framework或.NET Core中用于构建RESTful服务的技术,它允许开发者创建HTTP服务,可以被各种客户端...

    c# http请求webapi接口封装类

    c# http请求webapi接口封装类

    C#获取Web.API数据的后台方法

    C#获取Web.API数据的后台方法,本例不包含api的输出方法 (输出方法请参考:http://download.csdn.net/detail/djk8888/9687185) (api的token验证参考:http://download.csdn.net/detail/djk8888/9680396)。 调试...

    C#调用api接口

    C#调用API接口 本文将详细介绍如何在C#中调用API函数获取系统信息。API函数是构筑Windows应用程序的基石,是Windows编程的必备利器。每一种Windows应用程序开发工具都提供了间接或直接调用了Windows API函数的方法...

    C#API大全(doc)

    在C#编程中,API(应用程序编程接口)是软件组件,提供给开发者用来构建应用程序的一组预先定义好的函数、类和接口。C# API大全涵盖了各种C#编程中可用的库和方法,对于初学者来说,它是一个宝贵的参考资料。本文将...

    C#桌面程序 winform WPF集成内置WebApi C# 创建HTTP Web API服务 完全开源一看就会

    C#桌面程序 winform WPF集成内置WebApi C# 创建HTTP Web API服务,winform WPF项目创建HTTP WEB服务,不使用IIS业务 WPF WebApi 限权限访问 在维护旧的项目时,有时需要提供APP连接的需求,就要提供HTTP服务,...

    c# 调用百度地图API

    将百度地图嵌入c# cs窗体中,... 查了很多资料,参考网上众多朋友的代码及百度地图API demo,这个例子中的js代码不用key,方便很多,使用的是v1.4版,少了很多限制,使用.net4.5开发的,可以将c#代码转为低版本也行的。

    C#调用C++ Api或接口转换工具

    在.NET框架中,C#是一种常用的编程语言,而C++则有着广泛的应用,尤其是在系统级编程和高性能计算领域。有时我们需要在C#项目中利用已有的C++库或API,这就涉及到了跨语言互操作性。本文将详细介绍如何在C#中调用C++...

    常用Win32API(C#里调用)

    在C#编程中,有时我们需要调用Windows操作系统提供的底层功能,这时就涉及到Win32 API的使用。Win32 API是一组由微软定义并实现的函数库,它们提供了与操作系统直接交互的能力。在这个主题中,我们将探讨如何在C#中...

    C# WebAPI示例

    在C# WebAPI中,主要涉及以下几个关键知识点: 1. **控制器(Controllers)**:WebAPI的核心是控制器类,它们继承自`System.Web.Http.ApiController`基类。控制器负责处理客户端的HTTP请求,并返回响应。例如,一个...

    C#中常用的winApi声明

    在C#编程中,有时我们需要调用Windows操作系统提供的底层功能,这时就需要用到WinAPI(Windows API)。WinAPI是微软为Windows操作系统定义的一系列函数、结构体和常量的集合,它提供了对操作系统核心功能的直接访问...

    C#调用API教程

     C# API大全pdf,内容涉及使用C#调用windows API 入门:  一:入门,直接从C# 调用DLL 导出  二.背后的原理―― 知其所以然,相关的知识  从.NET 平台调用Win32 API的一些基础知识以及编程实例,windows ...

    C#调用API串口通信

    C#调用API串口通信 C#调用API串口通信是指使用C#语言通过API函数调用串口设备,实现串口通信的功能。串口通信是一种常用的通信方式,广泛应用于工业控制、机器人控制、数据采集等领域。C#语言作为一种现代化的编程...

    基于c#实现的webapi调用软件

    基于c#实现的webapi调用软件,用于请求web服务,尤其是通过aistudio平台部署的深度学习模型。如果您的自己的webapi接口返回的也是json格式的信息,也可以使用本软件进行请求调用。只是在请求服务前,一定要点击软件...

    C#API官方手册下载

    C# API 官方手册是学习和开发C#应用程序的重要资源,它包含了全面的语言规范、框架功能以及.NET库的详细信息。这篇详细的介绍将深入探讨C# API的关键知识点,帮助开发者更好地理解和应用这一强大的编程语言。 一、...

    C#之系统API详解教程

    本教程将深入探讨C#如何利用系统API来扩展其功能和访问操作系统底层服务。系统API,即应用程序接口,是操作系统提供给开发者用于与硬件和系统资源交互的一系列函数、类和方法。 首先,了解API在C#中的作用至关重要...

    c#调用百度地图api实例项目源码

    在本文中,我们将深入探讨如何使用C#编程语言与百度地图API进行交互,实现一系列实用功能,如在C#窗体上显示百度地图、测量距离、设置标记、框选区域以及规划路线。这个实例项目源码是学习和实践C#与地图服务集成的...

    c# 调用百度地图API 代码示例

    将百度地图嵌入c# cs窗体中,cs...查了很多资料,参考网上众多朋友的代码及百度地图API demo,这个例子中的js代码不用key,方便很多,使用的是v1.4版,少了很多限制,使用.net4.5开发的,可以将c#代码转为低版本也行的。

Global site tag (gtag.js) - Google Analytics