覆盖和功能,仍然可以获得修改后的信息

时间:2016-02-15 11:03:04

标签: debugging lua override

有没有办法覆盖一个函数并仍然得到结果:

debug.getinfo(pairs).linedefined == -1 ?

我想覆盖一个功能但仍然绕过debug.getinfo的检查 否则我可以覆盖debug.getinfo

1 个答案:

答案 0 :(得分:0)

从技术上讲,您可以在查找表中存储对旧函数的引用,然后在定期调用之前将getinfo包装以检查此表。这将有效地完成您尝试做的事情。

但是,我必须强调,如果您正在进行沙盒处理,或以某种方式禁止或限制用户,则禁用调试库必要。是的,你可以对它们进行沙盒化处理,但IMO就像使用loadstring沙箱字节码一样困难(如果你还应该禁用它,请说明。)

但我没有给你一个代码示例,因为我们非常劝阻你这样做,我希望你能找到另一个选择。