Latest commit

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

USB Blocker

Inspiration

A secure way to defend against rubber duckies, Bash bunnies and other similar HID emulators.

Features

The service automatically blocks the computer (launching the savescreen) at unauthorized USB introduction. The following features have been implemented:

  • Training mode: The service can train its whitelist by introducing USB devices while in training mode. One the training mode has ended, the service will block any USB which signature is not in the whitelist.
  • Maximun consecutive lockouts : The service has a maximun number of consecutive lockouts (by default is 3), so if the service feels buggy or issues any other problem, the service will not block the system the 4th time the user unlocks the computer.

Compilation

To compile the project, just open USBBlocker.sln with Visual Studio. Before doing this, some configurations can be done in the source code to personalize the service:

  • It is possible to add your devicesID to Recognised_devices array under Service1.cs file. DeviceIDs have this format USB\VID_17EF&PID_608C&MI_00\7&8AE0656&0&0000.
  • Set your maximun consecutive lockouts threshold
  • Change the Path where the config file is stored (by default is C:\ProgramData\USBSignatures.txt)

Use

Signature file

By default the following config file is created C:\ProgramData\USBSignatures.txt which contains:

  • Train_mode={True/False} : points out whenever the service is under Training mode. Under training mode, new devices are added into this file (This file also acts as a whitelist). If Train_mode is set to False then the program will start matching new devices with this list. Those who does not appear here will lockout the computer.
  • Number_blocks : How many times the system have been blocked consecutively. The service have a maximun of 3 blocks in order to defend against buggy file corruption or whatever. After that, the service will ignore the signatures and will not block. (If this is the case, you can reset manually the variable to 0 to start matching the whitelist again).
  • One DeviceID per line which will not lockout the system.

Installation

Once compiled the solution, to install the service execute the following command. C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe <Path to compiled exe> (to uninstall just add the -u flag) Then just start the service manually net start USBBlock To set it to start automatically on startup, open the 'Services' application and set it to launch as automatic. This is strongly recommended to do it only when you have fully tested the service works in your environment and not auto-lockout your computer.

About

C# Service that blocks the computer at unauthorized USB introduction

Topics

Resources

Stars

25 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

USB Blocker

Inspiration

A secure way to defend against rubber duckies, Bash bunnies and other similar HID emulators.

Features

The service automatically blocks the computer (launching the savescreen) at unauthorized USB introduction. The following features have been implemented:

  • Training mode: The service can train its whitelist by introducing USB devices while in training mode. One the training mode has ended, the service will block any USB which signature is not in the whitelist.
  • Maximun consecutive lockouts : The service has a maximun number of consecutive lockouts (by default is 3), so if the service feels buggy or issues any other problem, the service will not block the system the 4th time the user unlocks the computer.

Compilation

To compile the project, just open USBBlocker.sln with Visual Studio. Before doing this, some configurations can be done in the source code to personalize the service:

  • It is possible to add your devicesID to Recognised_devices array under Service1.cs file. DeviceIDs have this format USB\VID_17EF&PID_608C&MI_00\7&8AE0656&0&0000.
  • Set your maximun consecutive lockouts threshold
  • Change the Path where the config file is stored (by default is C:\ProgramData\USBSignatures.txt)

Use

Signature file

By default the following config file is created C:\ProgramData\USBSignatures.txt which contains:

  • Train_mode={True/False} : points out whenever the service is under Training mode. Under training mode, new devices are added into this file (This file also acts as a whitelist). If Train_mode is set to False then the program will start matching new devices with this list. Those who does not appear here will lockout the computer.
  • Number_blocks : How many times the system have been blocked consecutively. The service have a maximun of 3 blocks in order to defend against buggy file corruption or whatever. After that, the service will ignore the signatures and will not block. (If this is the case, you can reset manually the variable to 0 to start matching the whitelist again).
  • One DeviceID per line which will not lockout the system.

Installation

Once compiled the solution, to install the service execute the following command. C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe <Path to compiled exe> (to uninstall just add the -u flag) Then just start the service manually net start USBBlock To set it to start automatically on startup, open the 'Services' application and set it to launch as automatic. This is strongly recommended to do it only when you have fully tested the service works in your environment and not auto-lockout your computer.

About

C# Service that blocks the computer at unauthorized USB introduction

Topics

Resources

Stars

25 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

USB Blocker

Inspiration

A secure way to defend against rubber duckies, Bash bunnies and other similar HID emulators.

Features

The service automatically blocks the computer (launching the savescreen) at unauthorized USB introduction. The following features have been implemented:

  • Training mode: The service can train its whitelist by introducing USB devices while in training mode. One the training mode has ended, the service will block any USB which signature is not in the whitelist.
  • Maximun consecutive lockouts : The service has a maximun number of consecutive lockouts (by default is 3), so if the service feels buggy or issues any other problem, the service will not block the system the 4th time the user unlocks the computer.

Compilation

To compile the project, just open USBBlocker.sln with Visual Studio. Before doing this, some configurations can be done in the source code to personalize the service:

  • It is possible to add your devicesID to Recognised_devices array under Service1.cs file. DeviceIDs have this format USB\VID_17EF&PID_608C&MI_00\7&8AE0656&0&0000.
  • Set your maximun consecutive lockouts threshold
  • Change the Path where the config file is stored (by default is C:\ProgramData\USBSignatures.txt)

Use

Signature file

By default the following config file is created C:\ProgramData\USBSignatures.txt which contains:

  • Train_mode={True/False} : points out whenever the service is under Training mode. Under training mode, new devices are added into this file (This file also acts as a whitelist). If Train_mode is set to False then the program will start matching new devices with this list. Those who does not appear here will lockout the computer.
  • Number_blocks : How many times the system have been blocked consecutively. The service have a maximun of 3 blocks in order to defend against buggy file corruption or whatever. After that, the service will ignore the signatures and will not block. (If this is the case, you can reset manually the variable to 0 to start matching the whitelist again).
  • One DeviceID per line which will not lockout the system.

Installation

Once compiled the solution, to install the service execute the following command. C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe <Path to compiled exe> (to uninstall just add the -u flag) Then just start the service manually net start USBBlock To set it to start automatically on startup, open the 'Services' application and set it to launch as automatic. This is strongly recommended to do it only when you have fully tested the service works in your environment and not auto-lockout your computer.

About

C# Service that blocks the computer at unauthorized USB introduction

Topics

Resources

Stars

25 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

USB Blocker

Inspiration

A secure way to defend against rubber duckies, Bash bunnies and other similar HID emulators.

Features

The service automatically blocks the computer (launching the savescreen) at unauthorized USB introduction. The following features have been implemented:

  • Training mode: The service can train its whitelist by introducing USB devices while in training mode. One the training mode has ended, the service will block any USB which signature is not in the whitelist.
  • Maximun consecutive lockouts : The service has a maximun number of consecutive lockouts (by default is 3), so if the service feels buggy or issues any other problem, the service will not block the system the 4th time the user unlocks the computer.

Compilation

To compile the project, just open USBBlocker.sln with Visual Studio. Before doing this, some configurations can be done in the source code to personalize the service:

  • It is possible to add your devicesID to Recognised_devices array under Service1.cs file. DeviceIDs have this format USB\VID_17EF&PID_608C&MI_00\7&8AE0656&0&0000.
  • Set your maximun consecutive lockouts threshold
  • Change the Path where the config file is stored (by default is C:\ProgramData\USBSignatures.txt)

Use

Signature file

By default the following config file is created C:\ProgramData\USBSignatures.txt which contains:

  • Train_mode={True/False} : points out whenever the service is under Training mode. Under training mode, new devices are added into this file (This file also acts as a whitelist). If Train_mode is set to False then the program will start matching new devices with this list. Those who does not appear here will lockout the computer.
  • Number_blocks : How many times the system have been blocked consecutively. The service have a maximun of 3 blocks in order to defend against buggy file corruption or whatever. After that, the service will ignore the signatures and will not block. (If this is the case, you can reset manually the variable to 0 to start matching the whitelist again).
  • One DeviceID per line which will not lockout the system.

Installation

Once compiled the solution, to install the service execute the following command. C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe <Path to compiled exe> (to uninstall just add the -u flag) Then just start the service manually net start USBBlock To set it to start automatically on startup, open the 'Services' application and set it to launch as automatic. This is strongly recommended to do it only when you have fully tested the service works in your environment and not auto-lockout your computer.

About

C# Service that blocks the computer at unauthorized USB introduction

Topics

Resources

Stars

