尽管调用了gets
和printf
,但似乎GCC还是在向分发
call sym.imp.__gets_chk
call sym.imp.__printf_chk
我还提供了另一个二进制文件-我没有编译它。它还再次链接/lib/i386-linux-gnu/libc.so.6
,并直接调用函数。如何直接链接这些功能而不链接_chk
符号?
我尝试过使用-fno-chkp-use-wrappers
和不使用-m32 -fno-stack-protector -std=c89 -fno-PIE -no-pie -Os -mpreferred-stack-boundary=2 -fno-chkp-use-wrappers
。
当前的构建选项是
import React, { Component } from 'react';
import { Image } from 'semantic-ui-react'
class SideBar extends Component {
render() {
return(
<header className="main-header">
<div className="main-header-frame">
<div className="header-wrapper">
<Image size="tiny" src="./images/Logo.png" />
<div className="logo">TEXT</div>
<nav className="main-navigation-container">
<ul className="main-navigation">
<li>
<a>Test1</a>
<ul>
<li>t1</li>
<li>t2</li>
</ul>
</li>
</ul>
</nav>
</div>
</div>
</header>
)
}
};
export default SideBar;
答案 0 :(得分:1)
答案 1 :(得分:0)
如何直接链接这些功能而无需链接_chk符号?
您不能:必须在没有-fstack-protector
的情况下重新编译此代码。
我明确拥有-fno-stack-protector
好吧,您环境中的某物定义了__USE_FORTIFY_LEVEL > 0
。
您可以使用以下方法预处理源:
gcc -m32 -fno-stack-protector -std=c89 -fno-chkp-use-wrappers -dD -E stack0.c
并验证__USE_FORTIFY_LEVEL
的定义确实正确,并找出其来源。