我想得到一个混淆的输出(为学生)。我用了这个例子:
输入文件 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() {
这是预期的行为吗?我认为输出应该是可编译的。
1条答案
按热度按时间3bygqnnd1#
README.compile解释了“flex”的问题,并指出您需要使用“lex”或“flex -l”。
最简单的修复方法是在运行./configure后更新所有Makefile,并将LEX=行更新为flex -l,而不是flex。
混淆快乐!