Я пытаюсь вызвать игровые функции с помощью инъекции кода. после некоторой попытки я нахожу dll, который сделал то, что я хочу.вводят код C# в другой процесс и вызывают целевые функции
поэтому я увидел DLL с ILSpy, но не могу понять код.
class <Module>
{
[SecurityCritical, SuppressUnmanagedCodeSecurity]
[DllImport("", CallingConvention = CallingConvention.ThisCall, SetLastError = true)]
[MethodImpl(MethodImplOptions.Unmanaged)]
internal unsafe static extern float* GetHealth(AttackableUnit*);
}
--------------------------
namespace Native
{
[NativeCppClass]
[StructLayout(LayoutKind.Sequential, Size = 1)]
internal struct AttackableUnit
{
}
}
---------------------
public unsafe float MaxHealth
{
get
{
Native.AttackableUnit* ptr = (Native.AttackableUnit*)base.GetPtr();
if (ptr != null)
{
return *<Module>.Native.AttackableUnit.GetMaxHealth(ptr);
}
return 0f;
}
}
кажется дллы INJECT C# код для целевого приложения с C++ DLL и самозагрузок .net в цели.
И теперь я не могу понять, что смысл
[DllImport ("", CallingConvention = CallingConvention.ThisCall, SetLastError = истинный)]
Почему путь к файлу пустым ? Как DLL управляет вызовом класса и функции? Я имею в виду, какую технику использует программист?
EDIT: Название библиотеки, которую я пытаюсь понять, возможно, помогает Elobuddy.
chcek dll файл отсутствует или нет –
его строка, и я не думаю, что пустая строка для отсутствующей dll. Я думаю, что он должен ориентироваться на инъекционную DLL приложения. –
Если вы пытаетесь взломать переменные, такие как здоровье или деньги, вы можете попробовать [хакер памяти] (http://www.cheatengine.org) или [.net reflection] (https://www.codeproject.com/Articles/17269/Reflection-in-C-Tutorial), если вы хотите вызвать методы. –