GCC is the GNU Compiler Collection. It's the de facto standard C compiler on Linux and supports many other languages and platforms as well.
Questions tagged [gcc]
30 questions
                    
                    72
                    
            votes
                
                6 answers
            
        Is it dangerous to compile arbitrary C?
I have a small server and I would like to check compile times on C programs provided by users.  The programs would never be run only compiled.  
What risks are there to allowing users to compile arbitrary C using gcc 5.4.0?
        
        Sriotchilism O'Zaic
        
- 523
 - 1
 - 4
 - 7
 
                    68
                    
            votes
                
                2 answers
            
        What is the most hardened set of options for GCC compiling C/C++?
What set of GCC options provide the best protection against memory corruption vulnerabilities such as Buffer Overflows, and Dangling Pointers? Does GCC provide any type of ROP chain mitigation? Are there performance concerns or other issues that…
        
        rook
        
- 46,916
 - 10
 - 92
 - 181
 
                    15
                    
            votes
                
                3 answers
            
        Compiling a buffer overflow example in modern Linux?
I'm trying to compile a simple buffer overflow example on a Debian i386 VM.  The executable builds ok, but EIP does not get overwritten correctly despite being supplied a sufficiently large input to overflow the buffer and overwrite the pushed EIP…
        
        B-MO
        
- 313
 - 2
 - 6
 
                    6
                    
            votes
                
                2 answers
            
        Is it possible to crack g++ rand()?
So, I have this:
I know that some code was used to generate a random sequence, and it looked roughly like this:
#include 
#include 
int main() {
    const std::string alphabet =…  
        
        Akiiino
        
- 161
 - 5
 
                    5
                    
            votes
                
                2 answers
            
        Is compiling untrusted code safe?
I'm curious about compiling with gcc/g++/clang with the assumption that
headers and implementation files are user-provided, but not the build configuration.
(i.e., no cd lib && make)
What if the user could provide object files to link against too…
        
        PSkocik
        
- 270
 - 1
 - 8
 
                    5
                    
            votes
                
                1 answer
            
        Bypass va_randomize_space and stack-protector
Is a program compiled with the GCC -fstack-protector option and running in a Linux environment with the va_randomize_space kernel variable set to 1, totally protected against buffer overflow attacks?
If not, what is the common technique to produce a…
        
        Davide Berra
        
- 153
 - 1
 - 6
 
                    5
                    
            votes
                
                1 answer
            
        Compiling with GCC retpoline flags
As of version 8 (later backported to 7.3), GCC has added retpoline support [0]. While I understand that it is intended[citation needed] for use in kernel patching for Spectre (ie: [1][2]), that does not prevent normal developers from using those…
        
        esote
        
- 371
 - 2
 - 12
 
                    5
                    
            votes
                
                1 answer
            
        How does GCC's -mmitigate-rop work?
GCC 6 has a flag, -mmitigate-rop, which compiles binaries in a way that reduces the number gadgets exploitable by ROP. The GCC documentation explaining this feature is minimal:
-mmitigate-rop
    Try to avoid generating code sequences that contain…
        
        forest
        
- 64,616
 - 20
 - 206
 - 257
 
                    5
                    
            votes
                
                1 answer
            
        Software mitigation for Spectre v2
I run Debian as my OS and Guix as my package manager. I also run (approximately) latest kernel built using Guix. According to spectre-meltdown-checker, my kernel has mitigation for v1, v2 and v3.
However, latest stable GCC (7.3) has implemented…
        
        Alex Vong
        
- 182
 - 6
 
                    5
                    
            votes
                
                1 answer
            
        Gentoo Hardened vs other distros
I was wondering if the hardened profile from Gentoo was really more secure than any other distro (like Debian, RHEL, Arch ...). For those who don't know, Gentoo hardened allows a system to be built system-wide with specific hardening GCC options…
        
        Rabbit
        
- 53
 - 1
 - 4
 
                    4
                    
            votes
                
                2 answers
            
        How does gcc compiler guard stack for stack overflow?
When we compile c program with gcc, we have to inlude "-z execstack" option to enable stack overflow attack. 
The question I want to ask is how does gcc implement this .
Without this option, how does gcc guard the stack?
Please explain me in detail…
        
        popo
        
- 61
 - 1
 - 4
 
                    4
                    
            votes
                
                1 answer
            
        Custom EXE Template Metasploit 64-bit ASM PE Syntax
I asked this previously then deleted since I think I asked the question without gearing it towards msfvenom and custom EXE templates.
There is a 64-bit Windows PE written in assembly that ships with Metasploit that I am trying to compile to an EXE…
        
        user9225381
        
- 41
 - 2
 
                    3
                    
            votes
                
                1 answer
            
        the state of ASLR, PIE, SSP on Debian in 2018?
As far as I remember, 
most Debian Wheezy packages were not compiled with those useful security flags (ASLR, PIE, SSP, and more).
Did the situation improve with Debian Squeeze or the upcoming Debian Buster ?
By comparison, Ubuntu and Fedora have a…
        
        puzzle
        
- 81
 - 6
 
                    3
                    
            votes
                
                0 answers
            
        How to exploit a stack-overflow without setting -mpreferred-stack-boundary=2
I have been playing with some wargames and I ported some of then on my Linux machine as well. I noticed that when not using -mpreferred-stack-boundary=2, gcc might compile "main" with an interesting prologue/epilogue:
effectively "relying on $ecx…
        
        nilminus
        
- 31
 - 2
 
                    2
                    
            votes
                
                1 answer
            
        How do I compare the safety of a compiled program with optimization flag?
I would like to know how I can know which is the safest compilation line, that is:
Having several compilation lines in, for example, GCC, how do I know which one is more secure? Hardening would be a good solution? What do you recommend?
Does the…
        
        sgio
        
- 21
 - 3