diff --git a/binary-exploitation/common-binary-protections-and-bypasses/relro.md b/binary-exploitation/common-binary-protections-and-bypasses/relro.md
index 882226f39..355cce8f2 100644
--- a/binary-exploitation/common-binary-protections-and-bypasses/relro.md
+++ b/binary-exploitation/common-binary-protections-and-bypasses/relro.md
@@ -1,42 +1,59 @@
# Relro
{% hint style="success" %}
-Aprende y practica Hacking en AWS: [**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
-Aprende y practica Hacking en GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Apoya a HackTricks
+Support HackTricks
-* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
-* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositorios de github.
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}
## Relro
-**RELRO** significa **Relocation Read-Only**, y es una característica de seguridad utilizada en binarios para mitigar los riesgos asociados con las sobrescrituras de la **GOT (Global Offset Table)**. Vamos a desglosar el concepto en sus dos tipos distintos para mayor claridad: **Partial RELRO** y **Full RELRO**.
+**RELRO** significa **Relocation Read-Only**, y es una característica de seguridad utilizada en binarios para mitigar los riesgos asociados con los sobrescrituras de **GOT (Global Offset Table)**. Hay dos tipos de protecciones **RELRO**: (1) **Partial RELRO** y (2) **Full RELRO**. Ambos reordenan la **GOT** y **BSS** de los archivos ELF, pero con diferentes resultados e implicaciones. Específicamente, colocan la sección **GOT** *antes* de la **BSS**. Es decir, **GOT** está en direcciones más bajas que **BSS**, lo que hace imposible sobrescribir las entradas de **GOT** al desbordar variables en la **BSS** (recuerda que escribir en memoria ocurre de direcciones más bajas a más altas).
+
+Desglosemos el concepto en sus dos tipos distintos para mayor claridad.
### **Partial RELRO**
-**Partial RELRO** toma un enfoque más simple para mejorar la seguridad sin afectar significativamente el rendimiento del binario. Al **posicionar la GOT por encima de las variables del programa en la memoria, Partial RELRO tiene como objetivo evitar que los desbordamientos de búfer alcancen y corrompan la GOT**.
+**Partial RELRO** adopta un enfoque más simple para mejorar la seguridad sin afectar significativamente el rendimiento del binario. Partial RELRO hace **que la .got sea de solo lectura (la parte no-PLT de la sección GOT)**. Ten en cuenta que el resto de la sección (como la .got.plt) sigue siendo escribible y, por lo tanto, es susceptible a ataques. Esto **no impide que la GOT** sea abusada **por vulnerabilidades de escritura arbitraria**.
-Esto **no evita que la GOT** sea abusada **por vulnerabilidades de escritura arbitraria**.
+Nota: Por defecto, GCC compila binarios con Partial RELRO.
### **Full RELRO**
-**Full RELRO** intensifica la protección al **hacer que la GOT y la sección .fini\_array** sean completamente **de solo lectura**. Una vez que el binario comienza, todas las direcciones de las funciones se resuelven y se cargan en la GOT, luego, la GOT se marca como de solo lectura, evitando efectivamente cualquier modificación durante la ejecución.
+**Full RELRO** aumenta la protección al **hacer que toda la GOT (tanto .got como .got.plt) y la sección .fini\_array** sean completamente **de solo lectura.** Una vez que el binario se inicia, todas las direcciones de función se resuelven y se cargan en la GOT, luego, la GOT se marca como de solo lectura, lo que efectivamente previene cualquier modificación durante el tiempo de ejecución.
-Sin embargo, el inconveniente de Full RELRO radica en términos de rendimiento y tiempo de inicio. Debido a que necesita resolver todos los símbolos dinámicos al inicio antes de marcar la GOT como de solo lectura, **los binarios con Full RELRO habilitado pueden experimentar tiempos de carga más largos**. Esta sobrecarga adicional en el inicio es la razón por la cual Full RELRO no está habilitado de forma predeterminada en todos los binarios.
+Sin embargo, la desventaja de Full RELRO está en términos de rendimiento y tiempo de inicio. Debido a que necesita resolver todos los símbolos dinámicos al inicio antes de marcar la GOT como de solo lectura, **los binarios con Full RELRO habilitado pueden experimentar tiempos de carga más largos**. Este costo adicional de inicio es la razón por la cual Full RELRO no está habilitado por defecto en todos los binarios.
-Es posible verificar si Full RELRO está **habilitado** en un binario con:
+Es posible ver si Full RELRO está **habilitado** en un binario con:
```bash
readelf -l /proc/ID_PROC/exe | grep BIND_NOW
```
## Bypass
-Si se habilita Full RELRO, la única forma de evitarlo es encontrar otra manera que no necesite escribir en la tabla GOT para lograr una ejecución arbitraria.
+Si Full RELRO está habilitado, la única forma de eludirlo es encontrar otra manera que no necesite escribir en la tabla GOT para obtener ejecución arbitraria.
-Ten en cuenta que **la GOT de LIBC suele tener Partial RELRO**, por lo que se puede modificar con una escritura arbitraria. Más información en [Apuntando a las entradas de la GOT de libc](https://github.com/nobodyisnobody/docs/blob/main/code.execution.on.last.libc/README.md#1---targetting-libc-got-entries)**.**
+Ten en cuenta que **la GOT de LIBC es generalmente Partial RELRO**, por lo que puede ser modificada con una escritura arbitraria. Más información en [Targetting libc GOT entries](https://github.com/nobodyisnobody/docs/blob/main/code.execution.on.last.libc/README.md#1---targetting-libc-got-entries)**.**
+
+{% hint style="success" %}
+Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+
+
+
+Support HackTricks
+
+* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
+* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
+* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+
+
+{% endhint %}