Explico brevemente. La mayoría de compiladores sitúan las cadenas en secciones de sólo lectura, en el caso de de ejecutables portables de Windows (PE):
[1]- .data que contiene los datos inicializados. Es de lectura y escritura.
- .idata que contiene datos importados. Es evidentemente de lectura y escritura.
- .edata que contiene datos para exportar. Sólo es de lectura.
- .rdata que contiene datos inicializados de sólo lectura. Aquí es donde se introducen las cadenas que no se modifican en tiempo de ejecución, como la de tu ejemplo.
- .pdata que contiene datos de excepción. Sólo lectura.
- .rsrc que contiene datos de recursos de diversa índole. Es de sólo lectura.
En el caso de ejecutables ELF de unix:
[2] - .data y .data1 que contiene datos inicializados. Escritura y lectura.
- .rodata y .rodata1 que contiene datos inicializados. Sólo lectura. Aquí se suelen colocar las cadenas.
Esto es un ejecutable
PE y las secciones de las cadenas, hay algunas que se observan en la sección de sólo lectura .rdata y otras en .data.
Un saludo.