My journey into technology and hacking

 

From Curiosity to Systems Thinking:


Introduction: How Curiosity Turned into Engineering Thinking

My journey into technology didn’t start with a formal course or a structured roadmap. It started with curiosity — the kind that makes you ask “What happens if I try this?” and “How does this actually work?”

Over time, that curiosity pulled me into programming, game development, operating systems, web development, and eventually deep into cybersecurity concepts. What began as experimenting quickly evolved into understanding systems: how software communicates with hardware, how operating systems manage resources, how networks move data, and how security exists (or fails) at every layer.

This blog breaks down what I built, what I explored, how it works internally, and how someone else can learn the same skills — not by copying tools, but by understanding the foundations.


1. Learning Programming Through Game Development (Python & Pygame)

One of my earliest serious projects was creating a 2D shooter game using Python and the Pygame library, inspired by classic alien-attack or galaxy shooter games.

How a 2D Game Actually Works

At a technical level, a 2D game teaches several core programming concepts at once:

  • Game loop:
    A continuous loop that:

    • Reads user input

    • Updates game logic

    • Renders graphics to the screen

  • State management:
    Tracking player position, enemy positions, bullets, health, and score.

  • Collision detection:
    Understanding how objects interact in a coordinate system.

  • Timing & frame rate control:
    Ensuring the game runs consistently across systems.

Pygame abstracts low-level graphics handling, but you still have to design the logic. That forced me to think like an engineer:

  • What happens when two objects overlap?

  • How do I prevent logic from running twice?

  • How do I structure code so it doesn’t become unmanageable?

How Someone Else Can Learn This

To replicate this learning:

  • Start with basic Python

  • Learn loops, conditionals, functions

  • Move into event-driven programming

  • Use game dev as a sandbox to practice logic, not graphics

Game development is powerful because it forces feedback instantly — if your logic is wrong, the game breaks.


2. Scripting, Automation, and Understanding Systems

Beyond Python, I experimented with scripting languages like VBS, mainly to understand how scripts interact with the operating system.

Why Scripting Matters

Scripting teaches:

  • How processes are started and stopped

  • How systems expose functionality via APIs

  • How automation replaces repetitive tasks

Even simple scripts reveal:

  • How files are accessed

  • How permissions work

  • How the OS interprets instructions

This phase helped me realize something important:

Operating systems are not magic — they are structured systems reacting to instructions.

That mindset becomes crucial later in cybersecurity.


3. Building a Basic Web Browser (Visual Studio)

I also built a very simple custom web browser using Visual Studio.

What This Teaches Under the Hood

Even a basic browser demonstrates:

  • UI design (buttons, text fields, layouts)

  • Navigation logic (back, forward, refresh)

  • URL handling

  • Rendering content using existing engines

Although it had no encryption or advanced security, that was the point — it exposed how much security modern browsers add on top of basic functionality.

Learning Outcome

You stop seeing software as “complex” and start seeing it as:

  • Inputs

  • Logic

  • Outputs

This shift is massive.


4. Operating Systems: Linux as a Learning Environment

I spent a lot of time using Debian, Ubuntu, and Kali Linux.

Why Linux Is a Game-Changer

Linux exposes:

  • File permissions

  • Process management

  • Networking tools

  • Package systems

  • Logs and system internals

Unlike locked-down systems, Linux encourages exploration. You see how:

  • Users differ from root

  • Services start and stop

  • Networks are configured

  • Systems fail — and recover

Kali Linux specifically exposed me to security tooling, but more importantly, it introduced the idea that:

Tools are useless without understanding what they automate.


5. Virtual Machines & Building Isolated Labs

One of the most important skills I developed was building isolated virtual environments.

Why Virtual Labs Matter

Virtual machines allow:

  • Snapshotting systems

  • Isolating experiments

  • Simulating real networks

  • Breaking things safely

I created setups with:

  • A target system

  • An analysis or testing system

  • Completely separated from the host OS

This teaches real-world infrastructure thinking, the same concepts used in enterprise environments.


6. Understanding Post-Exploitation Concepts (High-Level)

I explored frameworks like Metasploit and Meterpreter, not as magic buttons, but as architectural examples.

What Meterpreter Represents

At a conceptual level, Meterpreter demonstrates:

  • Client-server communication

  • In-memory execution concepts

  • Modular command design

  • Abstraction of OS interaction

Understanding this teaches:

  • How remote administration works

  • How attackers think about persistence

  • Why defenders monitor memory, behaviour, and traffic — not just files


7. Browser Security, XSS, and BeEF (Conceptual)

Using tools like BeEF, I explored browser-based attack surfaces.

Key Lessons Learned

  • Browsers are execution environments

  • JavaScript is powerful — and dangerous if misused

  • Modern browsers implement:

    • Sandboxing

    • CSP

    • Permission isolation

Outdated browsers lack many of these protections, which explains historical vulnerabilities.

This area taught me:

Security evolves faster than software — and legacy systems are always the weakest link.


8. Malware Research & Polymorphism (Theory)

I researched:

  • Signature-based detection

  • Behavioural detection

  • Polymorphic code concepts

Why This Matters

Polymorphism isn’t about evasion — it’s about understanding:

  • How AV software identifies threats

  • Why static detection fails

  • Why behaviour-based detection exists

Similarly, studying ransomware behaviour inside VMs taught me:

  • How encryption is used programmatically

  • Why key management matters

  • How recovery tools work conceptually


9. Building My Own Multitool

One of my most personal projects was creating a custom command-line multitool.

Why This Is Important

Instead of using tools, I became the tool builder.

This reinforces:

  • Modular design

  • User input handling

  • OS interaction

  • Clean interfaces

Building tools is where real understanding shows.


10. Web Development & Real Projects

I built multiple websites using:

  • Raw HTML/CSS

  • Templates

  • Blogger

  • Wix

Some are still live, others archived.

What This Teaches

  • Hosting concepts

  • Static vs dynamic content

  • Deployment realities

  • User experience thinking

Even simple websites teach real-world engineering constraints.


Final Reflection: What This Journey Built

This journey didn’t just teach me tools — it taught me how to think in systems.

I learned to:

  • Break problems down

  • Understand cause and effect

  • Respect complexity

  • Learn by building, breaking, and rebuilding

Whether applied to software engineering, cybersecurity, or systems design, the core lesson remains the same:

Understanding beats memorization. Curiosity beats fear. Building beats copying.

Post a Comment

0 Comments