- 2
- 0
- Версия SA-MP
-
- Любая
- Другая
Изучая структуру https://kiznold.github.io/xsoft/ , спустя 5 минут я наткнулся на "обход", забавно что до сих пор никто не выложил подобный спуфер, т.к. я нашел этот "обход" еще давненько 😀
Представляю вам рабочий кейспуф, написанный буквально "на коленке", но работающий как нужно
Активация: Вставляете код в F12 - Console
На CTRL вы можете допускать ошибки
Видео:
Представляю вам рабочий кейспуф, написанный буквально "на коленке", но работающий как нужно
Активация: Вставляете код в F12 - Console
На CTRL вы можете допускать ошибки
js:
(function() {
let currentCaptcha = "";
let currentIndex = 0;
let isGHeld = false;
const originalCall = Function.prototype.call;
Function.prototype.call = function(...args) {
if (args[0] instanceof CanvasRenderingContext2D && typeof args[1] === 'number') {
const val = args[1];
if (val >= 10000 && val <= 99999) {
currentCaptcha = val.toString();
currentIndex = 0;
}
}
return originalCall.apply(this, args);
};
const neighborMap = {
'1': ['ё', '2'],
'2': ['1', '3'],
'3': ['2', '4'],
'4': ['3', '5'],
'5': ['4', '6'],
'6': ['5', '7'],
'7': ['6', '8'],
'8': ['7', '9'],
'9': ['8', '0'],
'0': ['9', '-']
};
window.addEventListener('keydown', e => {
if (e.code === 'KeyN') currentIndex = 0;
});
const observer = new MutationObserver(() => {
const input = document.getElementById('megasuperbebra');
if (input && !input.dataset.hooked) {
input.dataset.hooked = "true";
input.addEventListener('keydown', e => {
if (e.key >= '0' && e.key <= '9') {
e.preventDefault();
if (!currentCaptcha || currentIndex >= 5) return;
let char;
if (e.ctrlKey) {
const correct = currentCaptcha[currentIndex];
const neighbors = neighborMap[correct] || [correct];
char = neighbors[Math.floor(Math.random() * neighbors.length)];
} else {
char = currentCaptcha[currentIndex];
}
const start = input.selectionStart;
const end = input.selectionEnd;
input.value = input.value.substring(0, start) + char + input.value.substring(end);
input.selectionStart = input.selectionEnd = start + 1;
input.dispatchEvent(new Event('input', { bubbles: true }));
currentIndex++;
}
});
}
});
observer.observe(document.body, { childList: true, subtree: true });
})();
Видео: