Home > Blockchain >  How are char arrays / strings stored in binary files?
How are char arrays / strings stored in binary files?

Time:04-21

When I compile this code using different compilers and inspect the output in a hex editor I am expecting to find the string "Nancy" somewhere.

#include <stdio.h>

int main()
{
    char temp[6] = "Nancy";
    printf("%s", temp);

    return 0;
}
  1. The output file for gcc -o main main.c looks like this:

    enter image description here

    Note the byte sequence is the same.

    So I use gcc -S -c:

        .file   "teststr.c"
        .text
        .section    .rodata
    .LC0:
        .string "%s"
        .text
        .globl  main
        .type   main, @function
    main:
    .LFB0:
        .cfi_startproc
        endbr64
        pushq   %rbp
        .cfi_def_cfa_offset 16
        .cfi_offset 6, -16
        movq    %rsp, %rbp
        .cfi_def_cfa_register 6
        subq    $16, %rsp
        movq    %fs:40, %rax
        movq    %rax, -8(%rbp)
        xorl               
  • Related