25 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

USB Blocker

Inspiration

A secure way to defend against rubber duckies, Bash bunnies and other similar HID emulators.

Features

The service automatically blocks the computer (launching the savescreen) at unauthorized USB introduction. The following features have been implemented:

  • Training mode: The service can train its whitelist by introducing USB devices while in training mode. One the training mode has ended, the service will block any USB which signature is not in the whitelist.
  • Maximun consecutive lockouts : The service has a maximun number of consecutive lockouts (by default is 3), so if the service feels buggy or issues any other problem, the service will not block the system the 4th time the user unlocks the computer.

Compilation

To compile the project, just open USBBlocker.sln with Visual Studio. Before doing this, some configurations can be done in the source code to personalize the service:

  • It is possible to add your devicesID to Recognised_devices array under Service1.cs file. DeviceIDs have this format USB\VID_17EF&PID_608C&MI_00\7&8AE0656&0&0000.
  • Set your maximun consecutive lockouts threshold
  • Change the Path where the config file is stored (by default is C:\ProgramData\USBSignatures.txt)

Use

Signature file

By default the following config file is created C:\ProgramData\USBSignatures.txt which contains:

  • Train_mode={True/False} : points out whenever the service is under Training mode. Under training mode, new devices are added into this file (This file also acts as a whitelist). If Train_mode is set to False then the program will start matching new devices with this list. Those who does not appear here will lockout the computer.
  • Number_blocks : How many times the system have been blocked consecutively. The service have a maximun of 3 blocks in order to defend against buggy file corruption or whatever. After that, the service will ignore the signatures and will not block. (If this is the case, you can reset manually the variable to 0 to start matching the whitelist again).
  • One DeviceID per line which will not lockout the system.

Installation

Once compiled the solution, to install the service execute the following command. C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe <Path to compiled exe> (to uninstall just add the -u flag) Then just start the service manually net start USBBlock To set it to start automatically on startup, open the 'Services' application and set it to launch as automatic. This is strongly recommended to do it only when you have fully tested the service works in your environment and not auto-lockout your computer.

About

C# Service that blocks the computer at unauthorized USB introduction

Topics

Resources

Stars

25 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

USB Blocker

Inspiration

A secure way to defend against rubber duckies, Bash bunnies and other similar HID emulators.

Features

The service automatically blocks the computer (launching the savescreen) at unauthorized USB introduction. The following features have been implemented:

  • Training mode: The service can train its whitelist by introducing USB devices while in training mode. One the training mode has ended, the service will block any USB which signature is not in the whitelist.
  • Maximun consecutive lockouts : The service has a maximun number of consecutive lockouts (by default is 3), so if the service feels buggy or issues any other problem, the service will not block the system the 4th time the user unlocks the computer.

Compilation

To compile the project, just open USBBlocker.sln with Visual Studio. Before doing this, some configurations can be done in the source code to personalize the service:

  • It is possible to add your devicesID to Recognised_devices array under Service1.cs file. DeviceIDs have this format USB\VID_17EF&PID_608C&MI_00\7&8AE0656&0&0000.
  • Set your maximun consecutive lockouts threshold
  • Change the Path where the config file is stored (by default is C:\ProgramData\USBSignatures.txt)

Use

Signature file

By default the following config file is created C:\ProgramData\USBSignatures.txt which contains:

  • Train_mode={True/False} : points out whenever the service is under Training mode. Under training mode, new devices are added into this file (This file also acts as a whitelist). If Train_mode is set to False then the program will start matching new devices with this list. Those who does not appear here will lockout the computer.
  • Number_blocks : How many times the system have been blocked consecutively. The service have a maximun of 3 blocks in order to defend against buggy file corruption or whatever. After that, the service will ignore the signatures and will not block. (If this is the case, you can reset manually the variable to 0 to start matching the whitelist again).
  • One DeviceID per line which will not lockout the system.

Installation

Once compiled the solution, to install the service execute the following command. C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe <Path to compiled exe> (to uninstall just add the -u flag) Then just start the service manually net start USBBlock To set it to start automatically on startup, open the 'Services' application and set it to launch as automatic. This is strongly recommended to do it only when you have fully tested the service works in your environment and not auto-lockout your computer.

About

C# Service that blocks the computer at unauthorized USB introduction

Topics

Resources

Stars

25 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

