【发布时间】:2017-04-13 18:40:58
【问题描述】:
我正在尝试通过代码注入调用游戏功能。经过一番尝试,我找到了一个可以满足我要求的 dll。
所以我看到了带有 ILSpy 的 dll,但无法理解代码。
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;
}
}
似乎 dll 在目标中使用 c++ dll 和引导 .net 将 c# 代码注入目标应用程序。
现在我不明白是什么意思
[DllImport("", CallingConvention = CallingConvention.ThisCall, SetLastError = true)]
为什么文件路径是空的? dll如何管理类和函数调用?我的意思是程序员使用什么技术?
编辑: 我想了解的图书馆名称是 Elobuddy 可能会有所帮助。
【问题讨论】:
-
检查 dll 文件是否丢失
-
它是一个字符串,我不认为空字符串是因为缺少 dll。我认为它必须针对注入的应用程序 dll。
-
如果您想破解健康或金钱等变量,如果您想调用方法,可以尝试a memory hacker 或.net reflection。
-
看起来您选择的库是 C++\cli 程序集。
-
你能解释更多吗?
标签: c# .net code-injection dllimport unmanaged