标签: c

这些十六进制代码是什么以及如何对它们进行解码/编码?

我有兴趣了解更多有关已发布的在 Linux 机器中创建 root 用户的漏洞的信息;但是,在运行代码之前,我想确保我理解了所有内容,而且我似乎无法找到有关所使用的十六进制代码的任何信息。

这是漏洞利用代码源的链接:exploitdb.com/exploits/17439

这是一个基本的 C 程序,但其中一个指针的值使用如下代码:

           "\x6a\x26\x5a\x25\x04\xe3\xb3\x64"
           "\x04\xc7\x03\x65\x48\xe6\x02\xc3"
Run Code Online (Sandbox Code Playgroud)

如何将其解码为 ASCII 以及如何将其重新编码?

我想我在这里可能完全偏离基础,实际上这段代码应该解码为汇编,但我真的不知道。无论哪种方式,我可以用这段代码做什么来确保我不会执行任意命令?

我对 C 完全陌生,但对 VB.net/C#/PHP 的了解足够危险。

PS 对于那些关心的人,我将在 VM 中运行它。

security c hexadecimal

2
推荐指数
1
解决办法
1407
查看次数

为什么在 C (Linux) 中创建文件需要执行权限和写权限?

我正在尝试从我的 C 源代码在 linux 上创建一个文件。我正在使用该dd命令从文件中读取并通过创建文件将其写入文件。如果我没有目标目录(将在其中创建文件)的执行权限(我有写权限),则无法创建该文件。如果我同时拥有写入和执行权限,它就可以创建文件。

这是什么原因?

linux permissions c

2
推荐指数
1
解决办法
1909
查看次数

执行C程序后如何保持终端打开?

我正在尝试从 python 代码中运行一个 C 程序。

cmd = 'gnome-terminal --command=./myprog'
subprocess.Popen(command, stdout=subprocess.PIPE, shell=True)
Run Code Online (Sandbox Code Playgroud)

代码执行,终端关闭。

我想在执行完成后保持终端打开,而不必在 C 文件中添加任何额外的代码,例如提示用户输入一些内容。

有解决方法吗?

terminal gnome c

2
推荐指数
1
解决办法
5336
查看次数

Linux文件包含“@​​^@^@^@”,如何恢复?

我刚刚写完一个大的 c 代码,但是当我保存并再次打开时,文件包含奇怪的字符: "@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^ @^@^@^@^@0000664^@0001750^@0001750^@0000000031"

我怎样才能恢复文件?

我整天都在写这个程序。:((

linux unix c

1
推荐指数
1
解决办法
262
查看次数

我在哪里可以下载 OpenSSL 的 .so

有谁知道是否可以从他们的网站下载最新的 OpenSSL 共享库?

我只能找到来源,所以也许他们不提供它。我知道我可以从源代码自己构建它,但我需要找到一个(可靠的)位置,我可以将人们指向,以便他们自己下载。

我需要 Linux、Solaris 和 Windows。

c openssl shared-libraries

1
推荐指数
1
解决办法
1253
查看次数

命令提示符下的 C 编译器

我的理解是 Windows 操作系统(确切地说是 Windows 7)必须带有 C 编译器,因为操作系统是用 C 编写的。

如何访问这样的编译器来编译我的 C 源代码?

c

1
推荐指数
1
解决办法
1653
查看次数

为什么编译和链接的高级语言执行得比汇编/机器代码慢?

假设我将 C 编译并链接到平面二进制文件或某些可执行输出格式以在裸机上运行。如果我在启动时优化并直接将二进制文件提供给 CPU,为什么结果格式会从编译和链接的 C 源中花费更多的时钟周期而不是汇编?我的意思是,如果从某种二进制格式提供和获取相同的指令,无论其来源如何,如果生成的二进制文件产生相同的操作码,无论是来自 C、D、汇编还是直接编写的操作码本身(如果可能),为什么程序员经常说汇编总是更快吗?

抱歉,如果不清楚,但总的来说,如果二进制文件只包含必要的指令(和一个链接器脚本或输出格式处理程序可以为 C 或其他语言执行此操作,它应该同样快)。

c binary-files

0
推荐指数
1
解决办法
502
查看次数

当用户是“wheel”的成员时,C 程序无法在 OS X 上打开串行端口

我有一个打开串行端口的 C 程序。代码不是这里的问题。当我以 sudo 身份运行程序时,它工作正常并打开端口。当我以自己(普通用户)身份运行它时,它无法打开串行端口。

串口是:

crw-rw-rw-  1 root  wheel   18,   5 Dec 26 17:34 /dev/cu.usbmodem1421
Run Code Online (Sandbox Code Playgroud)

我正在运行 Mac OSX 10.11.6 (El Capitan)。我已将自己添加到“车轮”组中,但这并没有帮助。所以我想知道如果我是'wheel'组的成员,为什么我不能打开它?还有什么我想念的。

<

sudo serial-port permissions c macos

0
推荐指数
1
解决办法
925
查看次数