运行libsandbox

2023-12-09

我目前正在开发一个在线 C/C++/汇编编译器,我偶然发现了一个名为 libsandbox 的好软件。这使我能够运行在线编写的代码,对其进行编译并拦截系统调用(如果有)。

首先,我对 Linux 环境还是个新手。我已经下载了 tar.gz,解压它,配置它并进行安装。运行时没有任何错误,但现在我运行起来很困难。我应该如何在这个沙箱中运行 C/C++ 程序?我必须向其提供 .c/.cpp 文件吗?编译后的可执行文件?

这可能是一个非常愚蠢的问题。我在互联网上搜索了如何执行此操作,并阅读了包含的自述文件,但他们没有给我任何线索。

提前致谢!


沙箱仅适用于 Linux。您实际上必须首先使用库函数创建沙箱,然后告诉沙箱运行您的程序。

这个 python 示例展示了如何从 python 中执行此操作。 “#targeted program”行显示您将在何处指定实际应用程序的名称。

def main(args):
    # sandbox configuration
    cookbook = {
        'args': args[1:],               # targeted program
        'stdin': sys.stdin,             # input to targeted program
        'stdout': sys.stdout,           # output from targeted program
        'stderr': sys.stderr,           # error from targeted program
        'quota': dict(wallclock = 30000,# 30 sec
                      cpu = 2000,       #  2 sec
                      memory = 8388608, #  8 MB
                      disk = 1048576)}  #  1 MB

# create a sandbox instance and execute till end
msb = MiniSandbox(**cookbook)
msb.run()
# verbose statistics
sys.stderr.write("result: %(result)s\ncpu: %(cpu)dms\nmem: %(mem)dkB\n" % \
    msb.probe())
return os.EX_OK

我建议访问 libsandbox 下载页面并获取完整的 example2.py 文件,然后使用 python 脚本运行沙箱。这比编写 C++ 或 C 程序来为您完成这件事更容易。

So...

  1. 编写您的 C 或 C++ 程序。不要将其链接到 LIBSANDBOX。

  2. 确保你已经安装了 python。

  3. 从 libsandbox 页面运行示例 python 脚本。

  4. python 脚本将为您加载 libsandbox。然后它将运行您在沙箱中构建的程序。

Simple.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

运行libsandbox 的相关文章

  • 使用 std::packaged_task/std::exception_ptr 时,线程清理程序报告数据争用

    我遇到了线程清理程序 TSan 的一些问题 抱怨某些生产代码中的数据争用 其中 std packaged task 通过将它们包装在 std function 中而移交给调度程序线程 对于这个问题 我简化了它在生产中的作用 同时触发 TSa
  • 如何在c++中读取pcap文件来获取数据包信息?

    我想用 C 编写一个程序来读取 pcap 文件并获取数据包的信息 例如 len sourc ip flags 等 现在我找到了如下代码 我认为它会帮助我获取信息 但是我有一些疑问 首先我想知道应该将哪个库添加到我的程序中 然后什么是 pca
  • 在 DataView 的 RowFilter 中选择 DISTINCT

    我试图根据与另一个表的关系缩小 DataView 中的行范围 我使用的 RowFilter 如下 dv new DataView myDS myTable id IN SELECT DISTINCT parentID FROM myOthe
  • 复制 std::function 的成本有多高?

    While std function是可移动的 但在某些情况下不可能或不方便 复制它会受到重大处罚吗 它是否可能取决于捕获变量的大小 如果它是使用 lambda 表达式创建的 它依赖于实现吗 std function通常被实现为值语义 小缓
  • 为什么 Google 测试会出现段错误?

    我是 Google Test 的新手 正在尝试提供的示例 我的问题是 当我引入失败并设置GTEST BREAK ON FAILURE 1 或使用命令行选项 GTest 将出现段错误 我正在考虑这个例子 https code google c
  • 回发后刷新时提示确认表单重新提交。我做错了什么?

    我有一个以空白 默认状态启动的仪表板 我让用户能够将保存的状态加载到仪表板中 当他们单击 应用 按钮时 我运行以下代码 function CloseAndSave var radUpload find radUpload1ID var in
  • 在 Visual Studio 2010 中从 Fortran 调用 C++ 函数

    我想从 Fortran 调用 C 函数 为此 我在 Visual Studio 2010 中创建了一个 FORTRAN 项目 之后 我将一个 Cpp 项目添加到该 FORTRAN 项目中 当我要构建程序时出现以下错误 Error 1 unr
  • 是否有实用的理由使用“if (0 == p)”而不是“if (!p)”?

    我倾向于使用逻辑非运算符来编写 if 语句 if p some code 我周围的一些人倾向于使用显式比较 因此代码如下所示 if FOO p some code 其中 FOO 是其中之一false FALSE 0 0 0 NULL etc
  • 如何在 32 位或 64 位配置中以编程方式运行任何 CPU .NET 可执行文件?

    我有一个可在 32 位和 64 位处理器上运行的 C 应用程序 我试图枚举给定系统上所有进程的模块 当尝试从 64 位应用程序枚举 32 位进程模块时 这会出现问题 Windows 或 NET 禁止它 我认为如果我可以从应用程序内部重新启动
  • 使用自定义堆的类似 malloc 的函数

    如果我希望使用自定义预分配堆构造类似 malloc 的功能 那么 C 中最好的方法是什么 我的具体问题是 我有一个可映射 类似内存 的设备 已将其放入我的地址空间中 但我需要获得一种更灵活的方式来使用该内存来存储将随着时间的推移分配和释放的
  • Azure 辅助角色“请求输入之一超出范围”的内部异常。

    我在辅助角色中调用 CloudTableClient CreateTableIfNotExist 方法 但收到一个异常 其中包含 请求输入之一超出范围 的内部异常 我做了一些研究 发现这是由于将表命名为非法表名引起的 但是 我尝试为我的表命
  • C# 中的合并运算符?

    我想我记得看到过类似的东西 三元运算符 http msdn microsoft com en us library ty67wk28 28VS 80 29 aspx在 C 中 它只有两部分 如果变量值不为空 则返回变量值 如果为空 则返回默
  • 3 操作数 imul 指令在 ia-32 汇编中到底起什么作用?

    我正在阅读说明 imul 0xffffffd4 ebp ebx 4 eax 我对它到底在做什么感到困惑 我明白那个imul乘法 但我无法弄清楚语法 我知道并且更喜欢 Intel MASM 语法 所以我将使用它 请注意 操作数的顺序在 AT
  • 将 MQTTNet 服务器与 MQTT.js 客户端结合使用

    我已经启动了一个 MQTT 服务器 就像this https github com chkr1011 MQTTnet tree master例子 该代码托管在 ASP Net Core 2 0 应用程序中 但我尝试过控制台应用程序 但没有成
  • C++ 函数重载类似转换

    我收到一个错误 指出两个重载具有相似的转换 我尝试了太多的事情 但没有任何帮助 这是那段代码 CString GetInput int numberOfInput BOOL clearBuffer FALSE UINT timeout IN
  • 方法优化 - C#

    我开发了一种方法 允许我通过参数传入表 字符串 列数组 字符串 和值数组 对象 然后使用这些参数创建参数化查询 虽然它工作得很好 但代码的长度以及多个 for 循环散发出一种代码味道 特别是我觉得我用来在列和值之间插入逗号的方法可以用不同的
  • 如何部署“SQL Server Express + EF”应用程序

    这是我第一次部署使用 SQL Server Express 数据库的应用程序 我首先使用实体 框架模型来联系数据库 我使用 Install Shield 创建了一个安装向导来安装应用程序 这些是我在目标计算机中安装应用程序所执行的步骤 安装
  • 无法接收 UDP Windows RT

    我正在为 Windows 8 RT 编写一个 Windows Store Metro Modern RT 应用程序 需要在端口 49030 上接收 UDP 数据包 但我似乎无法接收任何数据包 我已按照使用教程进行操作DatagramSock
  • 使用 .NET Process.Start 运行时挂起进程 - 出了什么问题?

    我在 svn exe 周围编写了一个快速而肮脏的包装器来检索一些内容并对其执行某些操作 但对于某些输入 它偶尔会重复挂起并且无法完成 例如 一个调用是 svn list svn list http myserver 84 svn Docum
  • 如何将 PostgreSql 与 EntityFramework 6.0.2 集成? [复制]

    这个问题在这里已经有答案了 我收到以下错误 实体框架提供程序类型的 实例 成员 Npgsql NpgsqlServices Npgsql 版本 2 0 14 2 文化 中性 PublicKeyToken 5d8b90d52f46fda7 没

