gpt4 book ai didi

gcc - ld.exe : unrecognized option '-z'

转载 作者:行者123 更新时间:2023-12-05 06:27:13 28 4
gpt4 key购买 nike

我关注了这个Buffer Overflow Exploit tutorial并在我的 mingw32.exe 中编写了一个用 gcc 编译的小应用程序。但是,当我这样做时,出现以下错误:

Liu.D.H@DESKTOP-KA8TQF4 MINGW32 ~
$ gcc vuln.c -o vuln -fno-stack-protector -m32 -z execstack
C:/msys32/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: unrecognized option '-z'
C:/msys32/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe: use the --help option for usage information
collect2.exe: error: ld returned 1 exit status

Liu.D.H@DESKTOP-KA8TQF4 MINGW32 ~
$ gcc -c vuln.c -o vuln -fno-stack-protector -m32 -z execstack

Liu.D.H@DESKTOP-KA8TQF4 MINGW32 ~
$ ld -z execstack vuln.o -o vuln
C:\msys32\mingw32\bin\ld.exe: unrecognized option '-z'
C:\msys32\mingw32\bin\ld.exe: use the --help option for usage information

Liu.D.H@DESKTOP-KA8TQF4 MINGW32 ~
$ ld -v
GNU ld (GNU Binutils) 2.30

Liu.D.H@DESKTOP-KA8TQF4 MINGW32 ~
$ C:/msys32/mingw32/bin/../lib/gcc/i686-w64-mingw32/7.3.0/../../../../i686-w64-mingw32/bin/ld.exe -v
GNU ld (GNU Binutils) 2.30

Liu.D.H@DESKTOP-KA8TQF4 MINGW32 ~
$

我可以在 man ld 中找到 execstack 选项和上面匹配的版本。

最佳答案

Windows 版本的 ld 不支持 -z 选项。使用 ld --help 检查。对于 Cygwin,它不应列出在 Linux 系统上运行相同命令时出现的 -z 选项。我相信这是因为这里的选项实际上只在 Linux 上才有意义。

-z execstack 选项(不是同名的 Linux tool)告诉 Linux 版本的 ld 关闭数据执行保护 (DEP)可执行文件。这是通过 ELF 中的标志完成的。

Windows DEP policy ,另一方面,如今已内置于操作系统中。以下是您自己管理的一些选项:

  • 对于 Windows 10 上的个别程序:

    1. 在“开始”菜单中查找“调整 Windows 的外观和性能”。 (您可以输入“performance”,它就会出现)。这会为您提供一个新对话框。
    2. 转到第三个选项卡“数据执行保护”。
    3. 在此处添加/删除异常(exception)情况
  • 调用 WinAPI 的 SetProcessDEPPolicy取决于操作系统的 DEP 设置。但是,这必须在程序本身中完成。

  • 使用 bcdedit通过 CMD 全局打开/关闭 DEP,但这是一个坏主意。引用文章:

    Important DEP is a highly effective security feature that should not be disabled unless you have no alternative.

简而言之,当按照教程进行漏洞利用练习时,通常这些都是在 Linux 机器上完成的。在适当的操作系统上运行它,或者为了额外的安全,在 VM 上运行它。不能期望相同的漏洞利用以相同的方式在 Windows 上工作。

有关 Windows DEP 策略的更多信息:请参阅 How to make my program DEP-compatible?

关于gcc - ld.exe : unrecognized option '-z' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55418931/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com