Здравствуйте! Пишу на си шарпе трейнер и столкнулся с вот такой проблемой, SigScan выдает ошибку "WindowsFormApplication1.Form1.SigScan(string, int)" является "метод", но используется как "тип". Подскажите пожалуйста как исправить.
Вот код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.Runtime.InteropServices;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
[DllImport("SigScan.dll", EntryPoint = "InitializeSigScan")]
public static extern void InitializeSigScan(uint iPID, [MarshalAs(UnmanagedType.LPStr)] string szModule);
[DllImport("SigScan.dll", EntryPoint = "SigScan")]
public static extern UInt32 SigScan([MarshalAs(UnmanagedType.LPStr)] string Pattern, int Offset);
[DllImport("SigScan.dll", EntryPoint = "FinalizeSigScan")]
[DllImport("kernel32.dll")]
public static extern IntPtr OpenProcess(int dwDesiredAccess, bool bInheritHandle, int dwProcessId);
[DllImport("kernel32.dll")]
static extern int VirtualQueryEx(IntPtr hProcess, IntPtr lpAddress, out MEMORY_BASIC_INFORMATION lpBuffer, uint dwLength);
[StructLayout(LayoutKind.Sequential)]
public struct MEMORY_BASIC_INFORMATION
{
public IntPtr BaseAddress;
public IntPtr AllocationBase;
public uint AllocationProtect;
public IntPtr RegionSize;
public uint State;
public uint Protect;
public uint Type;
}
public enum AllocationProtect : uint
{
PAGE_EXECUTE = 0x00000010,
PAGE_EXECUTE_READ = 0x00000020,
PAGE_EXECUTE_READWRITE = 0x00000040,
PAGE_EXECUTE_WRITECOPY = 0x00000080,
PAGE_NOACCESS = 0x00000001,
PAGE_READONLY = 0x00000002,
PAGE_READWRITE = 0x00000004,
PAGE_WRITECOPY = 0x00000008,
PAGE_GUARD = 0x00000100,
PAGE_NOCACHE = 0x00000200,
PAGE_WRITECOMBINE = 0x00000400
}
public Form1()
{
InitializeComponent();
}
IntPtr GetCGamePointer()
{
long maxAddr = 0x7000000;
long address = 0x6000000;
Process hackProc = Process.GetProcessesByName("gta")[0];
do
{
try
{
MEMORY_BASIC_INFORMATION m;
int result = VirtualQueryEx(System.Diagnostics.Process.GetCurre ntProcess().Handle, (IntPtr)address, out m, (uint)Marshal.SizeOf(typeof(MEMORY_BASIC_INFORMATI ON)));
if (address == (long)m.BaseAddress + (long)m.RegionSize)
break;
address = (long)m.BaseAddress + (long)m.RegionSize;
SigScan sigScan = new SigScan(hackProc, m.BaseAddress, (int)m.RegionSize);// Пишет ошибку "WindowsFormApplication1.Form1.SigScan(string, int)"
//является "метод", но используется как "тип"
IntPtr ptr = sigScan.FindPattern(new Byte[] { 0xFF, 0x31, 0xC3, 0xDA, 0xFF, 0x31, 0xC3, 0xDA }, "xxxxxxxx", -528);
if (ptr != IntPtr.Zero)
return ptr;
}
catch (Exception exx)
{
}
} while (address <= maxAddr);
return IntPtr.Zero;
}
private void button1_Click(object sender, EventArgs e)
{
GetCGamePointer();
}
}
}
Последний раз редактировалось Workoutt; 24.11.2012 в 19:57.