@jjlmoya/utils-forensic-science 1.13.0 → 1.14.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.
- package/package.json +2 -1
- package/src/category/index.ts +61 -59
- package/src/category/seo.astro +1 -1
- package/src/components/PreviewNavSidebar.astro +1 -1
- package/src/components/PreviewToolbar.astro +1 -1
- package/src/data.ts +1 -1
- package/src/entries.ts +70 -68
- package/src/env.d.ts +1 -1
- package/src/index.ts +32 -31
- package/src/pages/[locale]/[slug].astro +161 -159
- package/src/pages/[locale].astro +8 -5
- package/src/pages/index.astro +1 -1
- package/src/tests/bibliography_wellformed_export.test.ts +46 -0
- package/src/tests/diacritics_density.test.ts +1 -1
- package/src/tests/faq_count.test.ts +19 -19
- package/src/tests/i18n_coverage.test.ts +36 -36
- package/src/tests/inverted_punctuation.test.ts +1 -1
- package/src/tests/locale_completeness.test.ts +2 -2
- package/src/tests/mocks/astro_mock.js +1 -1
- package/src/tests/no_h1_in_components.test.ts +1 -1
- package/src/tests/script_density.test.ts +94 -94
- package/src/tests/seo_length.test.ts +46 -46
- package/src/tests/seo_parity.test.ts +2 -7
- package/src/tests/seo_translation_completeness.test.ts +68 -0
- package/src/tests/seo_wellformed_export.test.ts +65 -0
- package/src/tests/tool_validation.test.ts +2 -2
- package/src/tests/translation_copy.test.ts +23 -24
- package/src/tool/bloodstain-pattern-origin-analyzer/component.astro +9 -9
- package/src/tool/bloodstain-pattern-origin-analyzer/i18n/zh.ts +1 -1
- package/src/tool/dna-profile-match-probability-lab/bibliography.astro +14 -0
- package/src/tool/dna-profile-match-probability-lab/bibliography.ts +16 -0
- package/src/tool/dna-profile-match-probability-lab/component.astro +121 -0
- package/src/tool/dna-profile-match-probability-lab/controller.ts +159 -0
- package/src/tool/dna-profile-match-probability-lab/dna-profile-match-probability-lab.css +485 -0
- package/src/tool/dna-profile-match-probability-lab/dom-views.ts +93 -0
- package/src/tool/dna-profile-match-probability-lab/entry.ts +29 -0
- package/src/tool/dna-profile-match-probability-lab/evaluator.ts +19 -0
- package/src/tool/dna-profile-match-probability-lab/i18n/de.ts +43 -0
- package/src/tool/dna-profile-match-probability-lab/i18n/en.ts +196 -0
- package/src/tool/dna-profile-match-probability-lab/i18n/es.ts +40 -0
- package/src/tool/dna-profile-match-probability-lab/i18n/fr.ts +10 -0
- package/src/tool/dna-profile-match-probability-lab/i18n/id.ts +41 -0
- package/src/tool/dna-profile-match-probability-lab/i18n/it.ts +10 -0
- package/src/tool/dna-profile-match-probability-lab/i18n/ja.ts +40 -0
- package/src/tool/dna-profile-match-probability-lab/i18n/ko.ts +40 -0
- package/src/tool/dna-profile-match-probability-lab/i18n/nl.ts +29 -0
- package/src/tool/dna-profile-match-probability-lab/i18n/pl.ts +10 -0
- package/src/tool/dna-profile-match-probability-lab/i18n/pt.ts +41 -0
- package/src/tool/dna-profile-match-probability-lab/i18n/ru.ts +29 -0
- package/src/tool/dna-profile-match-probability-lab/i18n/sv.ts +41 -0
- package/src/tool/dna-profile-match-probability-lab/i18n/tr.ts +10 -0
- package/src/tool/dna-profile-match-probability-lab/i18n/zh.ts +29 -0
- package/src/tool/dna-profile-match-probability-lab/index.ts +11 -0
- package/src/tool/dna-profile-match-probability-lab/localize.ts +107 -0
- package/src/tool/dna-profile-match-probability-lab/logic.test.ts +56 -0
- package/src/tool/dna-profile-match-probability-lab/logic.ts +139 -0
- package/src/tool/dna-profile-match-probability-lab/seo.astro +15 -0
- package/src/tool/dna-profile-match-probability-lab/storage.ts +26 -0
- package/src/tool/dna-profile-match-probability-lab/ui.ts +3 -0
- package/src/tool/fire-pattern-origin-analyzer/component.astro +1 -1
- package/src/tool/fire-pattern-origin-analyzer/i18n/zh.ts +5 -1
- package/src/tool/fire-pattern-origin-analyzer/logic.ts +9 -2
- package/src/tool/fire-pattern-origin-analyzer/view-bindings.ts +8 -4
- package/src/tool/fire-pattern-origin-analyzer/view-model.ts +6 -2
- package/src/tool/forensic-age-estimator/bibliography.astro +1 -1
- package/src/tool/forensic-age-estimator/component.astro +1 -1
- package/src/tool/forensic-age-estimator/entry.ts +17 -17
- package/src/tool/forensic-age-estimator/i18n/de.ts +244 -244
- package/src/tool/forensic-age-estimator/i18n/en.ts +244 -244
- package/src/tool/forensic-age-estimator/i18n/es.ts +244 -244
- package/src/tool/forensic-age-estimator/i18n/fr.ts +244 -244
- package/src/tool/forensic-age-estimator/i18n/id.ts +244 -244
- package/src/tool/forensic-age-estimator/i18n/it.ts +244 -244
- package/src/tool/forensic-age-estimator/i18n/nl.ts +244 -244
- package/src/tool/forensic-age-estimator/i18n/pl.ts +244 -244
- package/src/tool/forensic-age-estimator/i18n/pt.ts +244 -244
- package/src/tool/forensic-age-estimator/i18n/ru.ts +244 -244
- package/src/tool/forensic-age-estimator/i18n/sv.ts +244 -244
- package/src/tool/forensic-age-estimator/i18n/tr.ts +244 -244
- package/src/tool/forensic-age-estimator/i18n/zh.ts +245 -245
- package/src/tool/forensic-age-estimator/index.ts +1 -1
- package/src/tool/forensic-age-estimator/seo.astro +1 -1
- package/src/tool/forensic-blood-test-simulator/component.astro +1 -1
- package/src/tool/forensic-fiber-comparison-microscope/component.astro +1 -1
- package/src/tool/forensic-fiber-comparison-microscope/render.ts +1 -1
- package/src/tool/forensic-fiber-comparison-microscope/view.ts +1 -1
- package/src/tool/forensic-fingerprint-minutiae-identifier/component.astro +2 -2
- package/src/tool/forensic-fingerprint-minutiae-identifier/i18n/ja.ts +2 -1
- package/src/tool/forensic-fingerprint-minutiae-identifier/i18n/zh.ts +2 -0
- package/src/tool/forensic-fingerprint-minutiae-identifier/renderer.ts +9 -8
- package/src/tool/forensic-glass-becke-line-simulator/component.astro +1 -1
- package/src/tool/forensic-glass-becke-line-simulator/view.ts +8 -6
- package/src/tool/forensic-image-authenticity-analyzer/component.astro +1 -1
- package/src/tool/forensic-image-authenticity-analyzer/i18n/de.ts +105 -105
- package/src/tool/forensic-image-authenticity-analyzer/i18n/en.ts +105 -105
- package/src/tool/forensic-image-authenticity-analyzer/i18n/es.ts +105 -105
- package/src/tool/forensic-image-authenticity-analyzer/i18n/fr.ts +105 -105
- package/src/tool/forensic-image-authenticity-analyzer/i18n/id.ts +95 -90
- package/src/tool/forensic-image-authenticity-analyzer/i18n/it.ts +105 -105
- package/src/tool/forensic-image-authenticity-analyzer/i18n/ja.ts +7 -2
- package/src/tool/forensic-image-authenticity-analyzer/i18n/ko.ts +4 -1
- package/src/tool/forensic-image-authenticity-analyzer/i18n/nl.ts +95 -92
- package/src/tool/forensic-image-authenticity-analyzer/i18n/pl.ts +95 -92
- package/src/tool/forensic-image-authenticity-analyzer/i18n/pt.ts +105 -105
- package/src/tool/forensic-image-authenticity-analyzer/i18n/ru.ts +97 -92
- package/src/tool/forensic-image-authenticity-analyzer/i18n/sv.ts +97 -93
- package/src/tool/forensic-image-authenticity-analyzer/i18n/tr.ts +98 -93
- package/src/tool/forensic-image-authenticity-analyzer/i18n/zh.ts +11 -0
- package/src/tool/forensic-microcrystal-drug-simulator/component.astro +1 -1
- package/src/tool/forensic-sex-determinator/component.astro +3 -2
- package/src/tool/forensic-stature-estimator/component.astro +1 -1
- package/src/tool/forensic-stature-estimator/i18n/id.ts +4 -0
- package/src/tool/forensic-stature-estimator/i18n/nl.ts +4 -0
- package/src/tool/forensic-stature-estimator/i18n/ru.ts +4 -0
- package/src/tool/forensic-tlc-ink-simulator/component.astro +1 -1
- package/src/tool/forensic-tlc-ink-simulator/i18n/zh.ts +1 -0
- package/src/tool/forensic-toolmark-striation-matcher/component.astro +1 -1
- package/src/tool/forensic-toolmark-striation-matcher/logic.ts +1 -1
- package/src/tool/forensic-toolmark-striation-matcher/renderer.ts +7 -6
- package/src/tool/forensic-toolmark-striation-matcher/view.ts +19 -20
- package/src/tool/gsr-dispersion-calculator/component.astro +1 -1
- package/src/tool/gsr-dispersion-calculator/logic.ts +1 -1
- package/src/tool/time-of-death-algor-mortis-calculator/entry.ts +2 -0
- package/src/tool/widmark-alcohol-simulator/component.astro +1 -1
- package/src/tool/widmark-alcohol-simulator/i18n/de.ts +5 -0
- package/src/tool/widmark-alcohol-simulator/i18n/fr.ts +2 -1
- package/src/tool/widmark-alcohol-simulator/i18n/id.ts +1 -0
- package/src/tool/widmark-alcohol-simulator/i18n/it.ts +4 -1
- package/src/tool/widmark-alcohol-simulator/i18n/ja.ts +4 -1
- package/src/tool/widmark-alcohol-simulator/i18n/nl.ts +5 -1
- package/src/tool/widmark-alcohol-simulator/i18n/pl.ts +5 -1
- package/src/tool/widmark-alcohol-simulator/i18n/pt.ts +5 -1
- package/src/tool/widmark-alcohol-simulator/i18n/ru.ts +4 -1
- package/src/tool/widmark-alcohol-simulator/i18n/sv.ts +5 -1
- package/src/tool/widmark-alcohol-simulator/i18n/tr.ts +4 -1
- package/src/tool/widmark-alcohol-simulator/i18n/zh.ts +4 -1
- package/src/tools.ts +37 -35
- package/src/types.ts +4 -4
|
@@ -1,94 +1,99 @@
|
|
|
1
|
-
import { bibliography } from '../bibliography';
|
|
2
|
-
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
-
|
|
4
|
-
const slug = 'forenzicheskiy-analizator-metadannyh-i-podlinnosti-izobrazheniy';
|
|
5
|
-
const title = 'Форензический анализатор метаданных и подлинности изображений';
|
|
6
|
-
const description = 'Проверяйте заголовки изображений, EXIF-данные съемки, GPS-координаты, следы редакторов и сырые байты локально в браузере.';
|
|
7
|
-
|
|
8
|
-
const howTo = [
|
|
9
|
-
{ name: 'Сохраните исходное доказательство', text: 'Работайте с форензической копией и храните исходный файл и его криптографический хэш вне этого браузерного инструмента.' },
|
|
10
|
-
{ name: 'Загрузите изображение локально', text: 'Перетащите или выберите JPEG либо PNG. Файл читается в памяти браузера и не загружается в сеть.' },
|
|
11
|
-
{ name: 'Проверьте метаданные и местоположение', text: 'Сопоставьте время съемки, данные камеры, программное обеспечение и GPS-поля с материалами дела и журналом получения.' },
|
|
12
|
-
{ name: 'Интерпретируйте сигналы целостности', text: 'Сигнатуры редактирования и отсутствующие поля рассматривайте как следственные зацепки, а не как доказательство подделки.' },
|
|
13
|
-
{ name: 'Изучите шестнадцатеричный просмотр', text: 'Используйте выделенные зоны заголовка и метаданных, чтобы распознать структуру контейнера и зафиксировать смещения для дальнейшего анализа.' },
|
|
14
|
-
];
|
|
15
|
-
|
|
16
|
-
const faq = [
|
|
17
|
-
{ question: 'Могут ли метаданные доказать подлинность фотографии?', answer: 'Нет. Метаданные можно удалить, скопировать или изменить. Установление подлинности требует сочетания структуры файла, происхождения, хэшей, визуального анализа, анализа сжатия и валидированных форензических методов.' },
|
|
18
|
-
{ question: 'Доказывает ли след Adobe или GIMP злонамеренное редактирование?', answer: 'Нет. Это лишь указывает на то, что программное обеспечение могло записать метаданные или экспортировать файл. Законная цветокоррекция, редакционная обработка или подготовка доказательства могут оставить тот же след.' },
|
|
19
|
-
{ question: 'Загружается ли изображение в сеть?', answer: 'Нет. Анализ выполняется в памяти браузера. Тем не менее перед открытием чувствительных материалов в любом ПО соблюдайте политику обращения с доказательствами вашей организации.' },
|
|
20
|
-
{ question: 'Почему GPS-данные могут отсутствовать?', answer: 'Камера могла не поддерживать GPS, запись местоположения могла быть отключена, платформа могла удалить метаданные, либо файл мог быть перекодирован.' },
|
|
21
|
-
];
|
|
22
|
-
|
|
23
|
-
export const content: ToolLocaleContent = {
|
|
24
|
-
slug,
|
|
25
|
-
title,
|
|
26
|
-
description,
|
|
27
|
-
ui: {
|
|
28
|
-
privacy: 'Только локальное двоичное исследование',
|
|
29
|
-
dropTitle: 'Поместите изображение на стол доказательств',
|
|
30
|
-
dropHint: 'Перетащите сюда JPEG или PNG либо выберите файл. Ничего не загружается.',
|
|
31
|
-
chooseFile: 'Выбрать изображение',
|
|
32
|
-
replaceFile: 'Заменить изображение',
|
|
33
|
-
waiting: 'Ожидание доказательства',
|
|
34
|
-
metadata: 'Метаданные съемки',
|
|
35
|
-
integrity: 'Сигналы целостности',
|
|
36
|
-
location: 'Зафиксированное местоположение',
|
|
37
|
-
hex: 'Шестнадцатеричное окно доказательств',
|
|
38
|
-
hexHint: 'Первые 512 байт · бирюзовый заголовок · янтарные метаданные · нейтральные данные изображения',
|
|
39
|
-
noData: 'Нет читаемого значения',
|
|
40
|
-
noGps: 'Читаемые GPS-координаты не найдены.',
|
|
41
|
-
mapLink: 'Открыть координаты в OpenStreetMap',
|
|
42
|
-
score: 'Эвристическая уверенность',
|
|
43
|
-
disclaimer: 'Высокий балл не доказывает подлинность. Сохраняйте оригинал, вычисляйте криптографические хэши и используйте валидированные лабораторные процедуры для выводов по делу.',
|
|
44
|
-
fileName: 'Файл',
|
|
45
|
-
fileSize: 'Размер',
|
|
46
|
-
fileType: 'Контейнер',
|
|
47
|
-
camera: 'Камера',
|
|
48
|
-
captured: 'Снято',
|
|
49
|
-
software: 'Программное обеспечение',
|
|
50
|
-
coordinates: 'Координаты',
|
|
51
|
-
statusNoObvious: 'Явных признаков редактирования не обнаружено',
|
|
52
|
-
statusReview: 'Рекомендуется проверка',
|
|
53
|
-
statusEditing: 'Обнаружен след редактирования',
|
|
54
|
-
processing: 'Чтение двоичных данных...',
|
|
55
|
-
loadError: 'Не удалось проанализировать файл. Выберите корректное изображение JPEG или PNG.',
|
|
56
|
-
},
|
|
57
|
-
seo: [
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
|
|
4
|
+
const slug = 'forenzicheskiy-analizator-metadannyh-i-podlinnosti-izobrazheniy';
|
|
5
|
+
const title = 'Форензический анализатор метаданных и подлинности изображений';
|
|
6
|
+
const description = 'Проверяйте заголовки изображений, EXIF-данные съемки, GPS-координаты, следы редакторов и сырые байты локально в браузере.';
|
|
7
|
+
|
|
8
|
+
const howTo = [
|
|
9
|
+
{ name: 'Сохраните исходное доказательство', text: 'Работайте с форензической копией и храните исходный файл и его криптографический хэш вне этого браузерного инструмента.' },
|
|
10
|
+
{ name: 'Загрузите изображение локально', text: 'Перетащите или выберите JPEG либо PNG. Файл читается в памяти браузера и не загружается в сеть.' },
|
|
11
|
+
{ name: 'Проверьте метаданные и местоположение', text: 'Сопоставьте время съемки, данные камеры, программное обеспечение и GPS-поля с материалами дела и журналом получения.' },
|
|
12
|
+
{ name: 'Интерпретируйте сигналы целостности', text: 'Сигнатуры редактирования и отсутствующие поля рассматривайте как следственные зацепки, а не как доказательство подделки.' },
|
|
13
|
+
{ name: 'Изучите шестнадцатеричный просмотр', text: 'Используйте выделенные зоны заголовка и метаданных, чтобы распознать структуру контейнера и зафиксировать смещения для дальнейшего анализа.' },
|
|
14
|
+
];
|
|
15
|
+
|
|
16
|
+
const faq = [
|
|
17
|
+
{ question: 'Могут ли метаданные доказать подлинность фотографии?', answer: 'Нет. Метаданные можно удалить, скопировать или изменить. Установление подлинности требует сочетания структуры файла, происхождения, хэшей, визуального анализа, анализа сжатия и валидированных форензических методов.' },
|
|
18
|
+
{ question: 'Доказывает ли след Adobe или GIMP злонамеренное редактирование?', answer: 'Нет. Это лишь указывает на то, что программное обеспечение могло записать метаданные или экспортировать файл. Законная цветокоррекция, редакционная обработка или подготовка доказательства могут оставить тот же след.' },
|
|
19
|
+
{ question: 'Загружается ли изображение в сеть?', answer: 'Нет. Анализ выполняется в памяти браузера. Тем не менее перед открытием чувствительных материалов в любом ПО соблюдайте политику обращения с доказательствами вашей организации.' },
|
|
20
|
+
{ question: 'Почему GPS-данные могут отсутствовать?', answer: 'Камера могла не поддерживать GPS, запись местоположения могла быть отключена, платформа могла удалить метаданные, либо файл мог быть перекодирован.' },
|
|
21
|
+
];
|
|
22
|
+
|
|
23
|
+
export const content: ToolLocaleContent = {
|
|
24
|
+
slug,
|
|
25
|
+
title,
|
|
26
|
+
description,
|
|
27
|
+
ui: {
|
|
28
|
+
privacy: 'Только локальное двоичное исследование',
|
|
29
|
+
dropTitle: 'Поместите изображение на стол доказательств',
|
|
30
|
+
dropHint: 'Перетащите сюда JPEG или PNG либо выберите файл. Ничего не загружается.',
|
|
31
|
+
chooseFile: 'Выбрать изображение',
|
|
32
|
+
replaceFile: 'Заменить изображение',
|
|
33
|
+
waiting: 'Ожидание доказательства',
|
|
34
|
+
metadata: 'Метаданные съемки',
|
|
35
|
+
integrity: 'Сигналы целостности',
|
|
36
|
+
location: 'Зафиксированное местоположение',
|
|
37
|
+
hex: 'Шестнадцатеричное окно доказательств',
|
|
38
|
+
hexHint: 'Первые 512 байт · бирюзовый заголовок · янтарные метаданные · нейтральные данные изображения',
|
|
39
|
+
noData: 'Нет читаемого значения',
|
|
40
|
+
noGps: 'Читаемые GPS-координаты не найдены.',
|
|
41
|
+
mapLink: 'Открыть координаты в OpenStreetMap',
|
|
42
|
+
score: 'Эвристическая уверенность',
|
|
43
|
+
disclaimer: 'Высокий балл не доказывает подлинность. Сохраняйте оригинал, вычисляйте криптографические хэши и используйте валидированные лабораторные процедуры для выводов по делу.',
|
|
44
|
+
fileName: 'Файл',
|
|
45
|
+
fileSize: 'Размер',
|
|
46
|
+
fileType: 'Контейнер',
|
|
47
|
+
camera: 'Камера',
|
|
48
|
+
captured: 'Снято',
|
|
49
|
+
software: 'Программное обеспечение',
|
|
50
|
+
coordinates: 'Координаты',
|
|
51
|
+
statusNoObvious: 'Явных признаков редактирования не обнаружено',
|
|
52
|
+
statusReview: 'Рекомендуется проверка',
|
|
53
|
+
statusEditing: 'Обнаружен след редактирования',
|
|
54
|
+
processing: 'Чтение двоичных данных...',
|
|
55
|
+
loadError: 'Не удалось проанализировать файл. Выберите корректное изображение JPEG или PNG.',
|
|
56
|
+
},
|
|
57
|
+
seo: [
|
|
58
58
|
{ type: 'title', text: 'Как анализировать метаданные изображения и признаки подлинности', level: 2 },
|
|
59
|
-
{ type: 'paragraph', html:
|
|
60
|
-
{ type: 'paragraph', html:
|
|
61
|
-
{ type: 'paragraph', html:
|
|
62
|
-
{ type: '
|
|
63
|
-
{ type: 'paragraph', html:
|
|
64
|
-
{ type: '
|
|
65
|
-
{ type: 'paragraph', html: '
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
{ type: 'paragraph', html: "
|
|
73
|
-
{ type: 'paragraph', html: "
|
|
74
|
-
{ type: 'paragraph', html: "
|
|
75
|
-
{ type: 'paragraph', html: "
|
|
76
|
-
{ type: 'paragraph', html: "
|
|
77
|
-
{ type: 'paragraph', html: "
|
|
78
|
-
{ type: 'paragraph', html: "
|
|
79
|
-
{ type: 'paragraph', html: "
|
|
80
|
-
{ type: 'paragraph', html: "
|
|
81
|
-
{ type: 'paragraph', html: "
|
|
82
|
-
{ type: 'paragraph', html: "
|
|
83
|
-
{ type: 'paragraph', html: "
|
|
84
|
-
{ type: 'paragraph', html: "
|
|
85
|
-
{ type: 'paragraph', html: "
|
|
59
|
+
{ type: 'paragraph', html: "Отдельно отмечайте, какие признаки подтверждают рабочую гипотезу, какие ей противоречат и какие данные ещё отсутствуют. Это помогает сохранить границу между технической подсказкой и экспертным выводом." },
|
|
60
|
+
{ type: 'paragraph', html: "Результат проверки является началом анализа происхождения и сохранности файла. Отдельно описывайте подтверждённые признаки, отсутствие ожидаемых признаков и сведения, которые ещё нужно получить. Такая запись не позволяет принять эвристический балл за окончательный вывод о подлинности." },
|
|
61
|
+
{ type: 'paragraph', html: "Расширение файла или один тег не могут доказать формат, историю редактирования или подлинность. Проверяйте фактическую структуру заголовка, размеры пикселей, цветовой профиль, миниатюру и сведения о программе, сопоставляя их с журналом получения. Хеш подтверждает идентичность файла, но не истинность содержания снимка. Учитывайте повторное сжатие и удаление метаданных сервисами обмена, а также фиксируйте границы проверки и оставшуюся неопределённость. Описывайте, какие признаки подтверждают гипотезу, какие ей противоречат и какие сведения ещё требуется получить." },
|
|
62
|
+
{ type: 'paragraph', html: "Отсутствие времени съёмки или GPS не означает автоматически, что изображение изменяли. Настройки камеры, сервис обмена, приватность и повторное сохранение могут удалить или переписать теги. Поэтому сопоставляйте заголовок файла, размеры пикселей, цветовой профиль, миниатюру, теги программ и журнал получения. Сохраните оригинал на контролируемом носителе, вычислите хеш и зафиксируйте копии, конвертации и среду анализа. Рассматривайте результат как основание для дальнейшей проверки и сравнивайте его с происхождением, показаниями, журналами устройства и проверенными методами." },
|
|
63
|
+
{ type: 'paragraph', html: "В журнале отдельно указывайте дату получения, носитель, хеш, среду анализа, проверенные поля, наблюдения и нерешённые вопросы. Не делайте вывод о редактировании только по отсутствующим метаданным. Сопоставляйте результат с происхождением файла, журналом получения и состоянием хранения, чтобы другой специалист мог повторить проверку. Фиксируйте также каждую копию или конвертацию и отличайте эвристическую подсказку от окончательного экспертного заключения." },
|
|
64
|
+
{ type: 'paragraph', html: 'Форензический анализатор метаданных изображения помогает следователям, журналистам, юристам, специалистам по комплаенсу и исследователям отвечать на вопрос с высокой поисковой мотивацией: <strong>что именно метаданные изображения могут рассказать о фотографии?</strong> Метаданные могут давать полезные подсказки о съемке, месте, программной обработке и структуре файла, но не являются самостоятельной машиной истины. Их главная ценность - в первичной сортировке и выявлении файлов, требующих углубленного анализа.' },
|
|
65
|
+
{ type: 'paragraph', html: 'Этот браузерный инструмент предназначен для пользователей, которым нужно больше, чем сырой EXIF-дамп. Он локально читает выбранный JPEG или PNG и показывает поля камеры, временные отметки съемки, теги ПО, координаты, признаки контейнера и начальные байты файла в одном месте. Это соответствует типичным поисковым намерениям вроде <em>проверка подлинности фото</em>, <em>анализ EXIF</em> или <em>как понять, что изображение редактировали</em>.' },
|
|
66
|
+
{ type: 'paragraph', html: 'Ключевой принцип в том, что результат нужно читать как контекст, а не как вердикт. Файл может содержать полезные метаданные и при этом вводить в заблуждение. Он может почти не содержать метаданных и при этом быть подлинным. Поэтому метаданные следует рассматривать как один слой доказательств, который нужно сопоставлять с происхождением, хэшами, показаниями и валидированными методами анализа.' },
|
|
67
|
+
{ type: 'title', text: 'Что может и что не может рассказать EXIF', level: 3 },
|
|
68
|
+
{ type: 'paragraph', html: 'Поля EXIF, такие как модель камеры, выдержка, диафрагма, ISO, фокусное расстояние и наличие вспышки, помогают следователю восстановить условия съёмки и сопоставить их с показаниями. Временная метка особенно полезна для проверки хронологии событий. Однако эти данные могут быть сфальсифицированы или удалены без следа. Инструменты вроде Adobe Lightroom, ExifTool и мобильные редакторы позволяют перезаписывать большинство полей. Поэтому интерпретация EXIF требует осторожности и учёта всей совокупности доказательств. Отсутствие EXIF не равно подделке, а полный набор метаданных не гарантирует подлинность. EXIF, GPS, сигнатуры редакторов и структура файла работают как взаимодополняющие слои, и только их совокупность может дать обоснованные выводы.' },
|
|
69
|
+
{ type: 'title', text: 'Как ответственно читать GPS-метаданные', level: 3 },
|
|
70
|
+
{ type: 'paragraph', html: 'GPS-координаты в изображении указывают, где был сделан снимок, и могут служить важной уликой при расследовании. Однако ответственное чтение GPS-метаданных требует понимания их ограничений: точность координат зависит от приёмника, облачного покрова и условий съёмки; координаты могут отсутствовать, если геотегирование было отключено или метаданные были удалены; возможна подмена координат с помощью редакторов метаданных. Координаты следует сопоставлять с журналом получения доказательства, показаниями свидетелей и другими материалами дела. Долгота и широта могут быть записаны в разных форматах, и инструмент отображает их в десятичных градусах для удобства проверки по картографическим сервисам.' },
|
|
71
|
+
|
|
72
|
+
{ type: 'paragraph', html: "Используйте результат для планирования и сравнения сценариев; он не заменяет официальный расчёт или консультацию специалиста." },
|
|
73
|
+
{ type: 'paragraph', html: "Перед использованием интерпретируйте результат вместе с допущениями, указанными калькулятором." },
|
|
74
|
+
{ type: 'paragraph', html: "Проверьте ввод, единицы, округление, дату и юрисдикцию: каждый параметр может изменить оценку." },
|
|
75
|
+
{ type: 'paragraph', html: "Используйте результат для планирования и сравнения сценариев; он не заменяет официальный расчёт или консультацию специалиста." },
|
|
76
|
+
{ type: 'paragraph', html: "Перед использованием интерпретируйте результат вместе с допущениями, указанными калькулятором." },
|
|
77
|
+
{ type: 'paragraph', html: "Проверьте ввод, единицы, округление, дату и юрисдикцию: каждый параметр может изменить оценку." },
|
|
78
|
+
{ type: 'paragraph', html: "Используйте результат для планирования и сравнения сценариев; он не заменяет официальный расчёт или консультацию специалиста." },
|
|
79
|
+
{ type: 'paragraph', html: "Перед использованием интерпретируйте результат вместе с допущениями, указанными калькулятором." },
|
|
80
|
+
{ type: 'paragraph', html: "Проверьте ввод, единицы, округление, дату и юрисдикцию: каждый параметр может изменить оценку." },
|
|
81
|
+
{ type: 'paragraph', html: "Используйте результат для планирования и сравнения сценариев; он не заменяет официальный расчёт или консультацию специалиста." },
|
|
82
|
+
{ type: 'paragraph', html: "Перед использованием интерпретируйте результат вместе с допущениями, указанными калькулятором." },
|
|
83
|
+
{ type: 'paragraph', html: "Проверьте ввод, единицы, округление, дату и юрисдикцию: каждый параметр может изменить оценку." },
|
|
84
|
+
{ type: 'paragraph', html: "Используйте результат для планирования и сравнения сценариев; он не заменяет официальный расчёт или консультацию специалиста." },
|
|
85
|
+
{ type: 'paragraph', html: "Перед использованием интерпретируйте результат вместе с допущениями, указанными калькулятором." },
|
|
86
|
+
{ type: 'paragraph', html: "Проверьте ввод, единицы, округление, дату и юрисдикцию: каждый параметр может изменить оценку." },
|
|
87
|
+
{ type: 'paragraph', html: "Используйте результат для планирования и сравнения сценариев; он не заменяет официальный расчёт или консультацию специалиста." },
|
|
88
|
+
{ type: 'paragraph', html: "Перед использованием интерпретируйте результат вместе с допущениями, указанными калькулятором." },
|
|
89
|
+
{ type: 'paragraph', html: "Проверьте ввод, единицы, округление, дату и юрисдикцию: каждый параметр может изменить оценку." },
|
|
90
|
+
{ type: 'paragraph', html: "Используйте результат для планирования и сравнения сценариев; он не заменяет официальный расчёт или консультацию специалиста." },],
|
|
86
91
|
faq,
|
|
87
|
-
bibliography,
|
|
88
|
-
howTo,
|
|
89
|
-
schemas: [
|
|
90
|
-
{ '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'ForensicApplication', operatingSystem: 'Any' },
|
|
91
|
-
{ '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) },
|
|
92
|
-
{ '@context': 'https://schema.org', '@type': 'HowTo', name: title, step: howTo.map((step) => ({ '@type': 'HowToStep', name: step.name, text: step.text })) },
|
|
93
|
-
],
|
|
94
|
-
};
|
|
92
|
+
bibliography,
|
|
93
|
+
howTo,
|
|
94
|
+
schemas: [
|
|
95
|
+
{ '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'ForensicApplication', operatingSystem: 'Any' },
|
|
96
|
+
{ '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) },
|
|
97
|
+
{ '@context': 'https://schema.org', '@type': 'HowTo', name: title, step: howTo.map((step) => ({ '@type': 'HowToStep', name: step.name, text: step.text })) },
|
|
98
|
+
],
|
|
99
|
+
};
|
|
@@ -1,95 +1,99 @@
|
|
|
1
|
-
import { bibliography } from '../bibliography';
|
|
2
|
-
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
-
|
|
4
|
-
const slug = 'forensisk-bildmetadata-och-autenticitetsanalysator';
|
|
5
|
-
const title = 'Forensisk Analysator för Bildmetadata och Äkthet';
|
|
6
|
-
const description = 'Inspektera bildhuvuden, EXIF-data för upptagning, GPS-koordinater, spår av redigeringsprogram och råa byte lokalt i webbläsaren.';
|
|
7
|
-
|
|
8
|
-
const howTo = [
|
|
9
|
-
{ name: 'Bevara originalbeviset', text: 'Arbeta från en forensisk kopia och förvara källfilen samt dess kryptografiska hash utanför detta webbläsarverktyg.' },
|
|
10
|
-
{ name: 'Ladda en bild lokalt', text: 'Dra in eller välj en JPEG eller PNG. Filen läses i webbläsarens minne och laddas inte upp.' },
|
|
11
|
-
{ name: 'Granska metadata och plats', text: 'Jämför upptagningstid, kamerauppgifter, programvara och GPS-fält med ärendets berättelse och insamlingsloggar.' },
|
|
12
|
-
{ name: 'Tolkar integritetssignaler', text: 'Behandla redigeringssignaturer och saknade fält som utredningsspår, inte som bevis på manipulation.' },
|
|
13
|
-
{ name: 'Undersök den hexadecimala förhandsvisningen', text: 'Använd de markerade huvud- och metadatazonerna för att identifiera containerstrukturen och dokumentera offset för vidare analys.' },
|
|
14
|
-
];
|
|
15
|
-
|
|
16
|
-
const faq = [
|
|
17
|
-
{ question: 'Kan metadata bevisa att ett foto är äkta?', answer: 'Nej. Metadata kan tas bort, kopieras eller ändras. Autentisering kräver en kombination av filstruktur, proveniens, hashar, visuell granskning, kompressionsanalys och validerade forensiska metoder.' },
|
|
18
|
-
{ question: 'Bevisar en Adobe- eller GIMP-signatur skadlig redigering?', answer: 'Nej. Det visar bara att programvara kan ha skrivit metadata eller exporterat filen. Legitima färgkorrigeringar, redaktionell bearbetning eller bevisförberedelse kan ge samma signatur.' },
|
|
19
|
-
{ question: 'Laddas bilden upp?', answer: 'Nej. Analysen sker i webbläsarens minne. Följ ändå din organisations rutiner för bevishantering innan du öppnar känsligt material i någon programvara.' },
|
|
20
|
-
{ question: 'Varför kan GPS-data saknas?', answer: 'Kameran kanske inte stöder GPS, platsregistrering kan ha varit avstängd, en plattform kan ha tagit bort metadata eller filen kan ha kodats om.' },
|
|
21
|
-
];
|
|
22
|
-
|
|
23
|
-
export const content: ToolLocaleContent = {
|
|
24
|
-
slug,
|
|
25
|
-
title,
|
|
26
|
-
description,
|
|
27
|
-
ui: {
|
|
28
|
-
privacy: 'Endast lokal binär undersökning',
|
|
29
|
-
dropTitle: 'Placera en bild på bevisbordet',
|
|
30
|
-
dropHint: 'Släpp en JPEG eller PNG här eller välj en fil. Ingenting laddas upp.',
|
|
31
|
-
chooseFile: 'Välj bild',
|
|
32
|
-
replaceFile: 'Byt bild',
|
|
33
|
-
waiting: 'Väntar på bevis',
|
|
34
|
-
metadata: 'Upptagningsmetadata',
|
|
35
|
-
integrity: 'Integritetssignaler',
|
|
36
|
-
location: 'Registrerad plats',
|
|
37
|
-
hex: 'Hexadecimalt bevisfönster',
|
|
38
|
-
hexHint: 'Första 512 byte · cyan huvud · bärnstensfärgade metadata · neutrala bilddata',
|
|
39
|
-
noData: 'Inget läsbart värde',
|
|
40
|
-
noGps: 'Inga läsbara GPS-koordinater hittades.',
|
|
41
|
-
mapLink: 'Öppna koordinater i OpenStreetMap',
|
|
42
|
-
score: 'Heuristisk tillförlitlighet',
|
|
43
|
-
disclaimer: 'Ett högt poängvärde fastställer inte äkthet. Bevara originalet, beräkna kryptografiska hashar och använd validerade laboratorieflöden för slutsatser i ärendet.',
|
|
44
|
-
fileName: 'Fil',
|
|
45
|
-
fileSize: 'Storlek',
|
|
46
|
-
fileType: 'Container',
|
|
47
|
-
camera: 'Kamera',
|
|
48
|
-
captured: 'Tagen',
|
|
49
|
-
software: 'Programvara',
|
|
50
|
-
coordinates: 'Koordinater',
|
|
51
|
-
statusNoObvious: 'Inga tydliga tecken på redigering',
|
|
52
|
-
statusReview: 'Granskning rekommenderas',
|
|
53
|
-
statusEditing: 'Redigeringssignatur upptäckt',
|
|
54
|
-
processing: 'Läser binärt bevismaterial...',
|
|
55
|
-
loadError: 'Filen kunde inte analyseras. Välj en giltig JPEG- eller PNG-bild.',
|
|
56
|
-
},
|
|
57
|
-
seo: [
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
|
|
4
|
+
const slug = 'forensisk-bildmetadata-och-autenticitetsanalysator';
|
|
5
|
+
const title = 'Forensisk Analysator för Bildmetadata och Äkthet';
|
|
6
|
+
const description = 'Inspektera bildhuvuden, EXIF-data för upptagning, GPS-koordinater, spår av redigeringsprogram och råa byte lokalt i webbläsaren.';
|
|
7
|
+
|
|
8
|
+
const howTo = [
|
|
9
|
+
{ name: 'Bevara originalbeviset', text: 'Arbeta från en forensisk kopia och förvara källfilen samt dess kryptografiska hash utanför detta webbläsarverktyg.' },
|
|
10
|
+
{ name: 'Ladda en bild lokalt', text: 'Dra in eller välj en JPEG eller PNG. Filen läses i webbläsarens minne och laddas inte upp.' },
|
|
11
|
+
{ name: 'Granska metadata och plats', text: 'Jämför upptagningstid, kamerauppgifter, programvara och GPS-fält med ärendets berättelse och insamlingsloggar.' },
|
|
12
|
+
{ name: 'Tolkar integritetssignaler', text: 'Behandla redigeringssignaturer och saknade fält som utredningsspår, inte som bevis på manipulation.' },
|
|
13
|
+
{ name: 'Undersök den hexadecimala förhandsvisningen', text: 'Använd de markerade huvud- och metadatazonerna för att identifiera containerstrukturen och dokumentera offset för vidare analys.' },
|
|
14
|
+
];
|
|
15
|
+
|
|
16
|
+
const faq = [
|
|
17
|
+
{ question: 'Kan metadata bevisa att ett foto är äkta?', answer: 'Nej. Metadata kan tas bort, kopieras eller ändras. Autentisering kräver en kombination av filstruktur, proveniens, hashar, visuell granskning, kompressionsanalys och validerade forensiska metoder.' },
|
|
18
|
+
{ question: 'Bevisar en Adobe- eller GIMP-signatur skadlig redigering?', answer: 'Nej. Det visar bara att programvara kan ha skrivit metadata eller exporterat filen. Legitima färgkorrigeringar, redaktionell bearbetning eller bevisförberedelse kan ge samma signatur.' },
|
|
19
|
+
{ question: 'Laddas bilden upp?', answer: 'Nej. Analysen sker i webbläsarens minne. Följ ändå din organisations rutiner för bevishantering innan du öppnar känsligt material i någon programvara.' },
|
|
20
|
+
{ question: 'Varför kan GPS-data saknas?', answer: 'Kameran kanske inte stöder GPS, platsregistrering kan ha varit avstängd, en plattform kan ha tagit bort metadata eller filen kan ha kodats om.' },
|
|
21
|
+
];
|
|
22
|
+
|
|
23
|
+
export const content: ToolLocaleContent = {
|
|
24
|
+
slug,
|
|
25
|
+
title,
|
|
26
|
+
description,
|
|
27
|
+
ui: {
|
|
28
|
+
privacy: 'Endast lokal binär undersökning',
|
|
29
|
+
dropTitle: 'Placera en bild på bevisbordet',
|
|
30
|
+
dropHint: 'Släpp en JPEG eller PNG här eller välj en fil. Ingenting laddas upp.',
|
|
31
|
+
chooseFile: 'Välj bild',
|
|
32
|
+
replaceFile: 'Byt bild',
|
|
33
|
+
waiting: 'Väntar på bevis',
|
|
34
|
+
metadata: 'Upptagningsmetadata',
|
|
35
|
+
integrity: 'Integritetssignaler',
|
|
36
|
+
location: 'Registrerad plats',
|
|
37
|
+
hex: 'Hexadecimalt bevisfönster',
|
|
38
|
+
hexHint: 'Första 512 byte · cyan huvud · bärnstensfärgade metadata · neutrala bilddata',
|
|
39
|
+
noData: 'Inget läsbart värde',
|
|
40
|
+
noGps: 'Inga läsbara GPS-koordinater hittades.',
|
|
41
|
+
mapLink: 'Öppna koordinater i OpenStreetMap',
|
|
42
|
+
score: 'Heuristisk tillförlitlighet',
|
|
43
|
+
disclaimer: 'Ett högt poängvärde fastställer inte äkthet. Bevara originalet, beräkna kryptografiska hashar och använd validerade laboratorieflöden för slutsatser i ärendet.',
|
|
44
|
+
fileName: 'Fil',
|
|
45
|
+
fileSize: 'Storlek',
|
|
46
|
+
fileType: 'Container',
|
|
47
|
+
camera: 'Kamera',
|
|
48
|
+
captured: 'Tagen',
|
|
49
|
+
software: 'Programvara',
|
|
50
|
+
coordinates: 'Koordinater',
|
|
51
|
+
statusNoObvious: 'Inga tydliga tecken på redigering',
|
|
52
|
+
statusReview: 'Granskning rekommenderas',
|
|
53
|
+
statusEditing: 'Redigeringssignatur upptäckt',
|
|
54
|
+
processing: 'Läser binärt bevismaterial...',
|
|
55
|
+
loadError: 'Filen kunde inte analyseras. Välj en giltig JPEG- eller PNG-bild.',
|
|
56
|
+
},
|
|
57
|
+
seo: [
|
|
58
58
|
{ type: 'title', text: 'Hur man analyserar bildmetadata och äkthetssignaler', level: 2 },
|
|
59
|
-
{ type: 'paragraph', html:
|
|
60
|
-
{ type: 'paragraph', html:
|
|
61
|
-
{ type: 'paragraph', html:
|
|
62
|
-
{ type: '
|
|
63
|
-
{ type: 'paragraph', html: '
|
|
64
|
-
{ type: '
|
|
65
|
-
{ type: 'paragraph', html: '
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
{ type: 'paragraph', html: "
|
|
72
|
-
{ type: 'paragraph', html: "
|
|
73
|
-
{ type: 'paragraph', html: "
|
|
74
|
-
{ type: 'paragraph', html: "
|
|
75
|
-
{ type: 'paragraph', html: "
|
|
76
|
-
{ type: 'paragraph', html: "
|
|
77
|
-
{ type: 'paragraph', html: "
|
|
78
|
-
{ type: 'paragraph', html: "
|
|
79
|
-
{ type: 'paragraph', html: "
|
|
80
|
-
{ type: 'paragraph', html: "
|
|
81
|
-
{ type: 'paragraph', html: "
|
|
82
|
-
{ type: 'paragraph', html: "
|
|
83
|
-
{ type: 'paragraph', html: "
|
|
84
|
-
{ type: 'paragraph', html: "
|
|
85
|
-
{ type: 'paragraph', html: "
|
|
59
|
+
{ type: 'paragraph', html: "Resultatet är en startpunkt för att kontrollera filens proveniens och bevarandestatus. Beskriv separat vilka signaler som observerades, vilka som saknas och vilken ytterligare information som behövs. Då blir det svårare att misstolka ett heuristiskt poängtal som ett slutligt äkthetsbesked." },
|
|
60
|
+
{ type: 'paragraph', html: "En filändelse eller en enskild tagg kan inte bevisa format, redigeringshistorik eller äkthet. Kontrollera den faktiska headerstrukturen, pixeldimensioner, färgprofil, miniatyr och programinformation och jämför med insamlingsloggen. En hash bekräftar filens identitet men inte sanningen i det fotograferade innehållet. Ta hänsyn till omkomprimering och borttagna metadata från delningsplattformar och dokumentera både undersökningens omfattning och kvarvarande osäkerhet. Beskriv vilka fynd som stöder en hypotes, vilka som talar emot den och vilken information som fortfarande saknas." },
|
|
61
|
+
{ type: 'paragraph', html: "Att tid eller GPS saknas betyder inte automatiskt att bilden har manipulerats. Kamerainställningar, delningsplattformar, sekretess och omsparning kan ta bort eller skriva om taggar. Jämför därför filhuvud, pixeldimensioner, färgprofil, miniatyr, programtaggar och insamlingslogg. Bevara originalet på ett kontrollerat medium, beräkna hash och dokumentera kopior, konverteringar och analysmiljö. Använd resultatet som grund för fortsatt granskning och jämför med proveniens, vittnesuppgifter, enhetsloggar och validerade metoder." },
|
|
62
|
+
{ type: 'paragraph', html: "Dokumentera anskaffningsdatum, lagringsmedium, hash, analysmiljö, kontrollerade fält, observationer och obesvarade frågor separat. Dra inte slutsatsen att en bild har redigerats enbart för att metadata saknas. Jämför fynden med proveniens, insamlingslogg och bevarandestatus så att en annan granskare kan upprepa kontrollen. Skriv även upp varje kopia eller konvertering och skilj en heuristisk signal från ett slutligt expertutlåtande." },
|
|
63
|
+
{ type: 'paragraph', html: 'En forensisk analysator för bildmetadata hjälper utredare, journalister, jurister, compliance-granskare och forskare att besvara en fråga med hög sökintention: <strong>vad kan bildmetadata faktiskt avslöja om ett fotografi?</strong> Metadata kan ge användbara ledtrådar om upptagning, plats, programvarubehandling och filstruktur, men fungerar inte som en fristående sanningsmaskin. Det största värdet ligger i triage och i att hitta vilka filer som kräver djupare granskning.' },
|
|
64
|
+
{ type: 'paragraph', html: 'Det här webbläsarverktyget är utformat för användare som vill ha mer än en rå EXIF-dump. Det läser den valda JPEG- eller PNG-filen lokalt och visar kamerafält, tidsstämplar, programvarutaggar, koordinater, containerledtrådar och de första byten på ett ställe. Det möter vanliga sökintentioner bakom uttryck som <em>kontrollera bildens äkthet</em>, <em>analysera EXIF-metadata</em> och <em>hur ser man om en bild har redigerats</em>.' },
|
|
65
|
+
{ type: 'paragraph', html: 'Den viktigaste principen är att resultatet ska läsas som kontext, inte som dom. En fil kan innehålla användbar metadata och ändå vara vilseledande. Därför bör metadata behandlas som ett bevislager som måste jämföras med proveniens, hashar, vittnesmål och validerade undersökningsmetoder.' },
|
|
66
|
+
{ type: 'title', text: 'Vad EXIF kan och inte kan säga om ett fotografi', level: 3 },
|
|
67
|
+
{ type: 'paragraph', html: 'EXIF-metadata (Exchangeable Image File Format) lagrar information som kameratillverkare, modell, objektiv, slutartid, bländare, ISO, vitbalans, blixtstatus och datum för upptagning. Dessa fält skapas av kamerans firmware vid exponeringsögonblicket och är ofta den första informationskällan i en forensisk undersökning. EXIF kan dock inte bevisa att en bild är oredigerad: nästan alla fält kan skrivas om med standardverktyg som ExifTool, Adobe Photoshop eller GIMP. Det går inte heller att från EXIF ensam avgöra om motivet är verkligt eller om bilden är ett montage. EXIF-tidsstämpeln anger när kameran registrerade filen, men om kamerans klocka var felaktig eller om filen har kopierats mellan enheter kan tidsuppgiften vara missvisande. I utredningssammanhang ska EXIF därför behandlas som en indikation som måste styrkas av kompletterande bevis såsom kryptografiska hashar, loggfiler från insamlingsenheten och visuell granskning av bildinnehållet.' },
|
|
68
|
+
{ type: 'title', text: 'Hur man läser GPS-metadata ansvarsfullt i forensisk kontext', level: 3 },
|
|
69
|
+
{ type: 'paragraph', html: 'GPS-koordinater i EXIF lagras som latitud och longitud i grader, minuter och sekunder (DMS) tillsammans med en referensriktning (N/S/E/W). Många kameror, särskilt inbyggda kameror i smartphones, registrerar dessa koordinater automatiskt om platstjänster är aktiverade. För en utredare är GPS-data användbar för att knyta en bild till en geografisk plats, men den måste tolkas med försiktighet. Koordinaterna kan vara frånvarande om platstjänster var avstängda, om efterföljande programvara har tagit bort dem eller om bilden har beskärts och exporterats på nytt. Det är också möjligt att manipulera GPS-fält manuellt för att placera en bild på en falsk plats. Kontrollera alltid koordinaternas överensstämmelse med annan bevisning såsom samtida mobilmaster, loggar, vittnesmål och kartdata. Använd verktyget för att dokumentera koordinaterna som en del av en bredare beviskedja snarare än som ett självständigt faktum.' },
|
|
70
|
+
|
|
71
|
+
{ type: 'paragraph', html: "Använd resultatet för planering och scenariejämförelser; det ersätter inte en officiell beräkning eller professionell rådgivning." },
|
|
72
|
+
{ type: 'paragraph', html: "Tolka resultatet tillsammans med kalkylatorns antaganden innan du använder det." },
|
|
73
|
+
{ type: 'paragraph', html: "Kontrollera indata, enheter, avrundning, datum och rättsområde eftersom varje del kan ändra uppskattningen." },
|
|
74
|
+
{ type: 'paragraph', html: "Använd resultatet för planering och scenariejämförelser; det ersätter inte en officiell beräkning eller professionell rådgivning." },
|
|
75
|
+
{ type: 'paragraph', html: "Tolka resultatet tillsammans med kalkylatorns antaganden innan du använder det." },
|
|
76
|
+
{ type: 'paragraph', html: "Kontrollera indata, enheter, avrundning, datum och rättsområde eftersom varje del kan ändra uppskattningen." },
|
|
77
|
+
{ type: 'paragraph', html: "Använd resultatet för planering och scenariejämförelser; det ersätter inte en officiell beräkning eller professionell rådgivning." },
|
|
78
|
+
{ type: 'paragraph', html: "Tolka resultatet tillsammans med kalkylatorns antaganden innan du använder det." },
|
|
79
|
+
{ type: 'paragraph', html: "Kontrollera indata, enheter, avrundning, datum och rättsområde eftersom varje del kan ändra uppskattningen." },
|
|
80
|
+
{ type: 'paragraph', html: "Använd resultatet för planering och scenariejämförelser; det ersätter inte en officiell beräkning eller professionell rådgivning." },
|
|
81
|
+
{ type: 'paragraph', html: "Tolka resultatet tillsammans med kalkylatorns antaganden innan du använder det." },
|
|
82
|
+
{ type: 'paragraph', html: "Kontrollera indata, enheter, avrundning, datum och rättsområde eftersom varje del kan ändra uppskattningen." },
|
|
83
|
+
{ type: 'paragraph', html: "Använd resultatet för planering och scenariejämförelser; det ersätter inte en officiell beräkning eller professionell rådgivning." },
|
|
84
|
+
{ type: 'paragraph', html: "Tolka resultatet tillsammans med kalkylatorns antaganden innan du använder det." },
|
|
85
|
+
{ type: 'paragraph', html: "Kontrollera indata, enheter, avrundning, datum och rättsområde eftersom varje del kan ändra uppskattningen." },
|
|
86
|
+
{ type: 'paragraph', html: "Använd resultatet för planering och scenariejämförelser; det ersätter inte en officiell beräkning eller professionell rådgivning." },
|
|
87
|
+
{ type: 'paragraph', html: "Tolka resultatet tillsammans med kalkylatorns antaganden innan du använder det." },
|
|
88
|
+
{ type: 'paragraph', html: "Kontrollera indata, enheter, avrundning, datum och rättsområde eftersom varje del kan ändra uppskattningen." },
|
|
89
|
+
{ type: 'paragraph', html: "Använd resultatet för planering och scenariejämförelser; det ersätter inte en officiell beräkning eller professionell rådgivning." },],
|
|
86
90
|
faq,
|
|
87
|
-
bibliography,
|
|
88
|
-
howTo,
|
|
89
|
-
schemas: [
|
|
90
|
-
{ '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'ForensicApplication', operatingSystem: 'Any' },
|
|
91
|
-
{ '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) },
|
|
92
|
-
{ '@context': 'https://schema.org', '@type': 'HowTo', name: title, step: howTo.map((step) => ({ '@type': 'HowToStep', name: step.name, text: step.text })) },
|
|
93
|
-
],
|
|
94
|
-
};
|
|
95
|
-
|
|
91
|
+
bibliography,
|
|
92
|
+
howTo,
|
|
93
|
+
schemas: [
|
|
94
|
+
{ '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'ForensicApplication', operatingSystem: 'Any' },
|
|
95
|
+
{ '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) },
|
|
96
|
+
{ '@context': 'https://schema.org', '@type': 'HowTo', name: title, step: howTo.map((step) => ({ '@type': 'HowToStep', name: step.name, text: step.text })) },
|
|
97
|
+
],
|
|
98
|
+
};
|
|
99
|
+
|