Skip to content
This repository was archived by the owner on Nov 24, 2018. It is now read-only.

Changes for new Update #45

Closed
wants to merge 8 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 12 additions & 3 deletions src/main/java/examples/ConsoleExample.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,21 @@ public static void main(String[] args) {
vHackAPI api = new vHackAPIBuilder().password("pass").username("user").getAPI();
//Get an IP trougth console
String ip = api.getConsole().getIP(false, false);
//Scan the IP
ScannedNode scanned = api.getConsole().scanIP(ip);
//Request the Passwords
//As result you will get 4 images in base64 format. Which you have to compare with the secret string
api.getConsole().requestPassword(ip);
//Enter the correct number (In this example number 2)
api.getConsole().enterPassword("2");
//Scan the User (You dont have to enter the ip)
ScannedNode scanned = api.getConsole().scanUser();
//Get The Money using the IP


if(scanned.getSuccessRate() >= 70) {
//if the success rate is bigger or equals 70 then transfer trojan
TransferResult transfer = api.getConsole().transferTrojanTo(scanned);
TransferResult transfer = api.getConsole().transferMoney(ip);
//Clear the Log
api.getConsole().clearLog(ip);
if(transfer.getSuccess()){
// if transfer is successfull
System.out.println("Got $" + transfer.getMoneyAmount());
Expand Down
120 changes: 77 additions & 43 deletions src/main/java/me/checkium/vhackapi/console/Console.java
Original file line number Diff line number Diff line change
Expand Up @@ -73,57 +73,91 @@ public ArrayList<String> getIPs(int number, boolean attacked, boolean global) th
return result;
}

public ScannedNode scanIP(String ip) {
public ScannedNode scanUser() {
ScannedNode result = null;

System.out.println("Scanning [" + ip + "]");

/*try {
TimeUnit.MILLISECONDS.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}

//IDK Why it's here.... it makes the scan slower
String resultString = Utils.StringRequest("user::::pass::::target", username + "::::" + password + "::::" + ip, "vh_scan.php");
String[] tempParsedResultString = parseScanResult(Utils.StringRequest("user::::pass::::target", username + "::::" + password + "::::" + ip, "vh_scan.php")); */
result = new ScannedNode(parseScanResult(Utils.StringRequest("user::::pass::::target", username + "::::" + password + "::::" + ip, "vh_scan.php")));
result.setIP(ip);

String temp = Utils.StringRequest("user::::pass::::", username + "::::" + password + "::::", "vh_loadRemoteData.php");
if (temp.length() > 5)
result = new ScannedNode(parseScanResult(temp));
//Output: {"fw":1,"av":1,"spam":1,"sdk":1,"ipsp":1,"money":154396,"savings":"0","anonymous":"YES","username":"Captain_Snacky","winelo":19,"winchance":90,"spyware":"1","ipaddress":"242.126.137.253"}
return result;
}

public ArrayList<ScannedNode> scanIPs(List<String> ips) {
ArrayList<ScannedNode> array = new ArrayList<>();

ips.forEach(ip -> array.add(scanIP(ip)));

return array;
public PasswordImages requestPassword(String ip) {
String result = Utils.StringRequest("user::::pass::::target", username + "::::" + password + "::::" + ip, "vh_vulnScan.php");

/*
Example Output:
{"img_0":"iVBORw0KGgoAAAANSUhEUgAAAG0AAAAoCAYAAAD0bXSJAAABaElEQVR4nO2YWxKDIAxFodONyP7XpEuxX8wwTAIBou2193xZHwQ5GELjGQgar293gIxDaYBQGiCUBgilAUJpgFAaIJQGCKUBQmmAUBoglAYIpQFCaYC8LTcd+36GEMKWUrScX8ESKx9L5OdG2um9lxZPeu\/emNRtzYydSdqv4jlZNFpij30\/y\/OtySS1JbVhwZQepRl3xVeGFGtLKa4I0+JbMH9pOZ2UAaROW1JoL0X0YnniFWtWwAxDhYg0S0YpJbZe1BIrD3Y96Np92vVWrDqVWeJdjduaVs5YrRjQUsRsbr9jTdPizPbZgyFpde5f\/druiPVEzNIslY91fegJ8KqyyrbqY2RMa5pX5aM9U4r2rLLK51eygodsz6rYfZ\/W2rSW1z02mb0Cpv7d25hLaP2t25YmohZ\/tVKNj8gXfwb\/ewSE0gChNEAoDRBKA4TSAKE0QCgNEEoDhNIAoTRAKA0QSgOE0gD5ACuzfgg4aLQjAAAAAElFTkSuQmCC","img_1":"iVBORw0KGgoAAAANSUhEUgAAAG0AAAAoCAYAAAD0bXSJAAABTklEQVR4nO2ZURKCMAxExeEicv8zlaPgFzM1E2iWQuvCvj8kQ0NfIkGH5SXYePdOQOBIGiGSRoikESJphEgaIZJGiKQRImmESBohkkaIpBEiaYRIGiEjEjyn9PNPzmeahlJMKc47F43J14rElGJrieTj5YTmE+60fAPXReziNqYU551DYpCbtTldQfTatXmEpHkVb4VsdYU9PiLfi3kyTZ5pduNR+VeJm1Na8nXz41JMzyIKSfM27U6VP6e0bHW1V3C9uz\/caXmi601el1Zbol1t43rtATQ9tkzyTp18NvD0eAT7nPK+Zr0BpsXE15KzChEaRPY2OzLe27jIu1oLIkV09lo16wyI+hYv18jntfnk19x7MY5uMJrP0cKApN2Nf+l0FP32SMijO40VdRohkkaIpBEiaYRIGiGSRoikESJphEgaIZJGiKQRImmEfAHb4zLEq0mqFAAAAABJRU5ErkJggg==","img_2":"iVBORw0KGgoAAAANSUhEUgAAAG0AAAAoCAYAAAD0bXSJAAABWklEQVR4nO2aQQ7DIAwEoepHwv\/fRJ5CT0gWAgcMqFm0I\/VCAxiGYB\/ikyNofP4dABmH0gChNEAoDRBKA4TSAKE0QCgNEEoDhNIAoTRAKA0QSgOE0gD5WjrdMSbnnLtC8GvDsc2Vn6mR+7XGke0j6yrnbPXZsVdHvWlXCF7+nNOFWjdU9tPmkW1aHKMcJW2EFcJyW01cr1gLputRIgORC+m5jlpjPPWt\/WeJedf13hJ7x5juGNPsvFPSZADWgMoFtk5jz1y1vj2HBo2p6\/HpisjkTa61t8axziWfQRajcVRO68kfq\/OLRj6srUNr5ShpmbeIq1WzK9guTSt7taqrZxxtI3aJe6oUR8aysk1amYNaeau3kJHVVznGbIyluPJa0w7bPwob\/8aPVU+o8HZyZE47nVe+aUSHbxoglAYIpQFCaYBQGiCUBgilAUJpgFAaIJQGCKUBQmmA\/AACDi4u8Rb+QgAAAABJRU5ErkJggg==","img_3":"iVBORw0KGgoAAAANSUhEUgAAAG0AAAAoCAYAAAD0bXSJAAABgUlEQVR4nO2ZUQ7CIBBEwXiRcv8z1aPoFwmpsMxSWhkzL\/FDu5JdBnZoG99BsPH4dQLCj0QjRKIRItEIkWiESDRCJBohEo0QiUaIRCNEohEi0QiRaIRINEKev06gxmvfv94YbSlFT0ztemssby7WOMd4JCdPPiGEEFd7n5YLqxWbf0Ni0LFH8kHGsq6P5FGyXHvcUorHYmpi9WL+Gag9elYb0h5mrtoZY5Q5bynFszvhaqZ6Wq2Nvfb9PVr8cTLPxiCtqrVTEZ+9i2ntsTYxLQ8qJ8Ca0LINWiZuxXi9BRGi1p7vZLqn5d2VPzPGRPzKuyBGcljFN6cf+XsTlD0DaWtnuMqXyvyPfn3X7oN2mrWKrZj83bMya\/Etr7RiEJC60P+V368+yLju05BTFmrY6GmuNcbMm2urrtGTM1pXK9YCEq219Vc\/Go+yel2Qp5UrrnZtbkqix3KPsUSf5R5jiT4SjRCJRohEI0SiESLRCJFohEg0QiQaIRKNEIlGiEQj5ANfcHAufpnI1gAAAABJRU5ErkJggg==","secret":"*e*3**q***"}
*/

return new PasswordImages(result);
}

public boolean enterPassword(String passwd) {
String result = Utils.StringRequest("user::::pass::::decision", username + "::::" + password + "::::" + passwd, "vh_createConnection.php");

/*
Result:
15 = Wrong Password
14 = Already tried
0 = Right Password
*/
/*
if (result == "0")
return true;
else
return false;*/
return "0".equals(result);
}

public TransferResult transferTrojanTo(ScannedNode node) throws JSONException {
System.out.println("Transfering trojan [" + node.getIP() + "]");
/*try {
TimeUnit.MILLISECONDS.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}*/

JSONObject json = Utils.JSONRequest("user::::pass::::uhash::::target", username + "::::" + password + "::::" + userHash + "::::" + node.getIP(), "vh_trTransfer.php");

return new TransferResult(json, node.getIP());
public TransferResult transferMoney(String ip) {
TransferResult result = null;
JSONObject json = Utils.JSONRequest("user::::pass::::target", username + "::::" + password + "::::" + ip, "vh_trTransfer.php");
result = new TransferResult(json,ip);
/*
Example Output:
{"result":"0","amount":32523,"elo":1084,"eloch":12,"newmoney":29056310}
*/
return result;
}

public ArrayList<TransferResult> transferTrojansTo(ArrayList<ScannedNode> nodes) throws JSONException {
ArrayList<TransferResult> array = new ArrayList<TransferResult>();

nodes.forEach(node -> array.add(new TransferResult(Utils.JSONRequest("user::::pass::::uhash::::target", username + "::::" + password + "::::" + userHash + "::::" + node.getIP(), "vh_trTransfer.php"), node.getIP())));

return array;
}

private String[] parseScanResult(String input) {
return (new BufferedReader(new StringReader(input))).lines().toArray(String[]::new);
public TransferResult transferMoney(ScannedNode node) {
TransferResult result = null;
JSONObject json = Utils.JSONRequest("user::::pass::::target", username + "::::" + password + "::::" + node.getIP(), "vh_trTransfer.php");
result = new TransferResult(json,node.getIP());
/*
Example Output:
{"result":"0","amount":32523,"elo":1084,"eloch":12,"newmoney":29056310}
*/
return result;
}

public boolean clearLog(String ip) {
String result = Utils.StringRequest("user::::pass::::target", username + "::::" + password + "::::" + ip, "vh_clearAccessLogs.php");
/*
Output:
0 = Success
1 = Failed
*/
return "0".equals(result);
}

public boolean uploadSpyware(String ip) {
String result = Utils.StringRequest("user::::pass::::target", username + "::::" + password + "::::" + ip, "vh_spywareUpload.php");
/*
Output:
0 = Success
7 = Error
11 = Already Uploaded
*/
return "0".equals(result);
}

private static String[] parseScanResult(String input) {

String temp = input.substring(1, input.length() - 1);
temp = temp.replace("\"", "");
return temp.split(",");
}

}
44 changes: 44 additions & 0 deletions src/main/java/me/checkium/vhackapi/console/PasswordImages
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package me.checkium.vhackapi.console;


public class PasswordImages {

private String img1,img2,img3,img4,secret;

public PasswordImages(String input) {
String temp = input.substring(1, input.length() - 1);
temp = temp.replace("\"", "");
String[] str = temp.split(":");
img1 = str[0].split(":")[1];
img2 = str[0].split(":")[1];
img3 = str[0].split(":")[1];
img4= str[0].split(":")[1];
secret = str[0].split(":")[1];
/*
Example Output:
{"img_0":"iVBORw0KGgoAAAANSUhEUgAAAG0AAAAoCAYAAAD0bXSJAAABaElEQVR4nO2YWxKDIAxFodONyP7XpEuxX8wwTAIBou2193xZHwQ5GELjGQgar293gIxDaYBQGiCUBgilAUJpgFAaIJQGCKUBQmmAUBoglAYIpQFCaYC8LTcd+36GEMKWUrScX8ESKx9L5OdG2um9lxZPeu\/emNRtzYydSdqv4jlZNFpij30\/y\/OtySS1JbVhwZQepRl3xVeGFGtLKa4I0+JbMH9pOZ2UAaROW1JoL0X0YnniFWtWwAxDhYg0S0YpJbZe1BIrD3Y96Np92vVWrDqVWeJdjduaVs5YrRjQUsRsbr9jTdPizPbZgyFpde5f\/druiPVEzNIslY91fegJ8KqyyrbqY2RMa5pX5aM9U4r2rLLK51eygodsz6rYfZ\/W2rSW1z02mb0Cpv7d25hLaP2t25YmohZ\/tVKNj8gXfwb\/ewSE0gChNEAoDRBKA4TSAKE0QCgNEEoDhNIAoTRAKA0QSgOE0gD5ACuzfgg4aLQjAAAAAElFTkSuQmCC","img_1":"iVBORw0KGgoAAAANSUhEUgAAAG0AAAAoCAYAAAD0bXSJAAABTklEQVR4nO2ZURKCMAxExeEicv8zlaPgFzM1E2iWQuvCvj8kQ0NfIkGH5SXYePdOQOBIGiGSRoikESJphEgaIZJGiKQRImmESBohkkaIpBEiaYRIGiEjEjyn9PNPzmeahlJMKc47F43J14rElGJrieTj5YTmE+60fAPXReziNqYU551DYpCbtTldQfTatXmEpHkVb4VsdYU9PiLfi3kyTZ5pduNR+VeJm1Na8nXz41JMzyIKSfM27U6VP6e0bHW1V3C9uz\/caXmi601el1Zbol1t43rtATQ9tkzyTp18NvD0eAT7nPK+Zr0BpsXE15KzChEaRPY2OzLe27jIu1oLIkV09lo16wyI+hYv18jntfnk19x7MY5uMJrP0cKApN2Nf+l0FP32SMijO40VdRohkkaIpBEiaYRIGiGSRoikESJphEgaIZJGiKQRImmEfAHb4zLEq0mqFAAAAABJRU5ErkJggg==","img_2":"iVBORw0KGgoAAAANSUhEUgAAAG0AAAAoCAYAAAD0bXSJAAABWklEQVR4nO2aQQ7DIAwEoepHwv\/fRJ5CT0gWAgcMqFm0I\/VCAxiGYB\/ikyNofP4dABmH0gChNEAoDRBKA4TSAKE0QCgNEEoDhNIAoTRAKA0QSgOE0gD5WjrdMSbnnLtC8GvDsc2Vn6mR+7XGke0j6yrnbPXZsVdHvWlXCF7+nNOFWjdU9tPmkW1aHKMcJW2EFcJyW01cr1gLputRIgORC+m5jlpjPPWt\/WeJedf13hJ7x5juGNPsvFPSZADWgMoFtk5jz1y1vj2HBo2p6\/HpisjkTa61t8axziWfQRajcVRO68kfq\/OLRj6srUNr5ShpmbeIq1WzK9guTSt7taqrZxxtI3aJe6oUR8aysk1amYNaeau3kJHVVznGbIyluPJa0w7bPwob\/8aPVU+o8HZyZE47nVe+aUSHbxoglAYIpQFCaYBQGiCUBgilAUJpgFAaIJQGCKUBQmmA\/AACDi4u8Rb+QgAAAABJRU5ErkJggg==","img_3":"iVBORw0KGgoAAAANSUhEUgAAAG0AAAAoCAYAAAD0bXSJAAABgUlEQVR4nO2ZUQ7CIBBEwXiRcv8z1aPoFwmpsMxSWhkzL\/FDu5JdBnZoG99BsPH4dQLCj0QjRKIRItEIkWiESDRCJBohEo0QiUaIRCNEohEi0QiRaIRINEKev06gxmvfv94YbSlFT0ztemssby7WOMd4JCdPPiGEEFd7n5YLqxWbf0Ni0LFH8kHGsq6P5FGyXHvcUorHYmpi9WL+Gag9elYb0h5mrtoZY5Q5bynFszvhaqZ6Wq2Nvfb9PVr8cTLPxiCtqrVTEZ+9i2ntsTYxLQ8qJ8Ca0LINWiZuxXi9BRGi1p7vZLqn5d2VPzPGRPzKuyBGcljFN6cf+XsTlD0DaWtnuMqXyvyPfn3X7oN2mrWKrZj83bMya\/Etr7RiEJC60P+V368+yLju05BTFmrY6GmuNcbMm2urrtGTM1pXK9YCEq219Vc\/Go+yel2Qp5UrrnZtbkqix3KPsUSf5R5jiT4SjRCJRohEI0SiESLRCJFohEg0QiQaIRKNEIlGiEQj5ANfcHAufpnI1gAAAABJRU5ErkJggg==","secret":"*e*3**q***"}
*/
}

public String getImg1() {
return img1;
}

public String getImg2() {
return img2;
}

public String getImg3() {
return img3;
}

public String getImg4() {
return img4;
}

public String secret() {
return secret;
}


}
119 changes: 93 additions & 26 deletions src/main/java/me/checkium/vhackapi/console/ScannedNode.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

/**
* Created by ric on 31/08/16.
* Updated by flattern 23/02/17
*/
public class ScannedNode {
private String IP;
Expand All @@ -15,28 +16,84 @@ public class ScannedNode {
money,
anonymous,
successRep,
savings,
failRep,
ipspLevel,
spywareLevel,
successRate;

public ScannedNode(String[] result) {

if (result.length == 1) {
success = false;
return;
}
if (result[1] == null) {
success = false;
} else {
username = result[1].substring(26);
firewallLevel = result[2].substring(26);
antiVirusLevel = result[3].substring(27);
scanLevel = result[4].substring(22);
sdkLevel = result[5].substring(21);
spamLevel = result[6].substring(22);
money = result[7].substring(23);
anonymous = result[9].substring(27);
successRep = result[11].substring(32);
failRep = result[12].substring(29);
successRate = result[13].substring(39);

/*
* Example
fw:1
av:1
spam:1
sdk:1
ipsp:1
money:154396
savings:0
anonymous:YES
username:Captain_Snacky
winelo:19
winchance:90
spyware:1
ipaddress:242.126.137.253*/

for (String i1:result)
{
switch (i1.split(":")[0])
{
case "fw":
firewallLevel = i1.split(":")[1];
break;
case "av":
antiVirusLevel = i1.split(":")[1];
break;
case "spam":
spamLevel = i1.split(":")[1];
break;
case "sdk":
sdkLevel = i1.split(":")[1];
break;
case "ipsp":
ipspLevel = i1.split(":")[1];
break;
case "money":
money= i1.split(":")[1];
break;
case "savings":
savings = i1.split(":")[1];
break;
case "anonymous":
anonymous = i1.split(":")[1];
break;
case "username":
username = i1.split(":")[1];
break;
case "winelo":
successRep = i1.split(":")[1];
break;
case "winchance":
successRate = i1.split(":")[1];
break;
case "spyware":
spywareLevel = i1.split(":")[1];
break;
case "ipaddress":
IP = i1.split(":")[1];
break;

}
}
}

}
Expand All @@ -57,6 +114,23 @@ public Integer getFirewallLevel() {
}
}

public Integer getSavings() {
if (!success) return null;
try {
return Integer.valueOf(savings);
} catch (NumberFormatException e) {
return null;
}
}

public Integer getIpSpoofingLevel() {
if (!success) return null;
try {
return Integer.valueOf(ipspLevel);
} catch (NumberFormatException e) {
return null;
}
}

public Integer getAntiVirusLevel() {
if (!success) return null;
Expand All @@ -77,6 +151,14 @@ public Integer getScanLevel() {
}
}

public Integer getSpywareLevel() {
if (!success) return null;
try {
return Integer.valueOf(spywareLevel);
} catch (NumberFormatException e) {
return null;
}
}

public Integer getSdkLevel() {
if (!success) return null;
Expand Down Expand Up @@ -150,19 +232,4 @@ public String getIP() {
public void setIP(String IP) {
this.IP = IP;
}
/*

private val success = result[1] != null
val username = result[1]?.substring(26)
val firewallLevel = result[2]!!.substring(26).toInt()
val antiVirusLevel = result[3]!!.substring(27).toInt()
val scanLevel = result[4]!!.substring(22).toInt()
val sdkLevel = result[5]!!.substring(21).toInt();
val spamLevel = result[6]!!.substring(22).toInt();
val money = result[7]!!.substring(23).toInt();
val anonymous = result[9]!!.substring(27) == "YES";
val successRep = result[11]!!.substring(32).toInt();
val failRep = result[12]!!.substring(29).toInt();
val successRate = result[13]!!.substring(39).replace("%","").toInt();
*/
}