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# 的初学者,并不真正理解此错误,所以如果有人可以通过初学者友好的简单步骤引导我完成它,那就太好了。
您的Main
方法是静态的,您只能从静态方法访问同一类的静态成员。要使EasyExploits.Module
也静态,您需要做的所有事情:
private static readonly EasyExploits.Module module = new EasyExploits.Module();
这里有 2 个问题
- 模块是一个类,但
LaunchExploit()
不是静态的,也就是说,它需要从object
运行。您可能打算使用该对象module
- 如果您想在
static
函数中使用它,module
也应该static
main
我还要提到一个不太紧迫的问题:goto
很少是一个好主意。如果您符合以下条件,您的代码会变得更好:
- 创建一个静态函数
begin
,无论您在哪里go to Begin
执行以下操作:
begin()
return;
- 创建一个
static
函数label
,对它做同样的事情
这将使您的代码更具可读性和可调试性。