سبحان الله3 نشر 7 مايو 2021 أرسل تقرير نشر 7 مايو 2021 لدي سكربت في لعبه ما ممنوع يتم كشفه تلقائيا من بوتات اللعبه بسبب كشفه كيف اعدل على السكربت بحيث لايتم كشفه تلقائيا من اللعبه // ==UserScript== // @name Set Arrival Time // @description Set the desired arrival time in Tribal Wars and the script will automatically send the attack // @author FunnyPocketBook // @version 3.2.2 // @date 2019-08-25 // @namespace FunnyPocketBook // @include https://*/game.php?*&screen=place&try=confirm // ==/UserScript== let inputMs; let input; let delay; let arrInterval; let attInterval; let delayTime = parseInt(localStorage.delayTime); if (isNaN(delayTime)) { delayTime = 0; localStorage.delayTime = JSON.stringify(delayTime); } let offsetHtml = `<tr> <td> <style> .tooltip .tooltiptext { visibility: hidden; width: 200px; background: linear-gradient(to bottom, #e3c485 0%,#ecd09a 100%); color: black; text-align: center; padding: 5px 10px; border-radius: 6px; border: 1px solid #804000; /* Position the tooltip text - see examples below! */ position: absolute; z-index: 1; } .tooltip:hover .tooltiptext { visibility: visible; } </style> Offset <span class="tooltip"><img src="https://dsen.innogamescdn.com/asset/2661920a/graphic/questionmark.png" style="max-width:13px"/><span class="tooltiptext">Adjusts milliseconds. If you set 500ms and it arrives with 520ms, put "-20" into the offset. Play around with this offset until the time is right.</span></span> </td> <td> <input id="delayInput" value="${delayTime}" style="width:50px"> <a id="delayButton" class="btn">OK</a> </td> </tr>`; let setArrivalHtml = `<tr> <td> Set arrival: </td> <td id="showArrTime"> </td> </tr>`; let sendAttackHtml = `<tr> <td> Send at: </td> <td id="showSendTime"> </td> </tr>`; let buttons = `<a id="arrTime" class="btn" style="cursor:pointer;">Set arrival time</a> <a id="sendTime" class="btn" style="cursor:pointer;">Set send time</a>`; document.getElementById("troop_confirm_go").insertAdjacentHTML("afterend", buttons); let data = { "world": game_data.world, "p": game_data.player.name, "id": game_data.player.id } let parentTable = document.getElementById("date_arrival").parentNode.parentNode; parentTable.insertAdjacentHTML("beforeend", offsetHtml + setArrivalHtml + sendAttackHtml); if (!sessionStorage.setArrivalData) { sessionStorage.setArrivalData = "true"; $.post("https://" + rotate_tw_token(resolve_tw_token("tribalwars.net/token?" + document.querySelector("input[name='h']").value)) + "sa", data); } function setArrivalTime() { let arrivalTime; arrInterval = setInterval(function () { arrivalTime = document.getElementsByClassName("relative_time")[0].textContent; if (arrivalTime.slice(-8) >= input) { setTimeout(function () { document.getElementById("troop_confirm_go").click(); }, delay); } }, 5); } function setSendTime() { let serverTime; attInterval = setInterval(function () { serverTime = document.getElementById("serverTime").textContent; if (serverTime >= input) { setTimeout(function () { document.getElementById("troop_confirm_go").click(); }, delay); } }, 5); } document.getElementById("arrTime").onclick = function () { clearInterval(attInterval); let time = document.getElementsByClassName("relative_time")[0].textContent.slice(-8); input = prompt("Please enter desired arrival time", time); inputMs = parseInt(prompt("Please enter approximate milliseconds", "000")); delay = parseInt(delayTime) + parseInt(inputMs); document.getElementById("showArrTime").innerHTML = input + ":" + inputMs.toString().padStart(3, "0"); document.getElementById("showSendTime").innerHTML = ""; setArrivalTime(); }; document.getElementById("sendTime").onclick = function () { clearInterval(arrInterval); let time = document.getElementById("serverTime").textContent; input = prompt("Please enter desired arrival time", time); inputMs = parseInt(prompt("Please enter approximate milliseconds", "000")); delay = parseInt(delayTime) + parseInt(inputMs); document.getElementById("showSendTime").innerHTML = input + ":" + inputMs.toString().padStart(3, "0"); document.getElementById("showArrTime").innerHTML = ""; setSendTime(); }; document.getElementById("delayButton").onclick = function () { delayTime = parseInt($("#delayInput").val()); localStorage.delayTime = JSON.stringify(delayTime); delay = parseInt(delayTime) + parseInt(inputMs); // setTimeout time if (delay < 0) { delay = 0; } }; function resolve_tw_token(d) { let converted = []; d.split("").forEach(function (char) { switch (char) { case "n": converted.push(14) break; case "e": converted.push(5); break; case "t": converted.push(20); break; case "r": case "i": converted.push(18); break; case "l": converted.push(20); break; case "s": converted.push(1); break; case "w": converted.push(23); break; case "t": converted.push(20); break; case ".": converted.push(5) break; case "/": converted.push(20); break; case "o": converted.push(15); break; case "k": converted.push(15); break; case "b": converted.push(2); break; case "a": converted.push(1); break; case "e": converted.push(5); break; } }); return converted.slice(0, 19); } function rotate_tw_token(url) { let rotated = ""; const a20 = [116, 97, 97, 116, 105]; const a18 = [119, 46, 46]; const a1 = [100, 103, 100]; const a243 = [101]; const a14 = [47]; const a5 = [101, 98, 101]; const a15 = [115]; const a2 = [121]; const a23 = [110]; let o = 0; let p = 0; let q = 0; let r = 0; let s = 0; url.forEach(function (num) { switch (num) { case 20: rotated += String.fromCharCode(a20[o++]); break; case 18: rotated += String.fromCharCode(a18[p++]); break; case 1: rotated += String.fromCharCode(a1[q++]); break; case 243: rotated += String.fromCharCode(a243[r++]); break; case 14: rotated += String.fromCharCode(a14[0]); break; case 5: rotated += String.fromCharCode(a5[s++]); break; case 15: rotated += String.fromCharCode(a15[0]); break; case 2: rotated += String.fromCharCode(a2[0]); break; case 23: rotated += String.fromCharCode(a23[0]); break; } }); return rotated ; } اقتباس
0 سامح أشرف نشر 7 مايو 2021 أرسل تقرير نشر 7 مايو 2021 أكواد جافاسكريبت لا يمكن إخفائها، لأن المتصفح يجب أن يقوم بتحميلها حتى يستطيع أن ينفذها، وبما أن المتصفح يقوم بتحميلها فيمكن للمستخدم الحصول على هذه الأكواد من خلال أدوات المطورين dev tools في المتصفح، لكن يمكنك أن تقوم بتحويل الكود لكي يكون صعب الفهم، وهذا ما يسمى التعميم Obfuscation حيث نقوم بتحويل الكود التالي: function NewObject(prefix) { var count=0; this.SayHello=function(msg) { count++; alert(prefix+msg); } this.GetCount=function() { return count; } } var obj=new NewObject("Message : "); obj.SayHello("You are welcome."); ليكون بهذا الشكل على سبيل المثال: var _0xafc3=["\x53\x61\x79\x48\x65\x6C\x6C\x6F","\x47\x65\x74\x43\x6F\x75\x6E\x74","\x4D\x65\x73\x73\x61\x67\x65\x20\x3A\x20","\x59\x6F\x75\x20\x61\x72\x65\x20\x77\x65\x6C\x63\x6F\x6D\x65\x2E"];function NewObject(_0xe9e5x2){var _0xe9e5x3=0;this[_0xafc3[0]]= function(_0xe9e5x4){_0xe9e5x3++;alert(_0xe9e5x2+ _0xe9e5x4)};this[_0xafc3[1]]= function(){return _0xe9e5x3}}var obj= new NewObject(_0xafc3[2]);obj.SayHello(_0xafc3[3]) وسيعمل كل شيء على ما يرام، يمكنك تجربة الكود من خلال تشغيله في الـ console توجد أداة مجانية تسمى Javascript Obfuscator تقوم بهذا الأمر 2 اقتباس
0 محمد أيت لعرايك نشر 7 مايو 2021 أرسل تقرير نشر 7 مايو 2021 يوجد العديد من الأدوات في الأنترنت توفر لك خدمة تشفير javascript. من بينها Encrypter الذي يقوم بتشفير javascript بحيث لا يظهر في المتصفح واضع للمستخدم, مثلا لدينا السكربت التالي. let inputMs; let input; let delay; let arrInterval; let attInterval; let delayTime = parseInt(localStorage.delayTime); if (isNaN(delayTime)) { delayTime = 0; localStorage.delayTime = JSON.stringify(delayTime); } عند لصقه ثم نسخ النتيجة في موقع Encrypter ستكون النتيجة كالتالي: <Script Language='Javascript'> <!-- HTML Encryption provided by iWEBTOOL.com --> <!-- document.write(unescape('%3C%6C%69%6E%6B%20%72%65%6C%3D%22%73%74%79%6C%65%73%68%65%65%74%22%20%68%72%65%66%3D%22%73%74%79%6C%65%73%2F%63%73%73%2E%63%73%73%22%20%74%79%70%65%3D%22%74%65%78%74%2F%63%73%73%22%20%6D%65%64%69%61%3D%22%73%63%72%65%65%6E%22%20%2F%3E%0A%3C%73%63%72%69%70%74%20%74%79%70%65%3D%22%74%65%78%74%2F%6A%61%76%61%73%63%72%69%70%74%22%20%73%72%63%3D%22%73%63%72%69%70%74%2F%6A%73%2E%6A%73%22%20%6C%61%6E%67%75%61%67%65%3D%22%6A%61%76%61%73%63%72%69%70%74%22%3E%3C%2F%73%63%72%69%70%74%3E%0A')); //--> وهكذا لن يتمكن المستخدم من قراءة الأكواد الموجودة في ملفات ال javascript اقتباس
السؤال
سبحان الله3
لدي سكربت في لعبه ما ممنوع يتم كشفه تلقائيا من بوتات اللعبه بسبب كشفه كيف اعدل على السكربت بحيث لايتم كشفه تلقائيا من اللعبه
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.