随机推荐

  • Android Webview使后退按钮转到上一页

    我有一个网络视图 可以让我浏览网站 当我单击后退按钮时 它不会转到上一页 而是退出应用程序 我已将以下方法添加到 MainActivity java Override public boolean onKeyDown int keyCode
  • 为什么非 ASCII 字符显示为奇怪的符号?

    我这里有两个案例 我的数据库包含很多我想要提取到页面的信息 其中一些信息是name其中包含非 ASCII 字符 例如Uwe R lke 运行良好的旧解决方案 我从数据库中获取数据并直接从VB while环形 在这种情况下 所有字符都正确显示
  • shell 脚本中 HERE 文档中的引号

    G day 我在使用 shell 脚本时遇到语法错误 如下所示 ssh root mm user vm lenny lt
  • 在 mysqli 中插入许多值的最佳方法?

    我正在寻找一种 SQL 注入安全技术 可以使用 PHP 和 MySQLi 一次插入大量行 约 2000 行 我有一个数组 其中包含必须包含的所有值 目前我正在这样做 I t
  • DataSet 不支持 C# 中的 System.Nullable<> 异常

    public partial class Form2 Form public Form2 InitializeComponent private void Form2 Load object sender EventArgs e RST D
  • Laravel 说“路线未定义”

    在我的routes php 中我有 Route patch preferences id UserController update 在视图文件 account preferences blade php 中我有 Form model Au
  • Python 2.5.2 的 lower() 和 upper() 是否遵循 Unicode?

    我正在制作一个 Google AppEngine 应用程序 Python 2 5 2 运行时环境是否遵循 Unicode 标准 例如 unicode 对象上的 lower 和 upper 方法 是的 也不是 有关示例 请参阅此处讨论的代码
  • Swift 语言中的感叹号是什么意思?

    Swift 编程语言指南有以下示例 class Person let name String init name String self name name var apartment Apartment deinit println na
  • 是否可以在各种失败情况下(例如异常)在程序终止之前使 std::cout 自动刷新

    如果引发异常 则缺少刷新的标准输出会使诊断问题变得更加困难 有什么可以使用的缓解措施吗 例如 终止挂钩 编译器标志等 我可以理解 在段错误中 刷新可能非常困难 但我认为对于任意线程中未捕获的异常 它至少在理论上应该是可能的 注意 由于可能使
  • Selenium 调试:元素在点 (X,Y) 处不可单击

    我试着刮这个site通过硒 我想单击 下一页 按钮 为此我这样做 driver find element by class name pagination r click 它适用于许多页面 但不适用于所有页面 我收到此错误 WebDrive
  • 开玩笑: toBeInstanceOf(Object) 失败

    只是检查我们是否正在导出对象失败 如下所示 import as Foo from foo describe Foo gt test should export an object gt expect Foo toBeInstanceOf O
  • 基于字符向量重新排序数据框

    我认为这应该非常简单 但我找不到办法做到这一点 我想根据一个因素重新排序数据框 到目前为止我能找到的所有答案都提供了逻辑排序 但这是任意的 并且是数字和字母的混合 也许这是一个问题 因为它是factor not a vector 但向量的答
  • 在Python中获取音频输入设备列表

    如何使用 Python 以这种格式获取 Linux 中的音频输入设备列表hw 0 1 我已经使用 pyaudio 尝试了以下操作 def getaudiodevices p pyaudio PyAudio print p get defau
  • 如何构建netty-transport-native-epoll-4.0.32.Final-linux-x86_64.jar?

    我在 netty 中使用本机 epoll 传输 并且能够从存储库下载 netty transport native epoll 4 0 32 jar 不过我还需要 netty transport native epoll 4 0 32 Fi
  • Xamarin 跨平台证书固定

    我正在使用 Xamarin 设计一个应用程序 我想通过使用证书固定来提高我们的安全性 但我找不到办法做到这一点 我可以使用 android 的本机方法来做到这一点 但我想知道是否有跨平台的解决方案 甚至是 Windows Phone 的解决
  • 在 Web 应用程序中创建和下载巨大 ZIP(来自多个 BLOB)的最佳实践

    我需要从我的 Web 应用程序执行大量文件下载 显然 这将是一个长期运行的操作 它将被用于每年一次 每个客户 所以时间不是问题 除非超时 但我可以通过创建某种形式的 keepalive 心跳来处理 我知道如何创建一个隐藏的iframe并与它
  • 以编程方式将应用程序添加到 Windows 防火墙

    我有一个通过 ClickOnce 安装和更新的应用程序 该应用程序通过 FTP 下载文件 因此需要添加为 Windows 防火墙的例外 由于 ClickOnce 的工作方式 EXE 的路径会随着每次更新而变化 因此异常也需要更改 对防火墙进
  • bash-求行中数字的平均值

    我正在尝试逐行读取文件并找到每行中数字的平均值 我收到错误 expr non numeric argument 我已将问题范围缩小到 sum expr sum i 但我不确定为什么代码不起作用 while read a rows do fo
  • 如何安排 C# Windows 服务每天运行一个方法? [复制]

    这个问题在这里已经有答案了 可能的重复 如何安排 C Windows 服务每天执行任务 我正在创建一个 C Windows 服务 但我没有找到让计时器每天在 App Config 文件中指定的特定时间触发方法的最佳方法 例如 每天早上 6
  • 运行libsandbox

    我目前正在开发一个在线 C C 汇编编译器 我偶然发现了一个名为 libsandbox 的好软件 这使我能够运行在线编写的代码 对其进行编译并拦截系统调用 如果有 首先 我对 Linux 环境还是个新手 我已经下载了 tar gz 解压它