USB Blocker

Inspiration

A secure way to defend against rubber duckies, Bash bunnies and other similar HID emulators.

Features

The service automatically blocks the computer (launching the savescreen) at unauthorized USB introduction. The following features have been implemented:

  • Training mode: The service can train its whitelist by introducing USB devices while in training mode. One the training mode has ended, the service will block any USB which signature is not in the whitelist.
  • Maximun consecutive lockouts : The service has a maximun number of consecutive lockouts (by default is 3), so if the service feels buggy or issues any other problem, the service will not block the system the 4th time the user unlocks the computer.

Compilation

To compile the project, just open USBBlocker.sln with Visual Studio. Before doing this, some configurations can be done in the source code to personalize the service:

  • It is possible to add your devicesID to Recognised_devices array under Service1.cs file. DeviceIDs have this format USB\VID_17EF&PID_608C&MI_00\7&8AE0656&0&0000.
  • Set your maximun consecutive lockouts threshold
  • Change the Path where the config file is stored (by default is C:\ProgramData\USBSignatures.txt)

Use

Signature file

By default the following config file is created C:\ProgramData\USBSignatures.txt which contains:

  • Train_mode={True/False} : points out whenever the service is under Training mode. Under training mode, new devices are added into this file (This file also acts as a whitelist). If Train_mode is set to False then the program will start matching new devices with this list. Those who does not appear here will lockout the computer.
  • Number_blocks : How many times the system have been blocked consecutively. The service have a maximun of 3 blocks in order to defend against buggy file corruption or whatever. After that, the service will ignore the signatures and will not block. (If this is the case, you can reset manually the variable to 0 to start matching the whitelist again).
  • One DeviceID per line which will not lockout the system.

Installation

Once compiled the solution, to install the service execute the following command. C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe <Path to compiled exe> (to uninstall just add the -u flag) Then just start the service manually net start USBBlock To set it to start automatically on startup, open the 'Services' application and set it to launch as automatic. This is strongly recommended to do it only when you have fully tested the service works in your environment and not auto-lockout your computer.

About

C# Service that blocks the computer at unauthorized USB introduction

Topics

Resources

Stars

25 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

USB Blocker

Inspiration

A secure way to defend against rubber duckies, Bash bunnies and other similar HID emulators.

Features

The service automatically blocks the computer (launching the savescreen) at unauthorized USB introduction. The following features have been implemented:

  • Training mode: The service can train its whitelist by introducing USB devices while in training mode. One the training mode has ended, the service will block any USB which signature is not in the whitelist.
  • Maximun consecutive lockouts : The service has a maximun number of consecutive lockouts (by default is 3), so if the service feels buggy or issues any other problem, the service will not block the system the 4th time the user unlocks the computer.

Compilation

To compile the project, just open USBBlocker.sln with Visual Studio. Before doing this, some configurations can be done in the source code to personalize the service:

  • It is possible to add your devicesID to Recognised_devices array under Service1.cs file. DeviceIDs have this format USB\VID_17EF&PID_608C&MI_00\7&8AE0656&0&0000.
  • Set your maximun consecutive lockouts threshold
  • Change the Path where the config file is stored (by default is C:\ProgramData\USBSignatures.txt)

Use

Signature file

By default the following config file is created C:\ProgramData\USBSignatures.txt which contains:

  • Train_mode={True/False} : points out whenever the service is under Training mode. Under training mode, new devices are added into this file (This file also acts as a whitelist). If Train_mode is set to False then the program will start matching new devices with this list. Those who does not appear here will lockout the computer.
  • Number_blocks : How many times the system have been blocked consecutively. The service have a maximun of 3 blocks in order to defend against buggy file corruption or whatever. After that, the service will ignore the signatures and will not block. (If this is the case, you can reset manually the variable to 0 to start matching the whitelist again).
  • One DeviceID per line which will not lockout the system.

Installation

Once compiled the solution, to install the service execute the following command. C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe <Path to compiled exe> (to uninstall just add the -u flag) Then just start the service manually net start USBBlock To set it to start automatically on startup, open the 'Services' application and set it to launch as automatic. This is strongly recommended to do it only when you have fully tested the service works in your environment and not auto-lockout your computer.

About

C# Service that blocks the computer at unauthorized USB introduction

Topics

Resources

Stars

25 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages