<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Enoch Franco</title>
    <description>The latest articles on DEV Community by Enoch Franco (@enoch_franco_55845279f6a3).</description>
    <link>https://dev.to/enoch_franco_55845279f6a3</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4092623%2Fa651c333-82e1-48c6-ae62-cc23dbb2d70a.png</url>
      <title>DEV Community: Enoch Franco</title>
      <link>https://dev.to/enoch_franco_55845279f6a3</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/enoch_franco_55845279f6a3"/>
    <language>en</language>
    <item>
      <title>Hub, Switch, and Router — Explained Using a Game of Cricket</title>
      <dc:creator>Enoch Franco</dc:creator>
      <pubDate>Mon, 24 Aug 2026 21:13:05 +0000</pubDate>
      <link>https://dev.to/enoch_franco_55845279f6a3/hub-switch-and-router-explained-using-a-game-of-cricket-4nj</link>
      <guid>https://dev.to/enoch_franco_55845279f6a3/hub-switch-and-router-explained-using-a-game-of-cricket-4nj</guid>
      <description>&lt;p&gt;Networking terms can feel like alphabet soup when you're starting out — Hub, Switch, Router, MAC address, IP address, Subnet Mask — thrown at you all at once, usually with zero real-world context. Here's how I finally made sense of it, using something a lot more familiar: cricket.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Cricket Analogy
&lt;/h2&gt;

&lt;p&gt;Imagine a cricket team with three players: a &lt;strong&gt;hub&lt;/strong&gt;, a &lt;strong&gt;switch&lt;/strong&gt;, and a &lt;strong&gt;router&lt;/strong&gt;. All three are part of the same game, but each has a completely different job — one's a batsman, one's a bowler, one's a fielder. Networking devices work the same way: they're all part of one network, but each does something distinct.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hub — The One Who Shouts to Everyone
&lt;/h2&gt;

&lt;p&gt;A hub is the simplest of the three. If only two devices need to talk, you don't even need one — but the moment more than two devices are connected, a hub becomes necessary to relay traffic between them.&lt;/p&gt;

&lt;p&gt;Here's the catch: &lt;strong&gt;a hub has no idea who's talking to whom.&lt;/strong&gt; If Device A wants to send data to Device B, it sends that data to the hub — and since the hub doesn't know which device Device A actually wants to reach, it just &lt;strong&gt;broadcasts the data to every single connected device.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So a hub's "functionality" is really a lack of intelligence — it doesn't figure out who wants to speak with whom; it just floods the message everywhere and lets the devices sort it out.&lt;/p&gt;

&lt;h2&gt;
  
  
  Switch — The One Who Knows Everyone by Name
&lt;/h2&gt;

&lt;p&gt;A switch does the same basic job as a hub — moving data between connected devices — but with one major upgrade: &lt;strong&gt;it actually knows who's who.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Instead of blindly broadcasting to every device, a switch keeps a table of each connected device's &lt;strong&gt;MAC address&lt;/strong&gt;, so it can send data directly to the right recipient.&lt;/p&gt;

&lt;h3&gt;
  
  
  What Is a MAC Address?
&lt;/h3&gt;

&lt;p&gt;Every device that connects to a network — a laptop, phone, router, anything — has a &lt;strong&gt;Network Interface Card (NIC)&lt;/strong&gt;. That NIC comes with a &lt;strong&gt;MAC address&lt;/strong&gt;: a permanent ID burned in by the manufacturer.&lt;/p&gt;

&lt;p&gt;If your laptop has an Ethernet port, the NIC lives right behind it. If you're connecting over Wi-Fi instead, the NIC is built into the Wi-Fi card. Either way, that hardware is what gives your device its MAC address.&lt;/p&gt;

&lt;h2&gt;
  
  
  Router — The One Who Connects Networks Together
&lt;/h2&gt;

&lt;p&gt;While hubs and switches move data &lt;em&gt;within&lt;/em&gt; one network, a &lt;strong&gt;router's job is to connect one network to another.&lt;/strong&gt; The clearest everyday example: your router is what connects your home network to the wider internet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Network Adapter and RJ45
&lt;/h2&gt;

