当前位置: 首页 > 知识库问答 >
问题:

编译错误:程序等中出现错误'\302'

彭建业
2023-03-14

我有一个问题编译以下漏洞代码:

http://downloads.securityfocus.com/vulnerabilities/exploits/59846-1.c

我使用的是"gcc file. c"和"gcc-O2 file. c",但是这两个文件都会导致以下错误:

sorbolinux-exec.c: In function ‘sc’:
sorbolinux-exec.c:76: error: stray ‘\302’ in program
sorbolinux-exec.c:76: error: stray ‘\244’ in program
sorbolinux-exec.c:76: error: ‘t’ undeclared (first use in this function)
sorbolinux-exec.c:76: error: (Each undeclared identifier is reported only  once
sorbolinux-exec.c:76: error: for each function it appears in.)

我试着在Kali Linux和Ubuntu上编译它们

共有3个答案

邢俊悟
2023-03-14

当然,将文件转换为ASCII并清除所有Unicode字符。它可能会起作用。。。但是

  1. 你不会知道你修好了什么
  2. 它还将销毁任何Unicode注释。示例:/:A²B²=C²
  3. 它可能会破坏明显的逻辑,代码仍然会被破坏,但解决方案不那么明显。例如:带有“智能引号”的字符串(“

还有两种手术方法可以解决这个问题:

>

  • 切换字体以查看字符。(在您当前的字体中可能不可见)

    正则表达式搜索不属于非扩展ASCII的所有Unicode字符。

    在记事本中,我可以搜索到FFFF,这还没有让我失望。

    [\x{80}-\x{FFFF}]

    80是十六进制,代表128,第一个扩展ASCII字符。

    点击“查找下一步”并突出显示似乎是空的空间后,您可以关闭搜索对话框,然后按CtrlC复制到剪贴板。

    然后将字符粘贴到Unicode搜索工具中。我通常使用在线的。http://unicode.scarfboy.com/

    例子:

    不知何故,我的代码中有一个要点。Unicode值是2022(十六进制),但是当编译器读取为ASCII时,您会得到\342\200\242(3个八进制值)。这并不像将每个八进制值转换为十六进制并将它们混合在一起那么简单。所以“E2 80 A2”不是代码中的十六进制Unicode点。

  • 狄晟睿
    2023-03-14

    您的源代码中有无效字符。如果您的源代码中没有任何有效的非ASCII字符,可能是双引号字符串,您可以简单地将文件转换回ASCII:

    tr -cd '\11\12\15\40-\176' < old.c > new.c
    

    使用iconv的方法将在没有意义的错误字符处停止。上面的命令行正在处理示例文件。

    廉鸿运
    2023-03-14

    这一行有一个无效字符。这是我看到的:

     类似资料:
    • null 脚本'C:\src\flutter\packages\flutter_tools\gradle\flutter.gradle'行:838 出了什么问题: 任务“:app:CompileFlutterBuildreLease”执行失败。 null null 应用程序:Build.Gradle

    • 我的VBA程序很长,我无法运行该程序。只有编写错误“编译错误:过程太大”。我试着把它改成两个过程,但我不知道如何将它应用到我的系统中。有人能帮我把这个分成两个步骤吗?或者这个节目可以缩短吗?谢谢你,如果你想帮助我,我真的很感激。这是一块

    • 问题内容: 当我在Netbeans中构建并运行程序时,它可以正常工作。但是当我尝试“ mvn compile”时,使用相同的pom.xml文件会出现以下错误: 我的Java版本不是1.3,这里是“ mvn -version”的结果 这是第53行: 问题答案: 问题是在Maven2中默认使用和 您可以通过将其添加到pom中来解决此问题: 将其放在最顶层的父pom中是很实际的,这样您派生的pom不需要

    • 我遇到了一个初学者的编译错误: 我的简单程序: 我尝试使用以下命令编译它: gcc-g-Wall-ansi launch_瓷砖。c-o tiles\u程序 并得到这些错误: 启动_tiles。c: 在函数“main”中: launch_tiles. c: 17:19:错误:预期')'之前';'令牌 launch_tiles. c: 17:19:错误:太少的参数函数'fget' /usr/inclu

    • 当我退出我的应用程序时,这个folloeing错误已经产生。

    • 我是Scala和SBT的新手,所以我可能会遗漏一些明显的东西。 我试图编译http://www.scalafx.org/docs/quickstart/上的HelloWorld示例