注入时DLL从哪里开始?

时间:2015-07-10 20:26:56

标签: c# dll

我正在制作 C#DLL ,其中将在Skype中注入,这是非常基本的,它应该显示消息框

我到目前为止的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
using System.Windows.Forms;

namespace L3n_Hack_DLL
{
    public class Class1
    {
        [DllImport("kernel32.dll")]
        public static extern IntPtr OpenProcess(int dwDesiredAccess, bool bInheritHandle, int dwProcessId);

        [DllImport("kernel32.dll")]
        public static extern bool ReadProcessMemory(int hProcess,
            int lpBaseAddress, byte[] lpBuffer, int dwSize, ref int lpNumberOfBytesRead);

        public static void Main()
        {
            MessageBox.Show("working", "teste", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
    }
}

无论如何,当我注入它时没有显示任何内容时,我导入了kernel32.dll并实现了OpenProcess()和ReadProcessMemory()方法以便以后使用。 我的问题是,注入时DLL从哪里开始?

它不应该在static void Main()中启动吗?

1 个答案:

答案 0 :(得分:1)

This code project article为您提供了一个很好的演练,介绍如何将.Net程序集注入非托管进程。它首先加载一个非托管的bootstrapper.dll,它可以解决加载.Net运行时和托管程序集的问题。