cobfusc生成未知字符

ubbxdtey  于 2023-05-06  发布在  其他
关注(0)|答案(1)|浏览(188)

我想得到一个混淆的输出(为学生)。我用了这个例子:

输入文件 hello.c

#include <stdio.h>

int main() {
    printf("Hello, World!\n");
}

生成混淆文件 olleh.c

cobfusc hello.c -o olleh.c

输出文件 olleh.c

#include <stdio.h>

�my�U �my�U() {
    �my�U("Hello, World!\n");
}%

编译 olleh.c

gcc olleh.c

输出:

olleh.c:3:1: error: stray ‘\344’ in program
    3 | �my�U �my�U() {
      | ^
olleh.c:3:2: error: stray ‘\16’ in program
    3 | �my�U �my�U() {
      |  ^
olleh.c:3:5: error: stray ‘\333’ in program
    3 | �my�U �my�U() {
      |     ^
olleh.c:3:3: error: unknown type name ‘my’
    3 | �my�U �my�U() {

这是预期的行为吗?我认为输出应该是可编译的。

3bygqnnd

3bygqnnd1#

README.compile解释了“flex”的问题,并指出您需要使用“lex”或“flex -l”。
最简单的修复方法是在运行./configure后更新所有Makefile,并将LEX=行更新为flex -l,而不是flex。
混淆快乐!

相关问题