Заходим на https://admin.majestic-files.net/
Открываем консоль и вписываем
После чего указываем абсолютно любые данные почты пароля и 2FA
Открываем консоль и вписываем
JavaScript:
(function () {
const ALL_RIGHTS = [
'settingsRights','settingsRightsOverride','settingsAttackOnTheArmy',
'settingsPlantWeedTime','settingsMinigames','settingsServerSettings',
'settingsServerMassSettings','settingsForBeginners','betBoom','console',
'bonusCodes','families','familyPlayers','familyVehicles','findUser',
'findAccount','findItems','findVehicle','findInviteCode','findTelegramId',
'findRgscIdsByAccountIds','findAnyServer','users','usersAllServers',
'accounts','accountsAllServers','lawyers','lawyersAllServers','deposits',
'depositsAllServers','skills','skillsAllServers','electionCandidates',
'electionCandidatesAllServers','rouletteItems','rouletteItemsAllServers',
'countItems','countVehicles','countClothes','countAnyServer','logsAdmins',
'logsAdminsAllServers','logsFractions','logsFractionsAllServers',
'logsFractionsMoney','logsFractionsMoneyAllServers','logsItems',
'logsItemsAllServers','logsTrades','logsTradesAllServers',
'logsMarketplaceTrades','logsMarketplaceTradesAllServers','logsMoney',
'logsMoneyAllServers','logsChips','logsChipsAllServers','logsFamilies',
'logsFamiliesAllServers','logsFamilyMoney','logsFamilyMoneyAllServers',
'logsProperties','logsPropertiesAllServers','logsCalls','logsCallsAllServers',
'logsPhoneCalls','logsPhoneCallsAllServers','logsPhoneSms',
'logsPhoneSmsAllServers','logsSessions','logsSessionsAllServers',
'logsSessionsExtended','logsNames','logsNamesAllServers','logsCaptures',
'logsCapturesAllServers','logsFamilyWars','logsFamilyWarsAllServers',
'logsConsole','logsBans','logsBansAllServers','logsGlobalBans','logsUsers',
'logsUsersAllServers','logsLawyer','logsLawyerAllServers','logsArrest',
'logsArrestAllServers','logsCriminalRecord','logsCriminalRecordAllServers',
'logsWanted','logsWantedAllServers','logsTickets','logsTicketsAllServers',
'logsElectionVotes','logsElectionVotesAllServers','logsWeazelNews',
'logsWeazelNewsAllServers','fractions','fraction','fractionPlayers',
'rulesRead','rulesCreate','rulesUpdate','rulesDelete','whiteList',
'adminWhiteList','pdfReports','twitch','specialsRead','specialsCreate',
'specialsUpdate','specialsDelete','specialsAllServers',
'statisticsReportsUser','statisticsSessionsUser','statisticsReportsServer',
'statisticsReportsAllServers','statisticsBansServer','statisticsBansAllServers',
'statisticsClothes','statisticsClothesAllServers','statisticsAnomalies',
'statisticsAnomaliesAllServers','statisticsVehicles','statisticsVehiclesAllServers',
'mailRewards','anomaliesView','anomaliesViewAllServers','anomaliesUpdate',
'reportsView','reportsViewAllServers','reportsDelete','reportsDeleteAllServers',
'vehicles','vehiclesAllServers','items','itemsAllServers','changelogsRead',
'changelogsCreate','changelogsUpdate','changelogsDelete','vacanciesRead',
'vacanciesCreate','vacanciesUpdate','vacanciesDelete','giveawaysRead',
'giveawaysCreate','giveawaysUpdate','giveawaysDelete','sqlQuery',
'sqlQueryRuServers','sqlQueryEuServers','sqlQueryGlobalDatabases',
'sqlQueryProfileReadonly','sqlQueryProfileTech','sqlQueryExportCsv',
'freeMcPromoRead','freeMcPromoCreate','freeMcPromoUpdate','freeMcPromoDelete',
'freeMcPromoCancel','freeMcPromoStreakFreeze','paymentsUnblock',
'paymentsUnblockUser','trainingRead','trainingCreate','trainingUpdate',
'trainingDelete','statisticsTraining','statisticsTrainingAllServers',
'statisticsSqlQueries','statisticsSqlQueriesAllServers','adminPenaltiesRead',
'adminPenaltiesCreate','adminPenaltiesRemove','adminPenaltiesSettings',
'settingsWorkNorms','workNormsRead','workNormsUpdate','adminAbsences',
'adminAbsencesRequest','adminAbsencesManage','statisticsAbsences',
'statisticsAbsencesAllServers','cheatHunterFaqRead','cheatHunterFaqCreate',
'cheatHunterFaqUpdate','cheatHunterFaqDelete','cheatHunterChecksRead',
'cheatHunterChecksReadHistory','cheatHunterChecksCreate','cheatHunterChecksEdit',
'cheatHunterChecksDelete','cheatHunterChecksManage','cheatHunterChecksReopen',
'cheatHunterStatistics','mapRead','punishmentFeed','punishmentSearch'
];
const _fetch = window.fetch;
window.fetch = async function (...args) {
const req = args[0];
const init = args[1] || {};
const url = typeof args[0] === 'string' ? args[0] : args[0]?.url || '';
if (url.includes('/admin/') || url.includes('/logs/')) {
}
if (url.includes('/id/admin/login') || url.includes('/auth/login') || url.includes('/admin/login')) {
setTimeout(() => waitForAuth(), 800);
return new Response(JSON.stringify({
code: 200, status: true, error: 0
}), { status: 200, headers: { 'Content-Type': 'application/json' } });
}
if (url.includes('/auth/verify') || url.includes('/auth/2fa') || url.includes('/auth/otp')
|| url.includes('/auth/confirm') || url.includes('/auth/code') || url.includes('/auth/totp')) {
const twoFaResult = { token: 'fake-admin-token', refreshToken: 'fake-refresh-token', requireTwoFactor: false };
setTimeout(() => waitForAuth(), 800);
return new Response(JSON.stringify({
code: 200, status: true, error: 0,
result: twoFaResult, data: twoFaResult,
token: 'fake-admin-token'
}), { status: 200, headers: { 'Content-Type': 'application/json' } });
}
if (url.includes('/auth/')) {
const authResult = { token: 'fake-admin-token', refreshToken: 'fake-refresh-token' };
return new Response(JSON.stringify({
code: 200, status: true, error: 0,
result: authResult, data: authResult,
token: 'fake-admin-token', refreshToken: 'fake-refresh-token'
}), { status: 200, headers: { 'Content-Type': 'application/json' } });
}
if (url.includes('/admin/users/me') || url.match(/\/admin\/me($|\?)/)) {
const meResult = {
user: { id: 1, login: 'admin', email: 'admin@admin.com' },
accounts: [{
serverId: '1', accountId: 1, adminLevel: 10,
rights: ALL_RIGHTS, penaltyPoints: 0, departments: []
}]
};
return new Response(JSON.stringify({
code: 200, status: true,
result: meResult, data: meResult
}), { status: 200, headers: { 'Content-Type': 'application/json' } });
}
if (url.includes('/admin/servers') || url.includes('/config/servers')) {
const servers = [
{ id: '1', name: 'Server 1', players: 142, region: 'ru', disableDonate: false },
{ id: '2', name: 'Server 2', players: 98, region: 'ru', disableDonate: false },
{ id: '3', name: 'Server 3', players: 75, region: 'eu', disableDonate: false },
];
return new Response(JSON.stringify({
code: 200, status: true,
result: servers, data: servers
}), { status: 200, headers: { 'Content-Type': 'application/json' } });
}
if (url.includes('/admin/admins') && !url.includes('/admin/admins/')) {
return new Response(JSON.stringify({
code: 200, status: true,
result: [], data: []
}), { status: 200, headers: { 'Content-Type': 'application/json' } });
}
if (url.includes('/logs/bans') || url.includes('/admin/bans') || url.includes('/logs-bans')) {
const banItems = [
{ id: 1, accountId: 11111, accountName: 'TestPlayer1',
banReason: 'Читы / speedhack', banStart: '2026-04-20T10:00:00Z', banEnd: null,
banBy: 1, banByName: 'Administrator', serverId: '1',
isPermanent: true, isActive: true, permanent: true },
{ id: 2, accountId: 22222, accountName: 'AnotherUser',
banReason: 'Оскорбление персонала', banStart: '2026-04-21T14:30:00Z', banEnd: '2026-04-28T14:30:00Z',
banBy: 1, banByName: 'Administrator', serverId: '1',
isPermanent: false, isActive: true, permanent: false },
{ id: 3, accountId: 33333, accountName: 'BadActor99',
banReason: 'DM без RP', banStart: '2026-04-22T08:15:00Z', banEnd: '2026-04-25T08:15:00Z',
banBy: null, banByName: null, serverId: '1',
isPermanent: false, isActive: false, permanent: false },
];
const bansResult = { items: banItems, total: banItems.length, count: banItems.length, offset: 0, limit: 50 };
return new Response(JSON.stringify({ code: 200, status: true, result: bansResult }),
{ status: 200, headers: { 'Content-Type': 'application/json' } });
}
if (url.includes('/global-bans') || url.includes('/logs/global')) {
const gbans = { items: [
{ id: 1, playerId: 55555, playerName: 'HackerXXX', reason: 'Глобальный чит', adminId: 1, adminName: 'admin', createdAt: '2026-04-19T12:00:00Z', permanent: true },
], total: 1 };
return new Response(JSON.stringify({ code: 200, status: true, result: gbans, data: gbans }),
{ status: 200, headers: { 'Content-Type': 'application/json' } });
}
if (url.includes('/admin/users') && !url.includes('/users/me') && !url.match(/\/users\/\d+/)) {
const users = { items: [
{ id: 1, login: 'admin', email: 'admin@test.com', adminLevel: 10, rights: ALL_RIGHTS, serverId: '1', createdAt: '2026-01-01T00:00:00Z', lastActivity: '2026-04-22T09:00:00Z' },
{ id: 2, login: 'moderator1', email: 'mod1@test.com', adminLevel: 3, rights: ['logsBans', 'users'], serverId: '1', createdAt: '2026-02-15T00:00:00Z', lastActivity: '2026-04-21T18:00:00Z' },
{ id: 3, login: 'helper2', email: 'helper2@test.com', adminLevel: 1, rights: ['reportsView'], serverId: '1', createdAt: '2026-03-10T00:00:00Z', lastActivity: '2026-04-20T12:00:00Z' },
], total: 3 };
return new Response(JSON.stringify({ code: 200, status: true, result: users, data: users }),
{ status: 200, headers: { 'Content-Type': 'application/json' } });
}
if (url.includes('/admin/accounts') && !url.match(/\/accounts\/\d+/)) {
const accounts = { items: [
{ id: 101, name: 'John_Doe', vip: 1, money: 50000, bankMoney: 120000, phone: '555-1001', createdAt: '2026-01-10T00:00:00Z' },
{ id: 102, name: 'Jane_Smith', vip: 0, money: 12000, bankMoney: 5000, phone: '555-1002', createdAt: '2026-02-20T00:00:00Z' },
{ id: 103, name: 'Mike_Johnson', vip: 2, money: 999999, bankMoney: 500000, phone: '555-1003', createdAt: '2026-03-05T00:00:00Z' },
], total: 3 };
return new Response(JSON.stringify({ code: 200, status: true, result: accounts, data: accounts }),
{ status: 200, headers: { 'Content-Type': 'application/json' } });
}
if (url.includes('/admin/fractions') && !url.match(/\/fractions\/\d+/)) {
const fracs = { items: [
{ id: 1, name: 'Police Department', shortName: 'PD', type: 'government', membersCount: 24, leaderId: 101, leaderName: 'John_Doe' },
{ id: 2, name: 'Emergency Medical Service', shortName: 'EMS', type: 'government', membersCount: 12, leaderId: 102, leaderName: 'Jane_Smith' },
{ id: 3, name: 'Grove Street Families', shortName: 'GSF', type: 'gang', membersCount: 18, leaderId: 103, leaderName: 'Mike_Johnson' },
{ id: 4, name: 'Ballas', shortName: 'BLS', type: 'gang', membersCount: 15, leaderId: 104, leaderName: 'Tony_Brown' },
], total: 4 };
return new Response(JSON.stringify({ code: 200, status: true, result: fracs, data: fracs }),
{ status: 200, headers: { 'Content-Type': 'application/json' } });
}
if (url.includes('/admin/reports') && !url.match(/\/reports\/\d+/)) {
const reports = { items: [
{ id: 1, type: 'cheat', authorId: 22222, authorName: 'AnotherUser', targetId: 11111, targetName: 'TestPlayer1', text: 'Игрок летает над землёй', status: 'open', createdAt: '2026-04-22T09:30:00Z' },
{ id: 2, type: 'rp', authorId: 33333, authorName: 'BadActor99', targetId: null, targetName: null, text: 'Помогите, застрял в текстуре', status: 'closed', createdAt: '2026-04-21T16:00:00Z' },
], total: 2 };
return new Response(JSON.stringify({ code: 200, status: true, result: reports, data: reports }),
{ status: 200, headers: { 'Content-Type': 'application/json' } });
}
if (url.includes('/admin/changelogs') && !url.match(/\/changelogs\/\d+/)) {
const logs = { items: [
{ id: 1, title: 'Обновление 2.5.0', content: 'Добавлены новые транспортные средства, исправлены баги с телефоном', version: '2.5.0', publishedAt: '2026-04-20T12:00:00Z', authorId: 1, authorName: 'admin' },
{ id: 2, title: 'Хотфикс 2.4.1', content: 'Исправлен краш сервера при входе более 300 игроков', version: '2.4.1', publishedAt: '2026-04-15T08:00:00Z', authorId: 1, authorName: 'admin' },
], total: 2 };
return new Response(JSON.stringify({ code: 200, status: true, result: logs, data: logs }),
{ status: 200, headers: { 'Content-Type': 'application/json' } });
}
if (url.includes('/admin/vacancies') && !url.match(/\/vacancies\/\d+/)) {
const vacs = { items: [
{ id: 1, title: 'Администратор сервера', description: 'Требуется опытный администратор', level: 2, isOpen: true, createdAt: '2026-04-10T00:00:00Z' },
{ id: 2, title: 'Хелпер', description: 'Помощник администрации', level: 1, isOpen: true, createdAt: '2026-04-12T00:00:00Z' },
], total: 2 };
return new Response(JSON.stringify({ code: 200, status: true, result: vacs, data: vacs }),
{ status: 200, headers: { 'Content-Type': 'application/json' } });
}
if (url.includes('/statistics/reports') || url.includes('/statistics/bans') || url.includes('/statistics/sessions')) {
const stats = { items: [
{ date: '2026-04-22', count: 42, adminId: 1, adminName: 'admin' },
{ date: '2026-04-21', count: 38, adminId: 1, adminName: 'admin' },
{ date: '2026-04-20', count: 55, adminId: 1, adminName: 'admin' },
], total: 3 };
return new Response(JSON.stringify({ code: 200, status: true, result: stats, data: stats }),
{ status: 200, headers: { 'Content-Type': 'application/json' } });
}
if (url.includes('/admin/wanted') || url.includes('/logs/wanted')) {
const wanted = { items: [
{ id: 1, playerId: 101, playerName: 'John_Doe', stars: 3, reason: 'Ограбление банка', adminId: 1, adminName: 'admin', serverId: '1', createdAt: '2026-04-22T11:00:00Z' },
], total: 1 };
return new Response(JSON.stringify({ code: 200, status: true, result: wanted, data: wanted }),
{ status: 200, headers: { 'Content-Type': 'application/json' } });
}
if (url.toLowerCase().includes('/white-list') || url.toLowerCase().includes('/whitelist')) {
const wl = { items: [
{ id: 1, playerId: 101, playerName: 'John_Doe', addedBy: 'admin', addedAt: '2026-04-01T00:00:00Z' },
], total: 1 };
return new Response(JSON.stringify({ code: 200, status: true, result: wl, data: wl }),
{ status: 200, headers: { 'Content-Type': 'application/json' } });
}
const resp = await _fetch(...args);
if (resp.status === 401 || resp.status === 403) {
let emptyResult;
if (url.match(/\/admin\/me($|\?)/)) {
emptyResult = { user: { id: 1, login: 'admin', email: 'admin@admin.com' }, accounts: [{ serverId: '1', accountId: 1, adminLevel: 10, rights: ALL_RIGHTS, penaltyPoints: 0, departments: [] }] };
} else if (url.includes('/count')) {
emptyResult = 0;
} else if (url.includes('/statistics') || url.includes('/stats')) {
emptyResult = { items: [], total: 0, count: 0, data: [] };
} else {
emptyResult = [];
}
return new Response(JSON.stringify({ code: 200, status: true, result: emptyResult, data: emptyResult }), {
status: 200,
headers: { 'Content-Type': 'application/json' }
});
}
const text = await resp.text();
let parsed;
try { parsed = JSON.parse(text); } catch (_) {
return new Response(text, { status: resp.status, headers: resp.headers });
}
if (parsed && (parsed.status === false || parsed.code === 401)) {
let fallbackResult;
if (url.match(/\/admin\/me($|\?)/)) {
fallbackResult = { user: { id: 1, login: 'admin', email: 'admin@admin.com' }, accounts: [{ serverId: '1', accountId: 1, adminLevel: 10, rights: ALL_RIGHTS, penaltyPoints: 0, departments: [] }] };
} else {
fallbackResult = [];
}
const patched = JSON.stringify({ code: 200, error: 0, status: true, result: fallbackResult, data: fallbackResult });
return new Response(patched, {
status: 200,
headers: { 'Content-Type': 'application/json' }
});
}
return new Response(text, { status: resp.status, headers: resp.headers });
};
(function () {
const _open = XMLHttpRequest.prototype.open;
const _send = XMLHttpRequest.prototype.send;
XMLHttpRequest.prototype.open = function (method, url, ...rest) {
this._bypassUrl = url;
return _open.call(this, method, url, ...rest);
};
XMLHttpRequest.prototype.send = function (...args) {
this.addEventListener('readystatechange', function () {
if (this.readyState !== 4) return;
let parsed;
try { parsed = JSON.parse(this.responseText); } catch (_) { return; }
if (parsed && parsed.status === false) {
const patched = JSON.stringify({ error: 0, status: true });
Object.defineProperty(this, 'responseText', { get: () => patched, configurable: true });
Object.defineProperty(this, 'response', { get: () => patched, configurable: true });
Object.defineProperty(this, 'status', { get: () => 200, configurable: true });
}
});
return _send.apply(this, args);
};
})();
(function () {
const LOGIN_PATHS = new Set(['/', '/login']);
function onNav(path) {
if (LOGIN_PATHS.has(path)) {
window.history.replaceState(null, '', '/settings/rights');
window.dispatchEvent(new PopStateEvent('popstate', { state: null }));
}
}
const _push = history.pushState.bind(history);
const _replace = history.replaceState.bind(history);
history.pushState = function (state, title, url) {
_push(state, title, url);
onNav(window.location.pathname);
};
history.replaceState = function (state, title, url) {
_replace(state, title, url);
onNav(window.location.pathname);
};
})();
async function forceReauth() {
try {
const root = document.getElementById('root');
const fiberKey = Object.keys(root).find(k =>
k.startsWith('__reactFiber') || k.startsWith('__reactInternalInstance')
);
let authGetState = null;
function walkFiber(node) {
if (!node || authGetState) return;
let hook = node.memoizedState;
while (hook && !authGetState) {
const ms = hook.memoizedState;
if (ms && typeof ms === 'object' && ms !== null) {
if (typeof ms.getSnapshot === 'function') {
try {
const val = ms.getSnapshot();
if (val && typeof val === 'object' &&
'user' in val && 'isInitialized' in val &&
typeof val.me === 'function') {
authGetState = ms.getSnapshot;
}
} catch (_) {}
}
}
hook = hook.next;
}
if (!authGetState) {
walkFiber(node.child);
walkFiber(node.sibling);
}
}
walkFiber(root[fiberKey]);
if (!authGetState) {
setTimeout(forceReauth, 1500);
return;
}
await authGetState().me();
} catch (err) {
setTimeout(forceReauth, 1500);
}
}
function waitForAuth() {
setTimeout(forceReauth, 500);
}
setTimeout(forceReauth, 800);
})();