&lt;p&gt;Two more pieces worth knowing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Network Adapter (NIC):&lt;/strong&gt; The hardware inside your device that lets it join a network at all — wired via Ethernet or wireless via Wi-Fi. Think of it as the bridge between your device and the network. Every NIC carries its own unique MAC address.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RJ45:&lt;/strong&gt; The physical connector at the end of an Ethernet cable (the connector itself, not the cable) — used to plug into ports on NICs, switches, and routers.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  IP Address and Its Components
&lt;/h2&gt;

&lt;p&gt;An &lt;strong&gt;IP address&lt;/strong&gt; is a numerical label assigned to every device on a network. An IPv4 address looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;192.168.1.50
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every IP address is made up of two parts:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Part&lt;/th&gt;
&lt;th&gt;What it identifies&lt;/th&gt;
&lt;th&gt;Analogy&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Network ID&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;The network segment the device belongs to&lt;/td&gt;
&lt;td&gt;The street name&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Host ID&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;The specific device within that network&lt;/td&gt;
&lt;td&gt;The house number&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;For example, given &lt;code&gt;192.168.1.50&lt;/code&gt; with subnet mask &lt;code&gt;255.255.255.0&lt;/code&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Network ID:&lt;/strong&gt; &lt;code&gt;192.168.1.0&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Host ID:&lt;/strong&gt; &lt;code&gt;50&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The Role of the Subnet Mask
&lt;/h3&gt;

