Excelente pregunta! Vas a aprender mucho, y mucho más rápido, construyendo tus propias herramientas.
Cómo hacer esto es perfectamente sencillo: descargue la fuente de una herramienta y pase 2–3 meses averiguando cómo funciona exactamente. No te limites a leer el código. Comente las secciones y vea si el cambio en la funcionalidad coincide con lo que esperaba. Agregue una nueva funcionalidad para hacer que la herramienta sea más fácil de asimilar. Use Pin, gdb, strace y cualquier otra herramienta que desee para ver cómo se ejecuta la herramienta.
Una vez que hayas hecho todo eso con un puñado de herramientas, deberías tener una mejor idea de cómo construir el tuyo.
Aquí hay tres para empezar, en orden creciente de dificultad.
- Cómo aprender el arte de la negociación.
- ¿Cuánto tiempo llevará aprender los conceptos básicos de la mecánica cuántica si tengo un fondo CS?
- ¿Alguna vez ha intentado Chris Langan aprender una nueva habilidad y ha descubierto que es demasiado desalentadora?
- Cómo empezar a aprender marketing digital desde cero.
- Cuando una persona tiene 3 intentos de algo, ¿qué intento tiende a ser el mejor desde un punto de vista psicológico?
- objdump: entre otras cosas, desmonta los binarios.
- GDB: El depurador de proyectos GNU: comprender cómo funciona un depurador será una gran ayuda.
- Wireshark: Esto hace para el tráfico de red lo que hace gdb para la ejecución binaria.
Como primer proyecto de herramienta: ¿puedes combinar gdb y wireshark en una sola herramienta?
¡Buena suerte!