Advertisement
Guest User

Untitled

a guest
Jan 7th, 2017
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.39 KB | None | 0 0
  1. ////xl.class
  2.  
  3. package obf;
  4.  
  5. import java.io.Serializable;
  6. import java.util.ArrayList;
  7.  
  8. public final class xl implements Serializable
  9. {
  10. public ArrayList<Yi> e;
  11. private static final long serialVersionUID = 8230292901933089929L;
  12. public String M;
  13.  
  14. public xl(ArrayList<Yi> a, String a2)
  15. {
  16. e = a;
  17. M = a2;
  18. }
  19. }
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41. // Yi.class
  42.  
  43. package obf;
  44.  
  45. import java.io.Serializable;
  46.  
  47. public final class Yi
  48. implements Serializable
  49. {
  50. public final String i;
  51. private static final long serialVersionUID = -7292378165840294914L;
  52. public final int l;
  53. public final String m;
  54. public final int A;
  55. public final String e;
  56. public final String M;
  57.  
  58. public Yi(String a, String a2, String a3, int a4, String a5, int a6)
  59. {
  60. i = a;
  61. m = a2;
  62. l = a6;
  63. e = a3;
  64. M = a5;
  65. A = a4;
  66. }
  67. }
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110. // Main.class
  111.  
  112. import obf.Yi;
  113. import obf.xl;
  114. import obf.zg;
  115.  
  116. import java.io.BufferedOutputStream;
  117. import java.io.FileOutputStream;
  118. import java.io.IOException;
  119. import java.io.ObjectOutputStream;
  120. import java.nio.file.Files;
  121. import java.nio.file.Path;
  122. import java.nio.file.Paths;
  123. import java.util.ArrayList;
  124. import java.util.HashMap;
  125. import java.util.List;
  126.  
  127. /**
  128. * Created by Spencer on 9/8/2016.
  129. */
  130. public class Main {
  131.  
  132. public static void main(String... sargs) {
  133. HashMap<String, String> parsedArguments = new HashMap<>();
  134. for (String arg : sargs) {
  135. String[] split = arg.split("~");
  136. if (split.length == 2)
  137. parsedArguments.put(split[0], split[1]);
  138. }
  139.  
  140. String accountSession = "";
  141. String heapSize = "";
  142.  
  143. //ugly af but yolo
  144. try {
  145. List<String> lines = Files.readAllLines(Paths.get(Main.getAppDataDirectory().toString() + "/settings/startup.ini"));
  146. for (String line : lines) {
  147. if (line.contains("<mem>")) {
  148. String[] splits = line.split("<mem>");
  149. String[] splits2 = splits[1].split("</mem");
  150. heapSize = splits2[0];
  151. }
  152. if (line.contains("<sid>")) {
  153. String[] splits = line.split("<sid>");
  154. String[] splits2 = splits[1].split("</sid");
  155. accountSession = "SID" + splits2[0];
  156. }
  157. }
  158. } catch (Exception e) {
  159. e.printStackTrace();
  160. }
  161.  
  162.  
  163. //Messy but idc
  164. String accountName = getArgument(parsedArguments, "accountName");
  165. String scriptName = "dChopper"; //getArgument(parsedArguments, "scriptName").replace("_", " ");
  166. String scriptCommand = getArgument(parsedArguments, "scriptCommand");
  167. int world = 394; //Integer.parseInt(getArgument(parsedArguments, "world").equals("") ? "0" : getArgument(parsedArguments, "world"));
  168. String breakProfile = getArgument(parsedArguments, "breakProfile");
  169. String proxyIP = getArgument(parsedArguments, "proxyIP");
  170. String proxyPort = getArgument(parsedArguments, "proxyPort");
  171. String proxyUsername = getArgument(parsedArguments, "proxyUsername");
  172. String proxyPassword = getArgument(parsedArguments, "proxyPassword");
  173.  
  174.  
  175. ArrayList<String> args = new ArrayList<>();
  176. String os = System.getProperty("os.name").toLowerCase();
  177. String sep = os.contains("win") ? ";" : ":";
  178. String dir = os.contains("win") ? "\\" : "/";
  179. String q = os.contains("win") ? "\"" : "";
  180. String TRIBOT_PATH = getAppDataDirectory().toString().replace("\\", dir);
  181.  
  182. args.add("java");
  183. args.add("-Xmx384m -Xss2m -Dsun.java2d.noddraw=true -XX:CompileThreshold=1500 -Xincgc");
  184. args.add("-XX:+UseConcMarkSweepGC -XX:+UseParNewGC -Xbootclasspath/p:" + q + TRIBOT_PATH + dir + "dependancies" + dir + "xboot860.jar" + q);
  185. args.add("-classpath "
  186. + q + Main.getJavaBinDirectory().getParent().replace("\\", dir) + dir + "lib" + dir + "tools.jar" + q + sep
  187. + q + TRIBOT_PATH + dir + "bin" + q + sep
  188. + q + TRIBOT_PATH + dir + "dependancies" + dir + "substance.jar" + q + sep
  189. + q + TRIBOT_PATH + dir + "dependancies" + dir + "trident.jar" + q + sep
  190. + q + TRIBOT_PATH + dir + "dependancies" + dir + "TRiBot.jar" + q + sep);
  191. args.add("org.tribot.TRiBot");
  192. args.add(accountSession);
  193. args.add("MEM" + heapSize);
  194. Yi clientArgs = new Yi(accountName, scriptName, scriptCommand, world, breakProfile, 1472396136); //Magic number best number
  195. xl var6 = new xl(new ArrayList<>(), null);
  196. var6.e.add(clientArgs);
  197.  
  198. int crand = (int) (Math.random() * 10000000); //Random file for the client to load the arguments from
  199. final String bootname = "/client" + crand + ".boot";
  200.  
  201. if (proxyIP != null && !proxyIP.equals(""))
  202. args.add("PROXY_HOST" + zg.yL(proxyIP.getBytes()));
  203. if (proxyPort != null && !proxyPort.equals(""))
  204. args.add("PROXY_PORT" + zg.yL(proxyPort.getBytes()));
  205. if (proxyUsername != null && !proxyUsername.equals(""))
  206. args.add("PROXY_USERNAME" + zg.yL(proxyUsername.getBytes()));
  207. if (proxyPassword != null && !proxyPassword.equals(""))
  208. args.add("PROXY_PASSWORD" + zg.yL(proxyPassword.getBytes()));
  209.  
  210. args.add("BOOT_INFO" + zg.yL(bootname.getBytes()));
  211. args.add("OLDSCHOOL");
  212.  
  213.  
  214. String exe = "";
  215. for (String sarg : args) {
  216. exe += sarg + " ";
  217. }
  218.  
  219. Path path = Paths.get(TRIBOT_PATH + bootname);
  220. try {
  221. Path tfile = Files.createFile(path);
  222. if (!tfile.toFile().exists())
  223. throw new Error("Clientboot file does not exist.");
  224. else
  225. System.out.println("Created boot: " + path);
  226.  
  227. FileOutputStream fos = new FileOutputStream(tfile.toFile());
  228. BufferedOutputStream bos = new BufferedOutputStream(fos);
  229. ObjectOutputStream oos = new ObjectOutputStream(bos);
  230.  
  231. oos.writeObject(var6);
  232. oos.close();
  233. bos.close();
  234. fos.close();
  235. } catch (IOException e) {
  236. e.printStackTrace();
  237. return;
  238. }
  239.  
  240. try {
  241. Runtime.getRuntime().exec(exe);
  242. } catch (IOException e) {
  243. e.printStackTrace();
  244. }
  245. }
  246.  
  247. public static String getArgument(HashMap<String, String> set, String key) {
  248. return set.containsKey(key) ? set.get(key) : "";
  249. }
  250.  
  251. public static java.io.File getJavaBinDirectory() {
  252. java.lang.String[] a;
  253. java.lang.String a2;
  254. java.lang.String a3 = java.lang.System.getProperty("os.name").toLowerCase();
  255. java.lang.String a4 = java.lang.System.getenv("JAVA_HOME");
  256. if (a4 != null && a4.length() > 0) {
  257. return new java.io.File(a4, "bin");
  258. }
  259. if (!a3.contains("win")) {
  260. a3.contains("mac");
  261. return null;
  262. }
  263. if (bc("HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit") != null && (a2=iB("HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit", "CurrentVersion")) != null && (a2 = iB(("HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\" + a2), "JavaHome")) != null) {
  264. return new java.io.File(a2, "bin");
  265. }
  266. a = bc("HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\JavaSoft\\Java Runtime Environment");
  267. if (a == null) return null;
  268. a2 = iB("HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\JavaSoft\\Java Runtime Environment", "CurrentVersion");
  269. if (a2 == null) return null;
  270. java.lang.String a5 = iB(("HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\JavaSoft\\Java Runtime Environment\\" + a2), "JavaHome");
  271. if (a5 == null) return null;
  272. return new java.io.File(a5, "bin");
  273. }
  274.  
  275. private static String[] bc(String a) {
  276. try {
  277. Process var1 = Runtime.getRuntime().exec("reg query \"" + a + "\"");
  278. StreamReader var2 = new StreamReader(var1.getInputStream());
  279. var2.start();
  280. var1.waitFor();
  281. var2.join();
  282. String var8 = var2.getResult();
  283. if(var8.length() < 1) {
  284. return null;
  285. } else {
  286. String[] var9 = var8.split(a.replace("\\", "\\\\") + "\\\\");
  287. ArrayList var3 = new ArrayList();
  288. String[] var6 = var9;
  289. int var5 = var9.length;
  290.  
  291. int var4;
  292. for(int var10000 = var4 = 0; var10000 < var5; var10000 = var4) {
  293. if(!(var8 = var6[var4]).contains(a)) {
  294. var3.add(var8);
  295. }
  296.  
  297. ++var4;
  298. }
  299.  
  300. String[] var10001 = new String[var3.size()];
  301. return var10001;
  302. }
  303. } catch (Exception var7) {
  304. var7.printStackTrace();
  305. return null;
  306. }
  307. }
  308.  
  309.  
  310. private static String iB(String a, String a1) {
  311. try {
  312. Process a2 = Runtime.getRuntime().exec("reg query \"" + a + "\" /v " + a1);
  313. StreamReader var2 = new StreamReader(a2.getInputStream());
  314. var2.start();
  315. a2.waitFor();
  316. var2.join();
  317. String var5 = var2.getResult();
  318. if(var5.length() < 1) {
  319. return null;
  320. } else {
  321. var5 = var5.substring(var5.indexOf("REG_SZ") + "REG_SZ".length() + 1, var5.length()).trim();
  322. return var5;
  323. }
  324. } catch (Exception var3) {
  325. var3.printStackTrace();
  326. return null;
  327. }
  328. }
  329.  
  330.  
  331. public static java.io.File getAppDataDirectory() {
  332. java.io.File file;
  333. java.io.File file2 = null;
  334. java.io.File a = null;
  335. java.lang.String a2 = java.lang.System.getProperty("user.home");
  336. java.lang.String a3 = java.lang.System.getProperty("os.name").toLowerCase();
  337. if (a3.contains("win")) {
  338. java.lang.String a4 = java.lang.System.getenv("APPDATA");
  339. file2 = a4 == null || a4.length() < 1 ? (a = new java.io.File(a2, ".tribot" + java.io.File.separatorChar)) : (a = new java.io.File(a4, ".tribot" + java.io.File.separatorChar));
  340. } else if (a3.contains("solaris") || a3.contains("linux") || a3.contains("sunos") || a3.contains("unix")) {
  341. file2 = a = new java.io.File(a2, ".tribot" + java.io.File.separatorChar);
  342. } else if (a3.contains("mac")) {
  343. file = new java.io.File(a2, "Library" + java.io.File.separatorChar + "Application Support" + java.io.File.separatorChar + "tribot");
  344. java.io.File file3 = a = file;
  345. } else {
  346. file = new java.io.File(a2, "tribot" + java.io.File.separatorChar);
  347. java.io.File file4 = a = file;
  348. }
  349. if (file2 != null) {
  350. if (a.exists()) return a;
  351. if (a.mkdirs()) return a;
  352. }
  353. a = new java.io.File("data");
  354. java.lang.System.out.println("Couldn't create seperate application data directory. Using application data directory as: " + a.getAbsolutePath());
  355. return a;
  356. }
  357. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement