中科大软件学院信息安全三次实验报错汇总

一、make[1]: 没有规则可以创建“arch/x86/syscalls/../include/generated/uapi/asm/unistd_32.h”需要的目标“/usr/src/linux-headers-3.11.0-15-generic/arch/x86/syscalls/syscall_32.tbl”。 停止。

参考博客:make[1]: *** 没有规则可以创建“arch/x86/syscalls/../include/generated/uapi/asm/unistd_32.h”需要的目标“/usr/src/lin-CSDN博客

 执行sudo make会报错,将命令参照上述博客修改为

sudo make -C /usr/src/linux-headers-3.11.0-15-generic/arch/x86/syscalls/syscall_32.tbl M=~不再报错,注意,-C后面参数和M=后面地址应该根据实际情况而定

二、TCP/IP:连接服务器失败(错误原因:Connection refused)

在攻击者连接被攻击者后门程序报错,尝试了多种办法,暂未得到解决

三、linux内核加载驱动提示module verification failed: signature and/or required key missing - tainting kernel

参考博客:linux内核加载驱动提示module verification failed: signature and/or required key missing - tainting kernel-CSDN博客在Makefile中加入CONFIG_MODULE_SIG=n这一行,在头文件附近。

四、mk文件报错:Extraneous text after `else' directive、only one `else' per conditional

参考博客:mk文件报错:Extraneous text after `else' directive、only one `else' per conditional_mk文件 报错显示-CSDN博客

Makefile中换行出现问题,改了就行

五、Makefile错误(2)——missing separator (did you mean TAB instead of 8 spaces?). Stop.

参考博客:Makefile错误(2)——missing separator (did you mean TAB instead of 8 spaces?). Stop.-CSDN博客

Makefile中实际gcc运行行前面是1个tab,而不是8个space,复制可能会有格式问题

vim下能看清楚格式不同

错误格式(8space)

正确格式(1tab)

六、解决错误: fatal error:xxxx: No such file or directory

运行时候注意当前所在位置,报此错大概率是路径不对

七、insmod: ERROR: could not insert module my_block.ko: File exists

这句报错的意思是my_block.ko已经载入内核中了,可以移除后再载入

八、Linux 出现错误 sudo: make: command not found

有可能是make没有安装,安装make即可

sudo apt-get install make
九、eth0:ERROR while getting interface flags:No such device问题解决

可能当前使用的网卡不叫eth0,可以利用iproute show查看当前使用的网卡名

十、# Makefile 4.0 obj-m := sniff.o CURRENT_PATH := $(shell pwd) LINUX_KERNEL := $(shell uname -r) LINUX_KERNEL_PATH := /usr/src/linux-headers-$(LINUX_KERNEL) all: make -C $(LINUX_KERNEL_PATH) M=$(CURRENT_PATH) modules clean: make -C $(LINUX_KERNEL_PATH) M=$(CURRENT_PATH) clean 

执行该Makefile报错,gpt给出如下修改意见:

“你的Makefile文件大致上看起来是正确的,它被设计用于在Linux内核源代码树下构建一个名为“sniff.o”的模块。然而,这里可能存在一个问题,那就是LINUX_KERNEL_PATH变量可能没有正确设置。在你的Makefile中,LINUX_KERNEL_PATH被硬编码为/usr/src/linux-headers-$(LINUX_KERNEL),这意味着它总是指向这个固定的路径,而不论你的Linux内核版本在哪里。这可能导致找不到正确的内核头文件,从而使得构建失败。一个更好的方式是让LINUX_KERNEL_PATH变量动态地指向当前系统的内核头文件路径。你可以使用$(shell ls /usr/src/linux-headers- | grep $(LINUX_KERNEL))来找到对应于当前内核版本的头文件路径。这样,无论你的内核在哪里,都可以找到正确的头文件。所以你的Makefile应该修改为:”

# Makefile 4.0  
obj-m := sniff.o  
CURRENT_PATH := $(shell pwd)  
LINUX_KERNEL := $(shell uname -r)  
LINUX_KERNEL_PATH := /usr/src/linux-headers-$(LINUX_KERNEL)  
  
$(info Looking for kernel headers at $(LINUX_KERNEL_PATH))  
ifneq ($(wildcard $(LINUX_KERNEL_PATH)),)  
$(info Found kernel headers)  
else  
$(error No kernel headers found at $(LINUX_KERNEL_PATH))  
endif  
  
all:  
	make -C $(LINUX_KERNEL_PATH) M=$(CURRENT_PATH) modules  
clean:  
	make -C $(LINUX_KERNEL_PATH) M=$(CURRENT_PATH) clean

修改之后不报错 

后记

报错最主要的原因还是ubuntu版本不同导致的,此外,Makefile的文件名M一定要大写。最后,博客园代码复制很容易就少掉前一两个字母,注意观察一下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值