劫持 Opengl32.dll 实现游戏MOD

前提是你的游戏是用的Opengl,如果是DX的,自行谷歌方法,应该差不多,参考GTA5

最近玩了款《天命奇御》的国产网游,自己手动写了个MOD,本来是直接修改Chap-Assembly.dll来实现修改游戏的,

但想想这种方式不雅,每次游戏更新都要重新写一遍,再说替换原游戏文件的方式,总是有点不符合设计模式里的“多拓展,少修改”的原则

于是,投机取巧,Unity不是调用了opengl32.dll库嘛?我只要劫持它就行,将它修改,注入我的代码,然后放在游戏根目录(原理是,win系统,

Load外部dll,会先从游戏根目录扫描,找不到该dll,再去系统目录找,一般情况下,游戏根目录是没有opengl32.dll的,U3D的游戏启动后,

都是去系统目录里找的,我只要把opengl32.dll放到根目录,就可以了。

Hack的入口,就从openg里的 glEnable,glBegin入手,在那里注入我的代码,然后Unity调用到GL库时,就会跳转到我的代码。

至于我如何通过C++代码调用Unity/C#的API来实现修改游戏,则有两种思路,一种是利用c++调用c#的原理调用(有个现成的库,但我没使用过,Unity Scripting in C++

另一种比较简单粗暴,就是从mono入手,GetModuleHandleW(L"mono.dll"),GetProcAddress(me.hModule, "mono_thread_attach")找到mono的进程,

然后将mono里那堆操作IL的函数,直接给映射过来,然后就可以为所欲为了。

原文地址:https://www.cnblogs.com/jeason1997/p/9499142.html

时间: 2024-11-16 10:01:26

劫持 Opengl32.dll 实现游戏MOD的相关文章

错误提示 - WeChatWeb.exe - 损坏的图像(OPENGL32.dll)

用户运行微信电脑版时候出现如下错误提示: WeChatWeb.exe - 损坏的图像应用程序或 DLL C:\WINDOWS\system32\OPENGL32.dll 为无效的 Windows 映像.请再检测一遍您的安装盘.应用程序或 DLL C:\WINDOWS\system32\GLU32.dll 为无效的 Windows 映像.请再检测一遍您的安装盘. 程序其实还能运行,只是部分内容无法显示(比如公众号的图文文章). 用户电脑为XP系统,以为OPENGL32.dll文件坏了,准备相应文件

浏览器打开本地写的html文件,联网环境下自动跳转至搜狗网页,网页劫持locc.dll,浏览器主页都被劫持到搜狗导航的解决办法。

1.win徽键+e键搜索locc.dll.删除locc.dll,如删除不了,用软件强制删除. 2.清理注册表:win+r,输入regedit,在编辑菜单里找到或ctrl+f找到frist home page 或者state page找到劫持跳转的url修改或删除. 3.搜索系统盘下的TaskBar,将含有浏览器的快捷方式删除. 4.经过以上经验,千万不要用网上下载的小马激活工具去激活系统.

封装 UnityEngine.Debug.Log 为Dll ,游戏发布关闭 Log 减少性能消耗

本文参考雨松Mono的文章: http://www.xuanyusong.com/archives/2782 Mono介绍的是Mac 上Console 编译DLL的方法,本文是在 Win7 系统使用MonoDeveloper 编译. 文章转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn/ 在游戏发布时,有很多东西需要进行优化 ,消耗性能的东西 能减少就减少. UnityEngine.Debug.Log 是很消耗性能的操作,即使我们

劫持注入DLL

void CControlDlg::InjectionTheDll(PROCESS_INFORMATION pi) { CString csDllPath = m_csDirPath + _T("client.dll"); if (csDllPath.IsEmpty()) { AfxMessageBox(_T("无法找到client.dll")); return; } HANDLE hFile = CreateFile( m_csMainPath.GetBuffer

Dll劫持漏洞详解

  一.dll的定义 DLL(Dynamic Link Library)文件为动态链接库文件,又称"应用程序拓展",是软件文件类型.在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中.当我们执行某一个程序时,相应的DLL文件就会被调用.一个应用程序可使用多个DLL文件,一个DLL文件也可能被不同的应用程序使用,这样的DLL文件被称为共享DLL文件. 如果在进程尝试加载一个DLL时没有指定DLL的绝对路径,那么Wi

dll劫持技术探索

0x1:实验背景 看到国外一篇文章,大致描述如下: Hi, There are a dll planting vuln in skype installer. This vuln had been reported to Microsoft but they decided not fix this. Here is the vulnerability details: ------ Skype installer in Windows is open to DLL hijacking. Sky

DLL劫持技术例子: HijackDll

控制台程序:DllLoader Dll加载器,用于动态加载目标Dll,并动态调用目标函数 1 #include <cstdio> 2 #include <windows.h> 3 4 typedef int (*pAdd) (int a, int b); 5 6 int main() 7 { 8 HMODULE hModule = GetModuleHandleA("Dll.dll") != NULL ? GetModuleHandleA("Dll.d

dll 劫持

库: AheadLib 输入dll 处填你要劫持的dll 路径. 例如: C:\WINDOWS\system32\lpk.dll 来自为知笔记(Wiz)

用游戏编辑器制作MOD脱颖而出

[导读] 立志成为游戏策划的你,和千千万万的游戏玩家的不同之处在哪? 是你玩过很多的游戏?别人也玩过 是你游戏打得比别人好?也许电子竞技更适合你 是你对游戏的理解比别人深,知道如何设计出更好玩的游戏?嗯,是的,可是怎么证明呢? Action speaks louder than words! 最好的证明就是拿出你自己制作的游戏MOD,这胜过一万字的文字简历.可做mod难吗?不难,需要的只是你的一刻红心(立志成为游戏设计师的决心),两手准备(选对工具,找对方法),假以时日,你就能做出自己的第一个m