Herofireclient | Native Habbo Windows Client (C#) 1.0.0

Kristinaa -

Windows Client für Retros. (Noch nicht ausgereift)

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

Hey User!

Heute möchte ich mit euch unseren Native Windows Client teilen, welches für unser altes Retrohotel Herofire gedacht war.
Das Hotel ging offline, bevor das Programm aus der Beta kommen konnte, weshalb es nie öffentlich gemacht wurde. Das Ganze braucht noch mehrere Veränderungen (selbst im CMS wegen dem Login API). Es ist nicht der ordentlichste und vor allem auch nicht der schönste Code, der geschrieben wurde. Wie gesagt hatte das ganze nicht die Chance die Beta zu verlassen.
Die Texte sind auf Deutsch. Falls der Bedarf besteht, dies zu ändern, könnt ihr es gerne tun. Das Programm besitzt eine Shockwave / Flash Bibliothek.

Das Programm könnt ihr mit dem Argument "devhotel" starten, welches euch in ein vordefiniertes devhotel bringen wird.

Es ist wohl nicht der sicherste Weg mit der Session umzugehen, aber wie schon gesagt, wurde das Ganze nie released. Dennoch ist es unglaublich praktisch und bequem.

Das Programm wurde von Maxi (xJawz) und Jonathan (JQNI) entwickelt. Solltet ihr es also benutzen, würden wir euch dankbar sein, wenn ihr Copyright für das alte Herofire hinterlegen würdet.
Es wäre cool das Programm einmal weiterentwickelt betrachten zu können. Wir würden uns mächtig freuen!


Einblick






PHP-Quellcode: /api/sessionlogin.php

  1. <?php
  2. require_once("../core.php");
  3. if(isset($_POST["session"]) && isset($_POST["processor_id"]) && !empty($_POST["session"]) && !empty($_POST["processor_id"]))
  4. {
  5. $sql = $conn->prepare("SELECT user_id FROM `user_native_client_sessions` WHERE session = ? AND processor_id = ? AND ip = ? AND expire_timestamp >= ? LIMIT 1");
  6. $sql->bind_param("sssi", $_POST["session"], $_POST["processor_id"], $functions->getIp(), time());
  7. $sql->execute();
  8. $sql->store_result();
  9. if ($sql->num_rows > 0)
  10. {
  11. $sql->bind_result($userid);
  12. $sql->fetch();
  13. $ticket = $functions->GenerateTicket();
  14. $conn->query("UPDATE users SET auth_ticket = '".$ticket."' WHERE id = '".$userid."'");
  15. echo json_encode(array("status" => "true", "sso" => $ticket));
  16. }
  17. else
  18. {
  19. echo json_encode(array("status" => "false"));
  20. }
  21. }
  22. else
  23. {
  24. echo json_encode(array("status" => "false"));
  25. }
Alles anzeigen

PHP-Quellcode: /api/userlogin.php

  1. <?php
  2. require_once("../core.php");
  3. $rememberMe = false;
  4. $username = $functions->FilterText($_POST["username"]);
  5. $password = $functions->HoloHashMD5New($_POST["password"], $username);
  6. if(isset($_POST["remember_me"]) && isset($_POST["processor_id"]))
  7. $rememberMe = true;
  8. if (empty($username) || empty($password))
  9. {
  10. echo json_encode(array("status" => "false"));
  11. }
  12. else
  13. {
  14. $sql = $conn->prepare("SELECT id FROM users WHERE username = ? AND password = '" . $password . "' LIMIT 1");
  15. $sql->bind_param("s", $username);
  16. $sql->execute();
  17. $sql->store_result();
  18. if ($sql->num_rows < 1)
  19. {
  20. echo json_encode(array("status" => "false"));
  21. }
  22. else
  23. {
  24. $sql->bind_result($userid);
  25. $sql->fetch();
  26. $ticket = $functions->GenerateTicket();
  27. $conn->query("UPDATE users SET auth_ticket = '".$ticket."', isNativeApplication = '1' WHERE id = '".$userid."'");
  28. $response = array("status" => "true", "sso" => $ticket);
  29. if($rememberMe)
  30. {
  31. $conn->query("DELETE FROM `user_native_client_sessions` WHERE (`user_id`='$userid')");
  32. $sessionkey = $functions->random_string();
  33. $timestamp = strtotime("+3 months");
  34. $query = $conn->prepare("INSERT INTO `user_native_client_sessions` (`user_id`, `session`, `processor_id`, `ip`, `expire_timestamp`) VALUES (?, ?, ?, ?, ?)");
  35. $query->bind_param("isssi", $userid, $sessionkey, $_POST["processor_id"], $functions->getIp(), $timestamp);
  36. $query->execute();
  37. $response["session"] = $sessionkey;
  38. }
  39. echo json_encode($response);
  40. exit;
  41. }
  42. }
Alles anzeigen

SQL-Abfrage: Code

  1. -- ----------------------------
  2. -- Table structure for `user_native_client_sessions`
  3. -- ----------------------------
  4. DROP TABLE IF EXISTS `user_native_client_sessions`;
  5. CREATE TABLE `user_native_client_sessions` (
  6. `id` int(11) NOT NULL AUTO_INCREMENT,
  7. `user_id` int(11) NOT NULL,
  8. `session` varchar(255) NOT NULL,
  9. `processor_id` varchar(255) NOT NULL,
  10. `ip` varchar(255) NOT NULL,
  11. `expire_timestamp` int(11) NOT NULL,
  12. PRIMARY KEY (`id`)
  13. ) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8;
Alles anzeigen
Bekannter Bug:



Wenn man eingeloggt ist und sich dann ausloggt und wieder einloggen will, startet der Client nicht. Erst wenn man das Programm wieder neu startet.



VT: virustotal.com/de/file/42bce74…fc90/analysis/1483576388/
  • Version 1.0.0

    - 8,49 MB - 15 mal heruntergeladen