@jjlmoya/utils-games-development 1.51.0 → 1.53.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/package.json +1 -1
  2. package/src/category/index.ts +2 -1
  3. package/src/entries.ts +7 -2
  4. package/src/tests/locale_completeness.test.ts +2 -2
  5. package/src/tests/tool_validation.test.ts +2 -2
  6. package/src/tool/localizationSanitizer/app-client.ts +270 -0
  7. package/src/tool/localizationSanitizer/bibliography.astro +6 -0
  8. package/src/tool/localizationSanitizer/bibliography.ts +14 -0
  9. package/src/tool/localizationSanitizer/component.astro +116 -0
  10. package/src/tool/localizationSanitizer/csv-parser.ts +95 -0
  11. package/src/tool/localizationSanitizer/csv-sanitizer.ts +98 -0
  12. package/src/tool/localizationSanitizer/entry.ts +28 -0
  13. package/src/tool/localizationSanitizer/i18n/de.ts +176 -0
  14. package/src/tool/localizationSanitizer/i18n/en.ts +176 -0
  15. package/src/tool/localizationSanitizer/i18n/es.ts +176 -0
  16. package/src/tool/localizationSanitizer/i18n/fr.ts +176 -0
  17. package/src/tool/localizationSanitizer/i18n/id.ts +176 -0
  18. package/src/tool/localizationSanitizer/i18n/it.ts +176 -0
  19. package/src/tool/localizationSanitizer/i18n/ja.ts +176 -0
  20. package/src/tool/localizationSanitizer/i18n/ko.ts +176 -0
  21. package/src/tool/localizationSanitizer/i18n/nl.ts +176 -0
  22. package/src/tool/localizationSanitizer/i18n/pl.ts +176 -0
  23. package/src/tool/localizationSanitizer/i18n/pt.ts +176 -0
  24. package/src/tool/localizationSanitizer/i18n/ru.ts +176 -0
  25. package/src/tool/localizationSanitizer/i18n/sv.ts +176 -0
  26. package/src/tool/localizationSanitizer/i18n/tr.ts +176 -0
  27. package/src/tool/localizationSanitizer/i18n/zh.ts +176 -0
  28. package/src/tool/localizationSanitizer/index.ts +12 -0
  29. package/src/tool/localizationSanitizer/json-sanitizer.ts +118 -0
  30. package/src/tool/localizationSanitizer/localization-sanitizer.css +634 -0
  31. package/src/tool/localizationSanitizer/logic.test.ts +38 -0
  32. package/src/tool/localizationSanitizer/logic.ts +23 -0
  33. package/src/tool/localizationSanitizer/seo.astro +15 -0
  34. package/src/tool/localizationSanitizer/types.ts +55 -0
  35. package/src/tool/localizationSanitizer/ui.ts +39 -0
  36. package/src/tool/saveFileEditor/bibliography.astro +6 -0
  37. package/src/tool/saveFileEditor/bibliography.ts +12 -0
  38. package/src/tool/saveFileEditor/component.astro +351 -0
  39. package/src/tool/saveFileEditor/entry.ts +28 -0
  40. package/src/tool/saveFileEditor/game-save-file-editor.css +250 -0
  41. package/src/tool/saveFileEditor/i18n/de.ts +182 -0
  42. package/src/tool/saveFileEditor/i18n/en.ts +182 -0
  43. package/src/tool/saveFileEditor/i18n/es.ts +182 -0
  44. package/src/tool/saveFileEditor/i18n/fr.ts +182 -0
  45. package/src/tool/saveFileEditor/i18n/id.ts +182 -0
  46. package/src/tool/saveFileEditor/i18n/it.ts +182 -0
  47. package/src/tool/saveFileEditor/i18n/ja.ts +182 -0
  48. package/src/tool/saveFileEditor/i18n/ko.ts +182 -0
  49. package/src/tool/saveFileEditor/i18n/nl.ts +182 -0
  50. package/src/tool/saveFileEditor/i18n/pl.ts +182 -0
  51. package/src/tool/saveFileEditor/i18n/pt.ts +182 -0
  52. package/src/tool/saveFileEditor/i18n/ru.ts +182 -0
  53. package/src/tool/saveFileEditor/i18n/sv.ts +182 -0
  54. package/src/tool/saveFileEditor/i18n/tr.ts +182 -0
  55. package/src/tool/saveFileEditor/i18n/zh.ts +182 -0
  56. package/src/tool/saveFileEditor/index.ts +11 -0
  57. package/src/tool/saveFileEditor/logic.test.ts +69 -0
  58. package/src/tool/saveFileEditor/logic.ts +139 -0
  59. package/src/tool/saveFileEditor/seo.astro +15 -0
  60. package/src/tool/saveFileEditor/ui.ts +24 -0
  61. package/src/tools.ts +4 -1
