【发布时间】:2017-04-16 16:25:12
【问题描述】:
我试图通过引入新的内置方法和函数来破解游戏(但不是为了作弊),以便使用套接字与游戏通信。这是我想要完成的一个小的“伪代码”示例:
在 Lua 代码中我调用 my_hack() 并传递当前游戏状态:
GameState = {}
-- Game state object to be passed on
function GameState:new()
-- Data
end
local gameState = GameState:new()
-- Collect game state data and pass it to 'my_hack' ..
my_hack(gameState)
在my_hack 内部,对象被送走:
int my_hack(lua_State * l)
{
void* gameState= lua_topointer(l, 1);
// Send the game state:
socket->send_data(gameState);
return 0;
}
现在最大的问题是如何在游戏中引入my_hack()?
我假设,所有内置函数都必须保存在某种查找表中。由于所有 Lua 代码都被解释了,import 等函数必须是静态可用的,对吗?如果这是正确的,那么找出这段代码所在的位置应该“足够了”,以便将我的代码偷运到游戏中,这样我就可以在 Lua 脚本中调用my_hack()。
应该有两个选择:第一个是构建的 Lua 嵌入在可执行文件中并且是完全静态的,第二个是所有 Lua 代码都从 DLL 动态加载。
如果对我应该在哪里以及如何继续寻找内置函数有一点点线索,这个问题就发给任何人。我已经用 Cheat Engine 尝试了一些东西,但我并不太成功。我可以作弊一点^^但这不是我想要的。
【问题讨论】:
标签: lua