Skip to content

Instantly share code, notes, and snippets.

View minanagehsalalma's full-sized avatar
πŸ’
Meow ?

Mina Nageh Salama minanagehsalalma

πŸ’
Meow ?
View GitHub Profile
@minanagehsalalma
minanagehsalalma / ZTE ZXHN router vulnerabilities.md
Last active September 25, 2026 18:07
ZTE ZXHN router vulnerabilities – CVE-2026-34472, CVE-2026-34473, CVE-2026-34474

ZTE ZXHN router vulnerabilities

Public disclosure date: 2026-03-27
Researcher: Mina Nageh Salama Zekry

This public reference summarizes three CVEs affecting ZTE ZXHN / H-series router web interfaces. It is intended as a clean reference for CVE and NVD records, with the full technical write-ups routed through LinkedIn posts.

Quick links

@minanagehsalalma
minanagehsalalma / milanote-board-to-markdown.user.js
Last active April 13, 2026 13:45
Milanote Board to Markdown β€” right-click context menu + header button to copy board elements as Markdown
// ==UserScript==
// @name Milanote Board to Markdown
// @namespace https://github.com/minanagehsalalma
// @version 1.5.0
// @description Injects "Copy as Markdown" into Milanote's right-click context menu, with element picker and header button fallback
// @author Mina Nageh Salama
// @match https://app.milanote.com/*
// @grant GM_registerMenuCommand
// @grant GM_setClipboard
// ==/UserScript==
@minanagehsalalma
minanagehsalalma / reddit-post-exporter.user.js
Last active May 28, 2026 19:30
Tampermonkey userscript for Reddit β€” enter select mode, click any posts on the feed, then export them as structured JSON (subreddit, author, timestamp, title, body, flair, mod notices, link, upvotes, comments, views). Works on new Reddit (shreddit web components) and old Reddit. Useful for feeding Reddit content to LLMs.
// ==UserScript==
// @name Reddit Post JSON Exporter
// @namespace https://github.com/minanagehsalalma
// @version 1.2.0
// @description Select Reddit posts and export them as clean JSON for LLM ingestion. Now captures rich text, bullets, flairs, and mod notices.
// @author Mina Nageh Salama
// @match https://www.reddit.com/*
// @match https://old.reddit.com/*
// @grant GM_setClipboard
// @run-at document-idle
@minanagehsalalma
minanagehsalalma / ChromeDefaultFix.md
Created March 6, 2026 14:40
Fix Chrome not opening links/files even though it appears in Default Apps

Fix Chrome not opening links/files even though it appears in Default Apps

Symptoms

  • Google Chrome shows in Settings > Apps > Default apps
  • .htm, .html, HTTP, HTTPS may look assigned to Chrome
  • But clicking links does nothing
  • PowerShell shows: Start-Process "http://example.com" -> Application not found
@minanagehsalalma
minanagehsalalma / Export-ChromeExtensions.ps1
Last active March 9, 2026 14:26
Export Chrome extensions inventory (all profiles/channels and even source code) to CSV + JSON β€” PowerShell
<#
.SYNOPSIS
Exports a full inventory of installed Chrome extensions across all profiles to CSV and JSON,
and physically copies the extension source files and user data.
.DESCRIPTION
Scans every Chrome profile on the current machine and collects extension metadata from
manifest.json and the profile's Preferences file: name, version, enabled state, install
time, permissions, manifest version (MV2/MV3), and more.
@minanagehsalalma
minanagehsalalma / reCAPTCHA Enterprise bypass.md
Created February 27, 2026 09:18
How to Force Submit a React Form with reCAPTCHA Enterprise via the Browser Console

How to Force Submit a React Form with reCAPTCHA Enterprise via the Browser Console

A step-by-step guide for submitting a React form when the submit button is disabled or blocked.


Step 1: Enable the Disabled Button (Optional)

If the submit button has a disabled attribute, remove it:

@minanagehsalalma
minanagehsalalma / Gemini pure patchmatch.js
Last active April 13, 2026 13:45
Gemini Stupid watermark remover fixed by Claude.
// ==UserScript==
// @name 🍌 Gemini NanoBanana watermark replacer
// @description Removes Gemini watermark using patch-based texture synthesis.
// Finds the best matching texture patch nearby and blends it in.
// No data leaves your device.
// @namespace https://github.com/minanagehsalalma
// @version 3.0
// @author Mina Nageh Salama
// @match https://gemini.google.com/*
// @grant none
@minanagehsalalma
minanagehsalalma / gemini-fullscreen-canvas-toggle.user.js
Last active May 8, 2026 08:28
Gemini Fullscreen Canvas Toggle - Hide sidebar, header, and chat to focus only on the canvas/artifact with a simple toggle button. Solves the annoying problem of gemini having no fullscreen/pop-out option.
// ==UserScript==
// @name Gemini Chat Toggle - Hide Chat & Fullscreen Canvas
// @namespace https://github.com/minanagehsalalma
// @version 5.2
// @description Toggle button to hide everything except canvas on Google Gemini
// @author Mina Nageh Salama
// @match *://gemini.google.com/*
// @grant none
// @run-at document-end
// ==/UserScript==
@minanagehsalalma
minanagehsalalma / ChattoPDF.js
Last active April 13, 2026 13:45
A tampermonkey script to export a selected ChatGPT message to proper pdf
// ==UserScript==
// @name ChatGPT Message PDF Downloader β€” Arabic/RTL (no @require)
// @namespace https://github.com/minanagehsalalma
// @version 10.0
// @description Export any ChatGPT message to a centered A4 PDF, with full Arabic/RTL support and dark theme. Normal click = selectable text via print; Shift+click = one-click image PDF.
// @author Mina Nageh Salama
// @match https://chatgpt.com/*
// @match https://chat.openai.com/*
// @grant GM_xmlhttpRequest
// @grant GM.xmlHttpRequest
@minanagehsalalma
minanagehsalalma / Extract Dropdown Values.js
Last active March 25, 2026 17:24
a bookmarklet that will extract all values from dropdown menus on a page.
javascript:(function(){
const delay = ms => new Promise(r => setTimeout(r, ms));
// ── Selectors ──────────────────────────────────────────────────────────────
const triggerSelectors = [
'[aria-haspopup="listbox"]','[aria-haspopup="true"]','[aria-expanded]',
'button[class*="select"]','div[class*="select"]',
'[class*="dropdown"] > button','[class*="trigger"]','select',
];
const optionSelectors = [