首页 > 解决方案 > 非静态字段、方法或属性需要对象引用

问题描述

using System;
using System.Diagnostics;
using System.Reflection.Emit;
using System.Threading;
using EasyExploits;

namespace ConsoleApp1
{
    class Program
    {
        EasyExploits.Module module = new EasyExploits.Module();

        static void Main(string[] args)
        {
            Module.LaunchExploit();
            Console.ForegroundColor = ConsoleColor.Green;
            Label:
            Console.WriteLine("Please Type 'Inject'");
            string proccess1 = Console.ReadLine();
            if (proccess1 == "Inject")
            {
                Console.WriteLine("");
                Console.WriteLine("Injected!");
                goto Begin;
            }
            else
            {
                goto Label;
            }
            Begin:
            Console.WriteLine("");
            Console.WriteLine("Enter a script and press enter to execute it.");
            string answer = Console.ReadLine();
            Module.ExecuteScript(answer);
            goto Begin





        }
    }
}

所以,我试图找到一个解决这个问题的方法,但我找不到一个,所以我来堆栈溢出。无论如何,我的控制台应用程序应该在将脚本粘贴到输入时注入 EasyExploits.DLL 并执行 Lua 脚本。但是,我收到错误消息,“非静态字段、方法或属性‘Module.LaunchExploit()’需要对象引用”“非静态字段、方法需要对象引用,或属性 'Module.ExecuteScript(string)'"我是 C# 的初学者,并不真正理解这个错误,所以如果有人能用对初学者友好的简单步骤引导我完成它,那就太好了。

标签: c#console-applicationdll-injection

解决方案


您的Main方法是静态的,您只能从静态方法访问同一类的静态成员。您还需要做所有事情来制作EasyExploits.Module静态:

private static readonly EasyExploits.Module module = new EasyExploits.Module();

推荐阅读