&lt;p&gt;The &lt;strong&gt;subnet mask&lt;/strong&gt; is what actually splits an IP address into its Network ID and Host ID. With &lt;code&gt;255.255.255.0&lt;/code&gt;, the first three numbers (&lt;code&gt;192.168.1&lt;/code&gt;) mark the network, and the last number (&lt;code&gt;50&lt;/code&gt;) marks the specific host — the device — within it.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;(Worth flagging: this clean "three numbers for network, one for host" split only happens with a &lt;code&gt;/24&lt;/code&gt; mask like this one. Other subnet masks can split the address at different points — sometimes within a single number rather than neatly along the dots — but that's a topic for a future post.)&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  IP Address vs. MAC Address — The Pen Name Analogy
&lt;/h2&gt;

&lt;p&gt;This is the comparison that made it click for me:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An &lt;strong&gt;IP address&lt;/strong&gt; is like a pen name — it identifies a device, but it &lt;em&gt;can change&lt;/em&gt; over time, just like an author might use different pen names.&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;MAC address&lt;/strong&gt; is like the author's real name — it's assigned permanently to the hardware by the manufacturer and doesn't change under normal use. (One exception worth knowing: MAC addresses can technically be overridden at the software level — a technique called &lt;em&gt;MAC spoofing&lt;/em&gt; — but the original, hardware-burned address itself never changes.)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;An IP address itself splits into the same two pieces mentioned above:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Network ID&lt;/strong&gt; — shared by every device on the same network, showing they all belong to one group.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Host ID&lt;/strong&gt; — unique to each individual device, identifying exactly which one is communicating.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Hub:&lt;/strong&gt; dumb but simple — broadcasts to everyone, every time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Switch:&lt;/strong&gt; smart — knows each device's MAC address and sends data only where it needs to go.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Router:&lt;/strong&gt; connects separate networks together, most commonly your home network to the internet.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MAC address:&lt;/strong&gt; permanent, hardware-based identity assigned by the manufacturer — technically spoofable in software, but the original hardware address itself never changes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;IP address:&lt;/strong&gt; logical, assignable identity — can change, and is split into a Network ID and Host ID via the subnet mask.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Understanding these basics is the foundation for pretty much everything else in networking — VLANs, routing tables, subnetting — so if this is where you're starting too, you're in the right place.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Tags: #networking #beginners #tutorial #ccna&lt;/em&gt;&lt;/p&gt;

</description>
      <category>networking</category>
      <category>beginners</category>
      <category>tutorial</category>
      <category>ccna</category>
    </item>
    <item>
      <title>How I Found My First CTF Flag Hidden in an Image's Metadata</title>
      <dc:creator>Enoch Franco</dc:creator>
      <pubDate>Mon, 24 Aug 2026 20:28:58 +0000</pubDate>
      <link>https://dev.to/enoch_franco_55845279f6a3/how-i-found-my-first-ctf-flag-hidden-in-an-images-metadata-36ha</link>
      <guid>https://dev.to/enoch_franco_55845279f6a3/how-i-found-my-first-ctf-flag-hidden-in-an-images-metadata-36ha</guid>
      <description>&lt;h2&gt;
  
  
  Why I Tried This
&lt;/h2&gt;

&lt;p&gt;I've been working through picoCTF's &lt;strong&gt;Forensics module&lt;/strong&gt; lately, and &lt;strong&gt;"information"&lt;/strong&gt; was the very first challenge in it — a beginner-level puzzle meant to ease you into digital forensics. The prompt was simple but a little cryptic:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Files can always be changed in a secret way. Can you find the flag?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Along with the prompt was a single file: &lt;code&gt;cat.jpg&lt;/code&gt;. That's it. No obvious clues in the image itself — just a photo of a cat sitting on a laptop. So the challenge was clearly not about &lt;em&gt;looking&lt;/em&gt; at the image, but about &lt;em&gt;looking inside&lt;/em&gt; it.&lt;/p&gt;

&lt;p&gt;This post walks through exactly how I solved it, the mistakes I hit along the way, and why each step actually works — not just what to type.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setting Up ExifTool on Windows
&lt;/h2&gt;

&lt;p&gt;Since every photo carries hidden metadata (camera info, timestamps, sometimes a lot more), my first move was to inspect the file's metadata using &lt;strong&gt;ExifTool&lt;/strong&gt;, a free command-line tool for reading and editing this kind of data.&lt;/p&gt;

&lt;p&gt;Here's how I set it up on Windows:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Downloaded the Windows build from &lt;a href="https://exiftool.org" rel="noopener noreferrer"&gt;exiftool.org&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;The extracted executable was named &lt;code&gt;exiftool(-k).exe&lt;/code&gt; — not &lt;code&gt;exiftool.exe&lt;/code&gt;. I renamed it, which meant first turning on &lt;strong&gt;file name extensions&lt;/strong&gt; in File Explorer (View tab → check "File name extensions"), since Windows hides them by default and that was silently blocking my rename attempts.&lt;/li&gt;
&lt;li&gt;Moved &lt;code&gt;exiftool.exe&lt;/code&gt; into the same folder as &lt;code&gt;cat.jpg&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Opened PowerShell in that folder (Shift + right-click → "Open PowerShell window here").&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Hitting My First Snag
&lt;/h2&gt;

&lt;p&gt;Naturally, I typed the obvious command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;exiftool cat.jpg
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And got hit with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;exiftool : The term 'exiftool' is not recognized as the name of a cmdlet, function, script file, or operable program.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Confusing, since the file was &lt;em&gt;right there&lt;/em&gt; in the folder. Turns out: &lt;strong&gt;PowerShell doesn't search your current folder for programs by default&lt;/strong&gt; — it only checks a trusted list of folders called the &lt;code&gt;PATH&lt;/code&gt;. Windows does this deliberately, as a security measure. If it auto-ran anything sitting in your current directory, it'd be trivially easy for malware to drop a fake file named &lt;code&gt;dir.exe&lt;/code&gt; in a folder you're likely to open and trick you into running it.&lt;/p&gt;

&lt;p&gt;The fix is to explicitly tell PowerShell "run this file from right here":&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;\exiftool.exe&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;cat.jpg&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;.\&lt;/code&gt; prefix bypasses the &lt;code&gt;PATH&lt;/code&gt; search and points directly at the file. That worked immediately.&lt;/p&gt;

&lt;h2&gt;
  
  
  Spotting the Flag in the Metadata
&lt;/h2&gt;

&lt;p&gt;Running ExifTool dumped a long list of metadata fields — most of it completely mundane: file size, image dimensions, bits per sample, resolution. Normal stuff every JPEG has.&lt;/p&gt;

&lt;p&gt;But a few fields stood out as &lt;strong&gt;unusual for a random photo of a cat&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight properties"&gt;&lt;code&gt;&lt;span class="err"&gt;Copyright&lt;/span&gt; &lt;span class="py"&gt;Notice&lt;/span&gt;   &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;PicoCTF&lt;/span&gt;
&lt;span class="py"&gt;Rights&lt;/span&gt;             &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;PicoCTF&lt;/span&gt;
&lt;span class="py"&gt;License&lt;/span&gt;            &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;cGljb0NURnt0aGVbfbTN0YWRhdGFfMXNfbW9kaWZ...&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A cat photo has no legitimate reason to carry a "License" field — that's a strong sign someone planted something there on purpose. And the value wasn't normal text; it was a long, uniform jumble of letters and numbers with no spaces. That specific shape is the classic fingerprint of &lt;strong&gt;Base64 encoding&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Quick Note on Base64
&lt;/h2&gt;

&lt;p&gt;Base64 isn't encryption — it's just a way of representing data using a safe set of 64 characters (A–Z, a–z, 0–9, &lt;code&gt;+&lt;/code&gt;, &lt;code&gt;/&lt;/code&gt;). It doesn't hide meaning or require a key; it just reformats data so it survives being passed through systems that can't handle raw binary safely (old email protocols, metadata fields, URLs, etc.). Anyone can decode it instantly.&lt;/p&gt;

&lt;p&gt;It shows up constantly in beginner forensics CTFs as a light layer of obfuscation — enough that you can't just grep the file for &lt;code&gt;picoCTF{&lt;/code&gt; in plain text, but easy to reverse once you recognize the pattern:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Random-looking letters and numbers, often padded with &lt;code&gt;=&lt;/code&gt; or &lt;code&gt;==&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Length is always a multiple of 4&lt;/li&gt;
&lt;li&gt;No spaces or unusual symbols&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Decoding the Flag
&lt;/h2&gt;

&lt;p&gt;Since I was already in PowerShell, I decoded the string directly with .NET's built-in Base64 decoder — no extra tools needed:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;System.Text.Encoding&lt;/span&gt;&lt;span class="p"&gt;]::&lt;/span&gt;&lt;span class="n"&gt;UTF8.GetString&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="n"&gt;System.Convert&lt;/span&gt;&lt;span class="p"&gt;]::&lt;/span&gt;&lt;span class="n"&gt;FromBase64String&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'PASTE_FULL_LICENSE_STRING_HERE'&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That printed the flag in plain text, in the format &lt;code&gt;picoCTF{...}&lt;/code&gt; — ready to submit.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Metadata is a real attack surface.&lt;/strong&gt; Files carry more information than what you see on screen — EXIF data is a good first place to check in any forensics challenge.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Anything that looks "out of place" in metadata is worth investigating.&lt;/strong&gt; A License or Copyright field on a personal photo doesn't belong there naturally.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recognize Base64 by shape, not by guessing.&lt;/strong&gt; Random-looking text with no spaces, uniform character set, length divisible by 4 — that's your cue to decode.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Understand &lt;em&gt;why&lt;/em&gt; a command works, not just that it works.&lt;/strong&gt; The PowerShell &lt;code&gt;PATH&lt;/code&gt; issue is a perfect example — knowing why &lt;code&gt;.\&lt;/code&gt; was needed means I won't get stuck on it again.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;p&gt;I'm planning to keep working through picoCTF's forensics and general skills categories and documenting each solve here. If you're also starting out with CTFs, I'd love to hear what tripped you up first — metadata challenges, encoding puzzles, or something else entirely.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Tags: #ctf #cybersecurity #forensics #beginners #picoCTF&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ctf</category>
      <category>cybersecurity</category>
      <category>forensics</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