@@ -0,0 +1,182 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+ import type { SaveFileEditorUI } from '../ui';
3
+ import { bibliographyEntries } from '../bibliography';
4
+
5
+ export const content: ToolLocaleContent<SaveFileEditorUI> = {
6
+ slug: 'redaktor-sohraneniy-igr',
7
+ title: 'Редактор и Обфускатор Файлов Сохранений Игр',
8
+ description: 'Расшифровывайте, проверяйте, редактируйте JSON данные и повторно зашифровывайте файлы сохранений игр с помощью Base64, XOR или открытого текста 100% локально в браузере.',
9
+ ui: {
10
+ title: 'Редактор и Обфускатор Сохранений Игр',
11
+ subtitle: 'Безопасно проверяйте, изменяйте и зашифровывайте локальные файлы сохранений без передачи на сервер',
12
+ dropSaveFile: 'Перетащите файл сохранения игры сюда',
13
+ orSelectFile: 'или нажмите для выбора локального файла',
14
+ encryptionMethod: 'Формат Шифрования',
15
+ methodBase64: 'Кодирование Base64',
16
+ methodXor: 'Маска XOR + Base64',
17
+ methodRaw: 'Открытый JSON / Без Шифрования',
18
+ xorKeyLabel: 'Секретный Ключ XOR',
19
+ xorKeyPlaceholder: 'например MySecretGameKey2026',
20
+ jsonRawTitle: 'Расшифрованные Данные JSON (Редактор)',
21
+ encodeAndDownload: 'Зашифровать и Скачать Файл',
22
+ copyEncoded: 'Копировать Зашифрованный Текст',
23
+ copiedNotice: 'Скопировано в Буфер Обмена!',
24
+ decodedKeysCount: 'Всего Параметров',
25
+ dataSize: 'Размер Данных',
26
+ detectedFormat: 'Обнаруженный Формат',
27
+ exportPreviewLabel: 'Предпросмотр Зашифрованного Вывода',
28
+ decodePanelTitle: 'Декодирование и Интерактивный Редактор JSON',
29
+ exportPanelTitle: 'Повторно Зашифрованный Вывод',
30
+ decodeError: 'Не удалось расшифровать файл сохранения',
31
+ bytesUnit: 'Б',
32
+ },
33
+ seo: [
34
+ {
35
+ type: 'title',
36
+ level: 2,
37
+ text: 'Безопасность и Протоколы Обфускации Сохранений Игр',
38
+ },
39
+ {
40
+ type: 'paragraph',
41
+ html: 'Компьютерные игры регулярно сериализуют прогресс игрока, состояние инвентаря, открытые уровни и характеристики персонажа в энергонезависимые форматы хранения. Чтобы предотвратить прямые изменения со стороны пользователей через обычные текстовые редакторы, игровые студии обфусцируют файлы сохранений с помощью двоичного кодирования Base64 или побитового маскирования XOR с использованием секретного ключа. Во время внутреннего тестирования и отладки командам разработчиков требуется возможность оперативно проверять структуру данных JSON, задавать граничные значения параметров и зашифровывать измененные данные без повторной сборки всей игры.',
42
+ },
43
+ {
44
+ type: 'stats',
45
+ columns: 4,
46
+ items: [
47
+ { label: 'Конфиденциальность Обработки', value: '100% Локально' },
48
+ { label: 'Поддерживаемые Декодеры', value: 'Base64 / XOR / JSON' },
49
+ { label: 'Задержка Декодирования', value: '0 мс' },
50
+ { label: 'Риск Утечки Данных', value: 'Нулевой' },
51
+ ],
52
+ },
53
+ {
54
+ type: 'title',
55
+ level: 2,
56
+ text: 'Сравнение Схем Обфускации',
57
+ },
58
+ {
59
+ type: 'comparative',
60
+ columns: 3,
61
+ items: [
62
+ {
63
+ title: 'Кодирование Base64',
64
+ description: 'Быстрое текстовое преобразование, предотвращающее случайное редактирование в блокноте, но не обеспечивающее криптографическую защиту.',
65
+ },
66
+ {
67
+ title: 'Маскирование XOR + Base64',
68
+ description: 'Стандартная практика в независимой разработке. Смешивает байты текста с секретным ключом для защиты от редакторов памяти.',
69
+ },
70
+ {
71
+ title: 'Открытый JSON',
72
+ description: 'Читаемый формат сохранения без шифрования. Идеально подходит для начального прототипирования и отладки.',
73
+ },
74
+ ],
75
+ },
76
+ {
77
+ type: 'title',
78
+ level: 2,
79
+ text: 'Практики Тестирования QA для Проверки Сохранений',
80
+ },
81
+ {
82
+ type: 'tip',
83
+ title: 'Лучшие Практики Безопасности Сохранений в QA',
84
+ html: 'Всегда используйте отдельные ключи отладки для внутренних и рабочих сборок. При проверке граничных ошибок используйте локальные редакторы для изменения параметров без пересборки кода.',
85
+ },
86
+ {
87
+ type: 'title',
88
+ level: 2,
89
+ text: 'Таблица Параметров Состояния Игры',
90
+ },
91
+ {
92
+ type: 'table',
93
+ headers: ['Тип Данных', 'Рекомендуемый Формат', 'Типичное Применение', 'Уровень Обфускации'],
94
+ rows: [
95
+ ['Числовые Целые', '32-битное Целое', 'Монеты, Уровень, Опыт, Патроны', 'Маска XOR'],
96
+ ['Логические Флаги', 'Стандартный Boolean', 'Обучение Завершено, Босс Побежден', 'Base64 / XOR'],
97
+ ['Вложенные Объекты', 'Иерархия JSON', 'Инвентарь Игрока, Древо Навыков', 'Кодирование Base64'],
98
+ ['Строка Времени', 'ISO 8601 UTC', 'Ежедневный Вход, Время Сохранения', 'Маска XOR'],
99
+ ],
100
+ },
101
+ {
102
+ type: 'title',
103
+ level: 2,
104
+ text: 'Реверс Инжиниринг и Защита от Взлома',
105
+ },
106
+ {
107
+ type: 'paragraph',
108
+ html: 'Хотя обфускация на стороне клиента предотвращает изменения файлов сохранения обычными игроками, XOR и Base64 не являются полноценными криптографическими алгоритмами. Инструменты анализа памяти, такие как RenderDoc или x64dbg, могут извлекать алгоритмы генерации ключей прямо из скомпилированных исполняемых файлов. Для многопользовательских игр необходима валидация на стороне сервера или использование криптографических подписей HMAC.',
109
+ },
110
+ ],
111
+ faqTitle: 'Часто Задаваемые Вопросы',
112
+ faq: [
113
+ {
114
+ question: 'Загружаются ли мои файлы сохранений на удаленный сервер?',
115
+ answer: 'Нет. Все процессы декодирования, редактирования JSON и повторного шифрования происходят на 100% внутри вашего веб-браузера.',
116
+ },
117
+ {
118
+ question: 'Как работает обфускация XOR в игровых движках Unity или Godot?',
119
+ answer: 'Обфускация XOR выполняет побитовую операцию XOR над байтами UTF-8 JSON строки с использованием символов секретного ключа, после чего результат кодируется в Base64.',
120
+ },
121
+ ],
122
+ howTo: [
123
+ {
124
+ name: 'Загрузить или Вставить Файл Сохранения',
125
+ text: 'Загрузите ваш зашифрованный файл сохранения или перетащите его в зону загрузки.',
126
+ },
127
+ {
128
+ name: 'Выбрать Метод Декодирования и Ключ',
129
+ text: 'Выберите Base64 или Маску XOR и введите секретный ключ.',
130
+ },
131
+ {
132
+ name: 'Отредактировать JSON',
133
+ text: 'Изменяйте уровни, золото, предметы инвентаря и флаги прямо в редакторе.',
134
+ },
135
+ {
136
+ name: 'Зашифровать и Экспортировать',
137
+ text: 'Скачайте измененный файл сохранения, готовый для тестирования в игре.',
138
+ },
139
+ ],
140
+ schemas: [
141
+ {
142
+ '@context': 'https://schema.org',
143
+ '@type': 'SoftwareApplication',
144
+ name: 'Редактор Сохранений Игр',
145
+ applicationCategory: 'DeveloperApplication',
146
+ operatingSystem: 'Any',
147
+ offers: {
148
+ '@type': 'Offer',
149
+ price: '0',
150
+ priceCurrency: 'RUB',
151
+ },
152
+ },
153
+ {
154
+ '@context': 'https://schema.org',
155
+ '@type': 'FAQPage',
156
+ mainEntity: [
157
+ {
158
+ '@type': 'Question',
159
+ name: 'Загружаются ли мои файлы сохранений на удаленный сервер?',
160
+ acceptedAnswer: {
161
+ '@type': 'Answer',
162
+ text: 'Нет. Все процессы происходят на 100% локально в браузере.',
163
+ },
164
+ },
165
+ ],
166
+ },
167
+ {
168
+ '@context': 'https://schema.org',
169
+ '@type': 'HowTo',
170
+ name: 'Как Редактировать Зашифрованные Файлы Сохранений Игр',
171
+ step: [
172
+ {
173
+ '@type': 'HowToStep',
174
+ name: 'Загрузить Файл',
175
+ text: 'Загрузите ваш зашифрованный файл сохранения.',
176
+ },
177
+ ],
178
+ },
179
+ ],
180
+ bibliographyTitle: 'Ссылки и Дополнительные Материалы',
181
+ bibliography: bibliographyEntries,
182
+ };
@@ -0,0 +1,182 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+ import type { SaveFileEditorUI } from '../ui';
3
+ import { bibliographyEntries } from '../bibliography';
4
+
5
+ export const content: ToolLocaleContent<SaveFileEditorUI> = {
6
+ slug: 'spelsparfils-editor',
7
+ title: 'Spelsparfils Obfuskator och Editor',
8
+ description: 'Avkoda, inspektera, redigera JSON data och kryptera om spelsparfiler med Base64, XOR maskering eller klartext 100% lokalt i din webbläsare.',
9
+ ui: {
10
+ title: 'Spelsparfils Obfuskator & Editor',
11
+ subtitle: 'Inspektera, ändra och kryptera lokala sparfiler säkert utan serverläckor',
12
+ dropSaveFile: 'Dra och släpp spelsparfilen här',
13
+ orSelectFile: 'eller klicka för att välja lokal fil',
14
+ encryptionMethod: 'Krypteringsformat',
15
+ methodBase64: 'Base64 Kodning',
16
+ methodXor: 'XOR Mask + Base64',
17
+ methodRaw: 'Klartext JSON / Okrypterad',
18
+ xorKeyLabel: 'XOR Hemlig Nyckel',
19
+ xorKeyPlaceholder: 't.ex. MinHemligaSpelnyckel2026',
20
+ jsonRawTitle: 'Avkodad JSON Data (Live Editor)',
21
+ encodeAndDownload: 'Kryptera och Ladda Ner Sparfil',
22
+ copyEncoded: 'Kopiera Krypterad Text',
23
+ copiedNotice: 'Kopierat till Urklipp!',
24
+ decodedKeysCount: 'Totalt Antal Parametrar',
25
+ dataSize: 'Datastorlek',
26
+ detectedFormat: 'Identifierat Format',
27
+ exportPreviewLabel: 'Förhandsgranskning av Krypterad Utdata',
28
+ decodePanelTitle: 'Avkodning och Live JSON Editor',
29
+ exportPanelTitle: 'Omkrypterad Utdata',
30
+ decodeError: 'Misslyckades med att avkoda sparfilen',
31
+ bytesUnit: 'B',
32
+ },
33
+ seo: [
34
+ {
35
+ type: 'title',
36
+ level: 2,
37
+ text: 'Säkerhets och Obfuskationsprotokoll för Spelsparfiler',
38
+ },
39
+ {
40
+ type: 'paragraph',
41
+ html: 'Datorspel serialiserar regelbundet spelarens framsteg, inventarieförråd, upplåsta nivåer och karaktärsegenskaper till permanenta lagringsformat mellan spelsessioner. För att förhindra obehöriga ändringar i vanliga textredigerare obfuskerar spelstudior sparfiler med binära kodningsscheman som Base64 eller bitvis XOR maskering mot en hemlig nyckel. Under interna kvalitetssäkringstester QA och felsökning behöver utvecklingsteam omedelbar tillgång till att inspektera råa JSON strukturer, testa gränsvärden och återkryptera ändrade data utan att behöva kompilera om hela spelet.',
42
+ },
43
+ {
44
+ type: 'stats',
45
+ columns: 4,
46
+ items: [
47
+ { label: 'Klientens Integritet', value: '100% Lokal' },
48
+ { label: 'Avkodare Som Stöds', value: 'Base64 / XOR / JSON' },
49
+ { label: 'Avkodningsfördröjning', value: '0 ms' },
50
+ { label: 'Dataintegritetsrisk', value: 'Noll' },
51
+ ],
52
+ },
53
+ {
54
+ type: 'title',
55
+ level: 2,
56
+ text: 'Jämförelse av Obfuskationsmetoder',
57
+ },
58
+ {
59
+ type: 'comparative',
60
+ columns: 3,
61
+ items: [
62
+ {
63
+ title: 'Base64 Kodning',
64
+ description: 'Snabb textkonvertering som förhindrar enkla ändringar i Anteckningar men saknar kryptografisk säkerhet.',
65
+ },
66
+ {
67
+ title: 'XOR Maskering + Base64',
68
+ description: 'Standardmetod inom oberoende spelutveckling. Blandar textbytes med en hemlig nyckel mot minnesredigerare.',
69
+ },
70
+ {
71
+ title: 'Klartext JSON',
72
+ description: 'Läsbar sparfil utan kryptering. Idealisk för tidiga prototypbyggen och interna felsökningar.',
73
+ },
74
+ ],
75
+ },
76
+ {
77
+ type: 'title',
78
+ level: 2,
79
+ text: 'QA Testmetoder för Verifiering av Sparfiler',
80
+ },
81
+ {
82
+ type: 'tip',
83
+ title: 'Bästa Praxis för Säkerhet i Sparfiler under QA',
84
+ html: 'Använd alltid separata felsökningsnycklar för interna testbyggen. Använd lokala inspektörer för att verifiera gränsvärden utan att kompilera om spelkoden.',
85
+ },
86
+ {
87
+ type: 'title',
88
+ level: 2,
89
+ text: 'Vägledningstabell för Spelparametrar',
90
+ },
91
+ {
92
+ type: 'table',
93
+ headers: ['Datatyp', 'Rekommenderat Format', 'Vanligt Användningsområde', 'Obfuskationslager'],
94
+ rows: [
95
+ ['Numeriska Heltal', '32-bitars Heltal', 'Mynt, Nivå, XP, Ammunition', 'XOR-maskerad'],
96
+ ['Boolska Flaggor', 'Standard Boolean', 'Tutorial Slutförd, Boss Besegrad', 'Base64 / XOR'],
97
+ ['Nästlade Objekt', 'JSON Hierarki', 'Spelarinventarium, Färdighetsträd', 'Base64-kodad'],
98
+ ['Tidsstämplar', 'ISO 8601 UTC', 'Daglig Inloggning, Spartidsstämpel', 'XOR-maskerad'],
99
+ ],
100
+ },
101
+ {
102
+ type: 'title',
103
+ level: 2,
104
+ text: 'Reverse Engineering och Skydd Mot Manipulation',
105
+ },
106
+ {
107
+ type: 'paragraph',
108
+ html: 'Även om obfuskering på klientsidan förhindrar vanliga spelare från att ändra sparfiler, är XOR och Base64 inte fullständiga kryptografiska algoritmer. Verktyg för minnesanalys som RenderDoc eller x64dbg kan utläsa nyckelgenerering direkt från kompilerade filer. För tävlingsinriktade flerspelarspel krävs validering på serversidan eller kryptografiska HMAC signaturer.',
109
+ },
110
+ ],
111
+ faqTitle: 'Vanliga Frågor',
112
+ faq: [
113
+ {
114
+ question: 'Laddas mina sparfiler upp till en extern server?',
115
+ answer: 'Nej. All avkodning, JSON redigering och återkryptering sker till 100% lokalt i din webbläsare.',
116
+ },
117
+ {
118
+ question: 'Hur fungerar XOR maskering i spelmotorer som Unity eller Godot?',
119
+ answer: 'XOR maskering utför bitvisa XOR operationer på UTF-8 bytes i JSON strängen med tecknen från en hemlig nyckel.',
120
+ },
121
+ ],
122
+ howTo: [
123
+ {
124
+ name: 'Ladda eller Klistra In Sparfil',
125
+ text: 'Ladda upp din krypterade sparfil eller dra den till uppladdningsytan.',
126
+ },
127
+ {
128
+ name: 'Välj Avkodningsmetod och Nyckel',
129
+ text: 'Välj Base64 eller XOR Maskering och ange nyckeln.',
130
+ },
131
+ {
132
+ name: 'Redigera JSON Data',
133
+ text: 'Ändra nivåer, guld, föremål och spelinställningar direkt i live editorn.',
134
+ },
135
+ {
136
+ name: 'Kryptera och Exportera',
137
+ text: 'Ladda ner den modifierade sparfilen redo för testning.',
138
+ },
139
+ ],
140
+ schemas: [
141
+ {
142
+ '@context': 'https://schema.org',
143
+ '@type': 'SoftwareApplication',
144
+ name: 'Spelsparfils Editor',
145
+ applicationCategory: 'DeveloperApplication',
146
+ operatingSystem: 'Any',
147
+ offers: {
148
+ '@type': 'Offer',
149
+ price: '0',
150
+ priceCurrency: 'SEK',
151
+ },
152
+ },
153
+ {
154
+ '@context': 'https://schema.org',
155
+ '@type': 'FAQPage',
156
+ mainEntity: [
157
+ {
158
+ '@type': 'Question',
159
+ name: 'Laddas mina sparfiler upp till en extern server?',
160
+ acceptedAnswer: {
161
+ '@type': 'Answer',
162
+ text: 'Nej. All behandling sker 100% lokalt i webbläsaren.',
163
+ },
164
+ },
165
+ ],
166
+ },
167
+ {
168
+ '@context': 'https://schema.org',
169
+ '@type': 'HowTo',
170
+ name: 'Hur man Redigerar Krypterade Spelsparfiler',
171
+ step: [
172
+ {
173
+ '@type': 'HowToStep',
174
+ name: 'Ladda Sparfil',
175
+ text: 'Ladda upp din krypterade sparfil.',
176
+ },
177
+ ],
178
+ },
179
+ ],
180
+ bibliographyTitle: 'Referenser och Vidare Läsning',
181
+ bibliography: bibliographyEntries,
182
+ };
@@ -0,0 +1,182 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+ import type { SaveFileEditorUI } from '../ui';
3
+ import { bibliographyEntries } from '../bibliography';
4
+
5
+ export const content: ToolLocaleContent<SaveFileEditorUI> = {
6
+ slug: 'oyun-kayit-dosyasi-duzenleyici',
7
+ title: 'Oyun Kayıt Dosyası Karartıcı ve Düzenleyici',
8
+ description: 'Base64, XOR maskeleme veya düz metin kullanarak oyun kayıt dosyalarını tarayıcınızda %100 yerel olarak çözün, inceleyin, JSON verilerini düzenleyin ve yeniden şifreleyin.',
9
+ ui: {
10
+ title: 'Oyun Kayıt Dosyası Karartıcı & Düzenleyici',
11
+ subtitle: 'Sunucuya veri göndermeden yerel kayıt dosyalarını güvenle inceleyin, değiştirin ve şifreleyin',
12
+ dropSaveFile: 'Oyun kayıt dosyasını buraya sürükleyip bırakın',
13
+ orSelectFile: 'veya yerel dosya seçmek için tıklayın',
14
+ encryptionMethod: 'Şifreleme Biçimi',
15
+ methodBase64: 'Base64 Kodlama',
16
+ methodXor: 'XOR Maskesi + Base64',
17
+ methodRaw: 'Düz JSON / Şifresiz',
18
+ xorKeyLabel: 'Gizli XOR Anahtarı',
19
+ xorKeyPlaceholder: 'ör. GizliOyunAnahtarim2026',
20
+ jsonRawTitle: 'Çözülmüş JSON Verisi (Canlı Düzenleyici)',
21
+ encodeAndDownload: 'Şifrele ve Dosyayı İndir',
22
+ copyEncoded: 'Şifrelenmiş Metni Kopyala',
23
+ copiedNotice: 'Panoya Kopyalandı!',
24
+ decodedKeysCount: 'Toplam Parametre',
25
+ dataSize: 'Veri Boyutu',
26
+ detectedFormat: 'Algılanan Biçim',
27
+ exportPreviewLabel: 'Şifrelenmiş Çıktı Önizlemesi',
28
+ decodePanelTitle: 'Çözümleme ve Canlı JSON Düzenleyici',
29
+ exportPanelTitle: 'Yeniden Şifrelenmiş Çıktı Verisi',
30
+ decodeError: 'Kayıt dosyasının şifresi çözülemedi',
31
+ bytesUnit: 'B',
32
+ },
33
+ seo: [
34
+ {
35
+ type: 'title',
36
+ level: 2,
37
+ text: 'Oyun Kayıt Dosyası Güvenliği ve Karartma Protokolleri',
38
+ },
39
+ {
40
+ type: 'paragraph',
41
+ html: 'Oyunlar, oyuncunun ilerleme durumunu, envanter sayısını, açılan seviyeleri ve karakter özelliklerini oturumlar arasında korumak için kalıcı depolama biçimlerine dönüştürür. Son kullanıcıların düz metin düzenleyicileriyle izinsiz değişiklik yapmasını önlemek için oyun stüdyoları, kayıt dosyalarını Base64 veya gizli bir anahtar kullanarak bit düzeyinde XOR maskeleme ile karartır. İç Kalite Kontrol QA testleri ve canlı operasyon hatası giderme sırasında geliştirme ekipleri, JSON yapılarını incelemek, sınır durumlarını test etmek ve oyun dosyalarını yeniden derlemeden değiştirilmiş verileri şifrelemek için anlık araçlara ihtiyaç duyar.',
42
+ },
43
+ {
44
+ type: 'stats',
45
+ columns: 4,
46
+ items: [
47
+ { label: 'İstemci İşleme Gizliliği', value: '%100 Yerel' },
48
+ { label: 'Desteklenen Çözücüler', value: 'Base64 / XOR / JSON' },
49
+ { label: 'Çözümleme Gecikmesi', value: '0 ms' },
50
+ { label: 'Veri Sızıntısı Riski', value: 'Sıfır' },
51
+ ],
52
+ },
53
+ {
54
+ type: 'title',
55
+ level: 2,
56
+ text: 'Karartma Yöntemlerinin Karşılaştırılması',
57
+ },
58
+ {
59
+ type: 'comparative',
60
+ columns: 3,
61
+ items: [
62
+ {
63
+ title: 'Base64 Kodlama',
64
+ description: 'Not defterinde basit düzenlemeleri engelleyen hızlı metin dönüştürme yöntemi ancak kriptografik güvenlik sağlamaz.',
65
+ },
66
+ {
67
+ title: 'XOR Maskeleme + Base64',
68
+ description: 'Bağımsız oyun geliştirmede standart uygulama. Bellek düzenleyicilerine karşı metin baytlarını gizli bir anahtarla harmanlar.',
69
+ },
70
+ {
71
+ title: 'Düz JSON Verisi',
72
+ description: 'Şifrelenmemiş okunabilir kayıt durumu. İlk prototip oluşturma ve dahili hata ayıklama için idealdir.',
73
+ },
74
+ ],
75
+ },
76
+ {
77
+ type: 'title',
78
+ level: 2,
79
+ text: 'Kayıt Durumu Doğrulaması İçin QA Test Uygulamaları',
80
+ },
81
+ {
82
+ type: 'tip',
83
+ title: 'QA Sırasında Kayıt Dosyası Güvenliği İçin En İyi Uygulamalar',
84
+ html: 'Dahili sürümler ve üretim sürümleri için her zaman ayrı hata ayıklama anahtarları kullanın. Sınır hatalarını doğrularken oyun kodunu yeniden derlemeden yerel düzenleyicileri kullanın.',
85
+ },
86
+ {
87
+ type: 'title',
88
+ level: 2,
89
+ text: 'Oyun Durumu Parametre Yönergeleri Tablosu',
90
+ },
91
+ {
92
+ type: 'table',
93
+ headers: ['Veri Türü', 'Önerilen Biçim', 'Yaygın Kullanım Alanı', 'Karartma Katmanı'],
94
+ rows: [
95
+ ['Sayısal Tamsayılar', '32-bit Tamsayı', 'Altın, Seviye, XP, Cephane', 'XOR Maskeli'],
96
+ ['Mantıksal Bayraklar', 'Standart Boolean', 'Eğitim Tamamlandı, Patron Yenildi', 'Base64 / XOR'],
97
+ ['İç İçe Nesneler', 'JSON Hiyerarşisi', 'Oyuncu Envanteri, Yetenek Ağacı', 'Base64 Kodlu'],
98
+ ['Zaman Damgası Metni', 'ISO 8601 UTC', 'Günlük Giriş, Kayıt Zamanı', 'XOR Maskeli'],
99
+ ],
100
+ },
101
+ {
102
+ type: 'title',
103
+ level: 2,
104
+ text: 'Tersine Mühendislik ve Kurcalamaya Karşı Koruma',
105
+ },
106
+ {
107
+ type: 'paragraph',
108
+ html: 'İstemci tarafındaki karartma sıradan oyuncuların kayıt dosyalarını değiştirmesini engellese de XOR ve Base64 gerçek kriptografik algoritmalar değildir. RenderDoc veya x64dbg gibi bellek analiz araçları derlenmiş dosyalardan anahtar oluşturma kodlarını inceleyebilir. Rekabetçi çok oyunculu oyunlar için sunucu tarafı doğrulaması veya HMAC imzaları gereklidir.',
109
+ },
110
+ ],
111
+ faqTitle: 'Sıkça Sorulan Sorular',
112
+ faq: [
113
+ {
114
+ question: 'Oyun kayıt dosyalarım uzak bir sunucuya yükleniyor mu?',
115
+ answer: 'Hayır. Tüm çözümleme, JSON düzenleme ve yeniden şifreleme işlemleri %100 web tarayıcınızın içinde yerel olarak gerçekleşir.',
116
+ },
117
+ {
118
+ question: 'Unity veya Godot gibi motorlarda XOR karartması nasıl çalışır?',
119
+ answer: 'XOR karartması, JSON metninin UTF-8 baytları üzerinde gizli bir anahtarın karakterleriyle bit düzeyinde XOR işlemi uygular.',
120
+ },
121
+ ],
122
+ howTo: [
123
+ {
124
+ name: 'Kayıt Dosyasını Yükleyin veya Yapıştırın',
125
+ text: 'Şifrelenmiş kayıt dosyanızı yükleyin veya sürükleyip bırakın.',
126
+ },
127
+ {
128
+ name: 'Çözümleme Yöntemini ve Anahtarı Seçin',
129
+ text: 'Base64 veya XOR Maskelemeyi seçin ve gizli anahtarı girin.',
130
+ },
131
+ {
132
+ name: 'JSON Durumunu Düzenleyin',
133
+ text: 'Canlı düzenleyicide seviye, altın, eşya ve oyun bayraklarını değiştirin.',
134
+ },
135
+ {
136
+ name: 'Şifreleyin ve Dışa Aktarın',
137
+ text: 'Test için hazır olan yeni şifrelenmiş kayıt dosyasını indirin.',
138
+ },
139
+ ],
140
+ schemas: [
141
+ {
142
+ '@context': 'https://schema.org',
143
+ '@type': 'SoftwareApplication',
144
+ name: 'Oyun Kayıt Dosyası Düzenleyici',
145
+ applicationCategory: 'DeveloperApplication',
146
+ operatingSystem: 'Any',
147
+ offers: {
148
+ '@type': 'Offer',
149
+ price: '0',
150
+ priceCurrency: 'TRY',
151
+ },
152
+ },
153
+ {
154
+ '@context': 'https://schema.org',
155
+ '@type': 'FAQPage',
156
+ mainEntity: [
157
+ {
158
+ '@type': 'Question',
159
+ name: 'Oyun kayıt dosyalarım uzak bir sunucuya yükleniyor mu?',
160
+ acceptedAnswer: {
161
+ '@type': 'Answer',
162
+ text: 'Hayır. Tüm işlemler %100 tarayıcınızda gerçekleşir.',
163
+ },
164
+ },
165
+ ],
166
+ },
167
+ {
168
+ '@context': 'https://schema.org',
169
+ '@type': 'HowTo',
170
+ name: 'Şifreli Oyun Kayıt Dosyaları Nasıl Düzenlenir',
171
+ step: [
172
+ {
173
+ '@type': 'HowToStep',
174
+ name: 'Dosyayı Yükleyin',
175
+ text: 'Şifrelenmiş kayıt dosyanızı yükleyin.',
176
+ },
177
+ ],
178
+ },
179
+ ],
180
+ bibliographyTitle: 'Kaynaklar ve Ek Okumalar',
181
+ bibliography: bibliographyEntries,
182
+ };