- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一些代码,我想在其中找到漏洞,我对其进行了编码,如果您能帮助我找到其中的任何内容,我将不胜感激。
我唯一担心的是 getfenv 可能会以某种方式被欺骗。
coroutine.wrap(function()
while wait() do
for i, v in func_table.pairs(func_table) do
if func_table.getfenv()[i] ~= v then
return ban_func(10, 23)
end
end
end
end)()
需要明确的是,ban_func位于func_table内部,这会自动检测其数据变化并相应地禁止。我认为他们作为剥削者/骗子能够改变任何事情的唯一方法就是欺骗 getfenv。
如果您能向我解释如何欺骗这样的函数和/或如何修补该函数的欺骗,而所有这些都无需更改其自身的任何数据,我将非常高兴!
最佳答案
我假设这段代码正在漏洞利用者/作弊者的机器上运行。从根本上来说,没有办法保证客户端代码的安全。你的支票可以被删除,你的支票也可以被删除。甚至 Lua 二进制文件本身也可以在内部进行更改,并且 getfenv 可以更改为执行除其功能之外的任何操作。在服务器和客户端逻辑之间实现强大的边界是保护应用程序安全的唯一真正方法。
这种情况下可能发生的一种攻击是,如果客户端在设置 func_table 之前在相同的 lua_State 中运行 Lua 代码。在这种情况下,他们可以像我发现的 lua 沙箱实现那样对你进行沙箱 here .
另一种攻击是利用元方法来制作 func_table.getfenv()[i] ~= v
返回真。这可以通过使用 rawequal 检查 func_table.getfenv()[i]
的类型来检测。 ,或者使用原始函数作为真值表中的键并检查表是否位于键 func_table.getfenv()[i]
是真的。
另一种攻击是编辑全局状态和表。更改函数的地址时,通常会更改 ram 中对该地址的所有引用,其中包括表中的内部引用。
由于您正在使用wait()
我假设您正在 Roblox 中运行此代码。在这种情况下,正如我在他们的开发者论坛上强调的那样,experimental mode
(以前的 filtering enabled
)设置是保护您的游戏免受利用的唯一方法。这可以防止客户在大多数时间编辑游戏。他们仍然可以完全控制他们的角色位置,一些其他实例类型(我相信像帽子),可以要求服务器通过 RemoteEvent 和 RemoteFunction 实例进行更改,以及墙黑客(设置墙透明度)(为了解决这个问题,只发送它可以看到的客户端部分)。
关于security - Lua - 我如何在不改变 GetFenv 函数的情况下欺骗它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52762560/
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 11 年前。 Improve thi
我有一个只适用于火线摄像头的第三方视觉库,是否有可能以某种方式欺骗 libdc1394 认为连接了火线摄像头但通过 v4l 从 USB 网络摄像头传递帧? 最佳答案 鉴于 stackoverflow
在浏览网页时,我需要为我正在查看的网站伪造我的屏幕分辨率,但保持我的视口(viewport)不变(Chrome 或 FF 的模拟无法解决我的问题)。 例如,如果我转到 http://www.whati
假设情况。我在 *nix(linux、BSD 等)中有一个命令行程序。编写它是为了让您将文本文件作为参数传递给它 $ program file.txt 运行程序,它会查看 file.txt 中的文本。
我从欺骗中搜索了 proctecting .net 程序集并找到了 this post很有用。但是,我在帖子中看到了一个非常明显的矛盾。有一点表明,如果用户是同谋,强名称就没有用: But if th
我有一个已加密的 JWT,希望存储在 HttpOnly 安全 cookie 中并通过 SSL 发送。但是,由于我在第一次访问我的网站时没有设置 cookie,那么在我创建 cookie 之前,如何阻止
我想制作一个应用程序,作为第三方应用程序的便捷入口点,使用我的参数启动其 Activity 之一,而不是单击它来执行相同的操作。我对第三方应用程序有一些了解:我需要一个带有单个 .putExtra 的
我将 HtmlAgilityPack 用作自动化流程的一部分,以从现有内部网页中提取内容。问题是我需要让它认为 IsPostBack 是真的。 这是流程: 对页面进行初始调用并提取 HTML。 解析
我在 ARM Cortex-M0 的一些旧版 ROM 代码中遇到了挑战 ROM 代码有其数据存储部分,并且在某些时候它通过函数指针列表从其他 volatile 存储器调用函数。 我目前已用完添加代码的
我一直想知道是否有一种方法可以欺骗导航器、屏幕等 JS 对象,以便在页面请求时发送虚假数据。 我使用 C# 开发一个包含 GeckoFx 浏览器的应用程序,我想做这样的事情:每次我打开一个包含 JS
我想知道是否有一种方法可以将 SuperType 数组转换为 SubType 数组。像这样: SubType[] subArray = (SubType[])someSuperTypeArray; 我
我的所有功课都使用平板电脑,因为我没有一台好电脑,但网站通常以移动设备格式出现。有没有办法设置我的浏览器来告诉网站它是一台电脑,而不是平板电脑?如果可能的话,这是否会导致任何其他问题,例如禁用触摸屏或
我想按照类(class)大纲学习这个概念。我需要一些想法来进行 ICMP 欺骗。我在网上找到了 ICMP 欺骗程序,但我必须这样做:当主机 ping 一个未知的 ip 地址时,无论它是否存在,都必须有
我正在使用 PayPal Hosted Pages 构建一个注册系统。据我了解,我可以使用 Silent POST 功能让我的应用程序知道托管结帐页面上何时发生了成功的交易。我担心可能会欺骗此 POS
我正在尝试编写一个应用程序,它只是作为一个已经存在的网站的界面。没有 API,因此将进行大量的 POSTing、GETing 和 XML 解析。 问题 1:“您需要在浏览器中启用 JavaScript
我们已经使用带有设置 cookie 的 PHP 创建了一个数据库驱动的网站,现在需要防止 HTTP 欺骗,关于如何做到这一点有什么想法吗?我们是这方面的初学者,所以任何帮助都会很棒 最佳答案 您不能“
如果我将这两者都放入数据库中,是否足以防止站点访问者欺骗他们来自不同的 IP 地址? $ip1 = $_SERVER['HTTP_X_FORWARDED_FOR']; $ip2 = $_SERVER[
当我在一些表之间进行内部联接时,我遇到了一些查询抛出重复的问题。 本质上,我加入了一些标签,以及基于 videoId 的 channel (想想流派),这样一个特定的视频文件就可以有多个标签并成为多个
据我所知,没有什么可以限制任何开发人员对他们的信标进行编程以使用特定的 UUID、主要、次要或标识符。 如果我创建一个 UUID 为“foo”的 iBeacon,如何防止其他开发人员创建具有相同 ID
我希望构建一个简单的服务器来代理我网络网关处的 TCP 连接(无恶意),但 TCP 握手失败。 使用 netfilter,我已经设法更改传入 TCP 数据包的 IP 和端口,以便将它们转移到我的应用程
我是一名优秀的程序员,十分优秀!