Экспертиза баз данных и СУБД

Судебная экспертиза базы данных SQLite

Устанавливаем, что содержала база SQLite, можно ли восстановить удалённые записи и откуда взялось повреждение. Для первого обращения достаточно описания — без копии устройства и паролей.

Ориентир по стоимости экспертизы
от 100 000 ₽
Ориентир по сроку экспертизы
от 10 рабочих дней
  • Судебные экспертизы
  • Внесудебные исследования
  • Рецензирование заключений
  • Консультации и справки
01 Проверим компетенцию

До оплаты определим, относится ли задача к выбранному виду исследования.

02 Поможем подготовиться

Уточним вопросы и перечень материалов — готовый комплект не обязателен.

03 Работаем с регионами

Принимаем задачи из России, Казахстана и Беларуси. До назначения часть материалов можно передать электронно; по назначенной экспертизе порядок определяет назначивший орган.

04 Сопровождаем результат

Разъясняем методику и выводы, отвечаем на вопросы суда в пределах компетенции эксперта.

О направлении

Подробно о задачах, объектах и методиках

Материал описывает типовые задачи и вопросы. В судебной экспертизе их окончательный круг и редакцию определяет суд или иной назначивший орган, а правовую оценку обстоятельствам даёт суд.

Содержание страницы
  1. Особенность SQLite как объекта исследования
  2. Что может и чего не может установить эксперт
  3. Какие материалы сохранить
  4. Журнал отката, WAL и SHM
  5. Удалённые данные и границы восстановления
  6. Целостность и причины повреждения
  7. Как проверить миграцию SQLite
  8. Примеры вопросов на экспертизу
  9. Порядок исследования и результат

Экспертиза SQLite исследует данные встроенных приложений: мобильных программ, браузеров, мессенджеров, настольного ПО, устройств и локальных сервисов. Объектом часто является не один файл с расширением .db, а согласованный комплект из основного файла базы, журнала упреждающей записи WAL, файла общей памяти SHM, журнала отката, резервных копий и контекста приложения. Специалист определяет структуру и данные, проверяет целостность, оценивает следы изменений и возможность восстановления. Это отдельное направление экспертизы баз данных и СУБД.

Предварительно можно оценить, достаточно ли материалов для ответа. Для первого обращения обычно хватает описания приложения и события, перечня файлов с размерами и временем получения, версии устройства или программы и указания спорного периода. Прогноз может показать, что нужные страницы ещё есть в WAL или копии, либо выявить отсутствие подходящего источника после контрольной точки, VACUUM, secure_delete или перезаписи. По итогам становится понятно, стоит ли начинать полное исследование или сначала искать дополнительные копии.

Не открывайте единственный файл SQLite обычным приложением и не отделяйте его от файлов с тем же именем и суффиксами -wal, -shm или -journal. Запуск программы может выполнить контрольную точку, изменить схему, служебные поля или удалить временные файлы. Сначала сохраните весь контейнер приложения либо образ носителя, зафиксируйте источник, время и часовой пояс, затем работайте с проверенной копией.

Если уже по присланным материалам видно, что ответ получить нельзя, мы не берём задачу в работу и сразу сообщаем об этом. Принятая задача не обязательно завершится положительным выводом. Если это выясняется только в ходе исследования, работа считается выполненной: заключение объясняет, почему ответ получить нельзя и каких данных не хватило. Например, заключение может обосновать, что страницы удалённых записей уже переиспользованы приложением. Назначать ли после этого дополнительную или повторную экспертизу, решает назначивший её орган. При частичной возможности ответа в заключении указывают, на какие вопросы он получен, на какие — нет и почему.

Кто и как снимет копию, определяют после ознакомления с объектом. Копию может снять заказчик или его администратор по согласованному плану, наш специалист — удалённо либо с выездом в рамках отдельной консультации, либо эксперт в ходе экспертизы. Выбор зависит от объекта и от того, чей он: комплект файлов приложения снимают иначе, чем образ всего носителя, а с изъятого устройства — иначе, чем с рабочего компьютера сотрудника. Если инфраструктура находится под контролем другой стороны, порядок доступа определяет суд; состояние системы фиксируют с участием эксперта.

Копировать устройство или контейнер приложения можно, только имея на это право. Образ носителя телефона или рабочего компьютера — это переписка, документы и сведения о людях целиком, а не один спорный файл, поэтому объём копирования, круг допущенных лиц, срок хранения и порядок удаления рабочих копий определяют до начала работ. Если устройство принадлежит другой стороне или третьему лицу, копию получают через суд — ходатайством об истребовании или об обеспечении доказательств.

Особенность SQLite как объекта исследования

SQLite — встраиваемая библиотека, а не отдельный сервер с обязательными пользователями и централизованным аудитом. Значение таблиц, идентификаторов и временных полей задаёт приложение. Одинаковый формат файла может использоваться совершенно разными программами, а конкретная сборка SQLite, параметры компиляции, расширения, PRAGMA и ключ шифрования влияют на чтение и интерпретацию.

Чтобы определить состав и происхождение базы:

  • идентифицируют приложение, пакет, профиль пользователя, путь и назначение каждой базы;
  • устанавливают версию SQLite и при возможности параметры компиляции, размер страницы, кодировку, версию схемы и режим журналирования;
  • проверяют, является ли файл обычной SQLite, зашифрованным контейнером либо производным форматом;
  • связывают технические таблицы с интерфейсом и логикой конкретной версии приложения;
  • отделяют состояние на момент изъятия от данных, восстановленных из свободных областей или иных копий.

Что может и чего не может установить эксперт

При достаточных материалах можно описать схему и содержимое, проверить внутренние связи, сопоставить несколько состояний, извлечь из WAL кадры подтверждённых транзакций, исследовать журнал отката, оценить повреждение и восстановить часть доступных фрагментов. В выводе следует разграничить активные данные, ранее удалённые страницы, неподтверждённые кандидаты и сведения из внешних источников.

При достаточных материалах эксперт может установить:

  • какие таблицы, индексы, триггеры и представления существовали и какие записи читаются в представленном состоянии;
  • какие кадры подтверждённых транзакций содержит согласованный WAL, какую границу состояния они позволяют воспроизвести и какие изменения ещё не отражены в основном файле базы;
  • различаются ли версии базы и какие строки или поля изменились между согласованными снимками;
  • имеются ли структурные нарушения, признаки неполного копирования или несогласованности основного файла базы и WAL;
  • сохранились ли кандидаты на ранее удалённые сведения и насколько надёжна их интерпретация;
  • соответствует ли база измеримым требованиям приложения или миграции.

SQLite не хранит универсальный ответ о физическом пользователе и времени каждой операции. Файловые метки времени отражают действия файловой системы и могут меняться при копировании, синхронизации или выполнении контрольной точки. Поля created_at и updated_at имеют смысл только после проверки кода и правил приложения. Эксперт может сопоставить событие с техническими идентификаторами по учётной записи, журналам программы, ОС, облачной синхронизации и другим устройствам; вопрос о том, какое физическое лицо действовало и с каким умыслом, разрешает суд или иной уполномоченный орган.

Какие материалы сохранить

Лучший объект — криминалистическая копия всего носителя или контейнера приложения, полученная документированным способом. Когда это невозможно, основной файл базы собирают одновременно с соседними служебными файлами. Для каждого объекта фиксируют исходный путь и устройство, средство получения и его версию, дату, время и часовой пояс, размер и контрольную сумму SHA-256 завершённой мастер-копии. Мастер-копию сохраняют неизменной, исследование ведут на рабочей копии; после каждой передачи повторно проверяют SHA-256 и записывают отправителя, получателя, время и носитель.

В комплект обычно включают:

  • основной файл базы и файлы с суффиксами -wal, -shm, -journal, а также иные временные файлы в каталоге;
  • предыдущие версии, резервные и синхронизированные копии, снимки и экспорт приложения;
  • контейнер приложения, настройки, кэш, журналы, данные учётной записи и файлы конфигурации;
  • версия приложения, ОС и устройства, установочный пакет, библиотеки и при наличии исходный код запросов и миграций;
  • ключи или параметры шифрования — отдельно и только через согласованный защищённый канал;
  • описание спорных действий, локальное время, часовой пояс и известные перезапуски, обновления, очистки или синхронизации;
  • техническое задание, модель данных, правила формирования полей и схема переноса.

Копирование только основного файла базы во время работы программы может дать несогласованный результат. Если сбор с работающей системы неизбежен, способ выбирают с учётом режима журналирования: API оперативного резервного копирования (Online Backup API), VACUUM INTO или согласованный снимок хранилища решают разные задачи и создают производный объект, поэтому действия и их влияние протоколируют.

Для передачи копии со сведениями о людях или охраняемой законом тайной нужно законное основание. При назначенной экспертизе объекты передаёт назначивший орган. Вне процесса их передаёт обладатель сведений и только в объёме, необходимом для ответа на поставленные вопросы. До передачи определяют, какую часть сведений можно обезличить или исключить без ущерба для исследования. Эксперт не разглашает сведения, ставшие известными ему в связи с исследованием, а рабочие копии удаляет по окончании работы.

Журнал отката, WAL и SHM

В режиме журнала отката до изменения основного файла базы в журнал записываются прежние версии страниц активной транзакции. Для восстановления после незавершённой транзакции важен именно «горячий» журнал, признаки которого проверяют по правилам SQLite. После фиксации, отката или восстановления файл в зависимости от режима может быть удалён, усечён, обнулён либо остаться как неактивный постоянный журнал; само наличие файла не означает сохранность истории операций.

В режиме WAL новые версии страниц добавляются в -wal, а основной файл базы обновляется при выполнении контрольной точки. Кадры WAL содержат номера страниц, признаки фиксации и контрольные суммы; корректная последовательность позволяет построить состояния на подтверждённых границах транзакций. WAL — циклически используемый рабочий файл, а не бессрочная история. Отделение WAL от базы или открытие базы без него может привести к потере уже подтверждённых изменений либо к повреждению.

Файл -shm содержит индекс WAL (wal-index) для координации доступа и обычно может быть построен заново из WAL, однако при изъятии его сохраняют вместе с комплектом как часть исходного состояния. Нельзя просто объединять страницы или считать любой кадр последним значением: проверяются заголовки, служебные значения salt, контрольная сумма, граница подтверждённой транзакции, размер страницы и принадлежность именно этой базе.

Удалённые данные и границы восстановления

Следы могут находиться в списке свободных страниц (freelist), незанятых областях и страницах переполнения, WAL, журнале отката, старой копии или образе носителя. Результат зависит от повторного использования страниц, auto_vacuum, VACUUM, secure_delete, последующей записи, контрольной точки и поведения приложения. Удаление логической строки не гарантирует ни немедленного физического стирания, ни обязательной сохранности.

Команда .recover и API восстановления предназначены для извлечения доступного содержимого из повреждённой базы. Официальная документация предупреждает: восстановленные данные могут быть неполными или изменёнными и не соответствовать ограничениям, а ранее удалённые значения — появиться снова. Поэтому извлечение выполняют в отдельный новый файл, сохраняют исходник и маркируют происхождение каждой группы данных. Такой результат нельзя без проверки выдавать за точную прежнюю базу. Если спор целиком о том, что и когда изменилось в записях, требуется экспертиза изменений и удаления данных.

Целостность и причины повреждения

PRAGMA integrity_check проверяет формат страниц, структуру B-tree, список свободных страниц, индексы и ряд внутренних согласований. quick_check выполняет более быстрый и менее полный вариант, а внешние ключи проверяются отдельно через foreign_key_check. Успешный результат не подтверждает смысловую правильность записей, полноту истории или соответствие бизнес-правилам приложения.

Повреждение возможно из-за некорректного копирования открытой базы, удаления либо перемещения WAL, дефектов хранилища, нарушения блокировок на сетевой файловой системе, одновременной работы несовместимых процессов, переименования файлов, восстановления несогласованных компонентов или ошибок вне SQLite. Для SQLite 3.7.0–3.51.2 как редкую версионную гипотезу учитывают также ошибку самой библиотеки: при сбросе журнала упреждающей записи часть подтверждённых изменений могла теряться. Она исправлена в версии 3.51.3 и в отдельных обратных переносах исправления. Чтобы различить причины, сопоставляют сообщения приложения и ОС, файловые события, режим журналирования, точную версию библиотеки и воспроизводимые тесты на копии.

Как проверить миграцию SQLite

SQLite использует динамическую типизацию и type affinity (сродство типов), поэтому совпадения DDL или количества строк недостаточно. Проверяют фактические классы хранения значений, ключи и rowid, таблицы WITHOUT ROWID и STRICT, ограничения, значения по умолчанию, вычисляемые столбцы, правила сортировки, триггеры, представления, индексы и миграции приложения.

Особое внимание уделяют представлению дат и времени, часовым поясам, логическим и десятичным значениям, JSON и BLOB, нормализации текста, NULL, кодировке и преобразованию идентификаторов. В протоколе сверки указывают контрольный момент, запросы, правила канонизации, отклонённые строки и изменения после среза. Поведение приложения проверяют отдельно: часть ограничений и каскадов могла обеспечиваться кодом либо зависеть от PRAGMA foreign_keys. Когда предметом спора становится сам перенос, а не устройство базы, требуется экспертиза миграции баз данных.

Примеры вопросов на экспертизу

При судебной экспертизе окончательный круг вопросов определяет суд, а в иных предусмотренных законом процедурах — орган или лицо, назначившие экспертизу. Вопросы о виновности, умысле, правовой квалификации события, нарушении договора и ответственности разрешает суд или иной уполномоченный орган. Эксперт отвечает на поставленные вопросы в пределах специальных знаний и представленных материалов; о неясности вопроса, выходе за пределы компетенции или недостаточности материалов он в установленном порядке сообщает суду, органу или лицу, назначившим экспертизу.

До назначения стороны могут предложить суду или иному уполномоченному органу следующие формулировки технических вопросов. Для SQLite полезно указать приложение и его версию, комплект файлов, таблицу или сущность, период, часовой пояс и проверяемый технический признак. Например, можно предложить исследовать, отражают ли основной файл базы, WAL и журналы приложения удаление записи X и какие временные значения связаны с событием, либо сохранились ли фрагменты ранее удалённых записей таблицы Y. Дополнительные примеры:

  1. Является ли представленный файл базой SQLite и каковы его основные параметры?
  2. Какие таблицы и записи читаются в согласованном состоянии основного файла базы и WAL?
  3. Какие кадры подтверждённых транзакций содержит согласованный WAL, какую границу состояния они позволяют воспроизвести и какие изменения ещё не отражены в основном файле базы?
  4. Чем различаются представленные версии базы на указанные моменты?
  5. Имеются ли структурные нарушения и как они влияют на чтение конкретных данных?
  6. Сохранились ли фрагменты ранее удалённых записей и с какой уверенностью они интерпретируются?
  7. Что означают конкретные поля времени и идентификаторы с учётом логики приложения?
  8. Соответствует ли структура базы указанным требованиям или версии программы?
  9. Полностью ли перенесены перечисленные сущности в целевую систему?
  10. Какие ограничения материалов препятствуют определённому ответу?

Порядок исследования и результат

Исходный комплект сохраняют как мастер-копию, проверяют SHA-256 и исследуют рабочие копии. Специалист идентифицирует формат и приложение, разбирает схему и страницы, сопоставляет основной файл базы с WAL, выполняет документированные запросы, проверяет целостность, сравнивает версии и проверяет альтернативные объяснения. Изменяющие команды восстановления выполняются только на отдельной рабочей копии.

Результатом может быть консультация, внесудебное исследование, заключение специалиста, судебная экспертиза или рецензия. Ориентир по стоимости — от 100 000 ₽, срок — от 10 рабочих дней; расчёт зависит от числа файлов и приложений, объёма, повреждения, шифрования, восстановления, периода и вопросов. Процессуальный статус задаёт документ о назначении, а доказательственное значение определяет суд. Если судебная экспертиза уже назначена, назначенный по делу эксперт не принимает от одной стороны напрямую дополнительные файлы приложения, образы носителей и выгрузки и не даёт ей частную оценку по существу поручения: вопросы, доступ и новые материалы идут через назначивший орган. Это не исключает обращения стороны к другому, не назначенному по делу специалисту — за консультацией или рецензией по законно полученным материалам. Для проверки ранее подготовленного заключения проводят рецензия на заключение экспертизы баз данных и СУБД.

Проведение экспертизы по уголовному делу

Судебная экспертиза по уголовному делу производится государственными судебными экспертами и иными экспертами из числа лиц, обладающих специальными знаниями.

Согласно постановлению Пленума Верховного Суда Российской Федерации от 21 декабря 2010 г. № 28 «О судебной экспертизе по уголовным делам», негосударственными судебно-экспертными учреждениями признаются некоммерческие организации, созданные на основании Гражданского кодекса Российской Федерации и Федерального закона «О некоммерческих организациях» и ведущие судебно-экспертную деятельность согласно своим уставам.

По сведениям организации, проведение судебных экспертиз предусмотрено её уставом (см. действующую редакцию в разделе «Документы организации»). Это само по себе не означает автоматического поручения любой экспертизы. Возможность поручить конкретное исследование определяет назначающий орган.

В случаях, перечисленных пунктом 5 постановления № 28, когда экспертизу по уголовному делу назначает суд, ему следует мотивировать в определении или постановлении поручение исследования учреждению либо конкретному лицу. Пункт 5 постановления № 28 связывает выбор негосударственного учреждения с невозможностью провести исследование в государственном учреждении, обслуживающем соответствующую территорию: например, из-за отсутствия нужного специалиста, материально-технической базы или специальных условий, либо с отводом компетентных государственных учреждений. Дополнительно учитываются квалификация эксперта, основания для отвода и действующий перечень экспертиз, выполняемых только государственными судебно-экспертными организациями.

Актуализировано
Форматы работы

Стоимость и сроки

Указан предварительный ориентир. Точный расчёт зависит от вопросов, объёма материалов, количества объектов и необходимости выезда. Срок рассчитываем после получения и проверки необходимого комплекта.

По договору

Внесудебное исследование

от 100 000 ₽
от 10 рабочих дней
точная стоимость будет определена после ознакомления с объектом исследования

Итог — письменный документ с результатами внесудебного исследования. Название документа, порядок его представления и оценка зависят от вида процесса.

Заказать исследование
Проверка готового заключения

Рецензирование

от 80 000 ₽
10 рабочих дней
точная стоимость будет определена после ознакомления с заключением и приложениями

Итог — письменная рецензия на готовое заключение. Она проверяет исходные данные, методы и выводы, но не отменяет заключение и не заменяет новое исследование объекта.

Передать заключение на проверку
Письменный ответ эксперта

Консультация и справка

от 20 000 ₽
2–3 рабочих дня
точная стоимость будет определена после ознакомления с объектом исследования

Поможет предварительно оценить вопрос, его исследуемость и ограничения будущей работы, а также спланировать дальнейшие действия.

Описать вопрос
Разбор задачи — без оплаты

Бесплатно определим вид исследования, проверим, нет ли явных пробелов в комплекте материалов, и назовём ориентировочные срок и стоимость. Если уже на этом этапе видно, что задачу решить нельзя, скажем об этом и не будем предлагать полное исследование. Изучение материалов по существу с письменным ответом — платная консультация; её стоимость согласуем до начала.

Получить организационный разбор
Организация исследования

Как строится работа над экспертизой

До начала исследования уточним предмет задачи, состав материалов и формат итогового документа.

  1. 01 Организационный разбор

    Проверяем компетенцию и сообщаем, можно ли провести исследование по поставленной задаче.

  2. 02 Вопросы и материалы

    Уточняем вопросы и сообщаем, каких документов или объектов не хватает.

  3. 03 Экспертное исследование

    Эксперт применяет профильные методики, фиксирует ход работы и обосновывает выводы.

  4. 04 Заключение и пояснения

    Передаём результат и при необходимости разъясняем суду применённую методику и выводы.

Выполненные исследования

Практика по этому направлению

Краткие описания выполненных исследований показывают задачи и объекты. В конкретном деле круг вопросов определяет назначивший орган, а вопросы о виновности, принадлежности прав и обоснованности требований разрешает суд.

Все примеры по направлению
Опубликованный пример
Завершена в ноябре 2016 года

Экспертиза №26650

Судебная комплексная оценочная и компьютерно-техническая экспертиза проводилась по определению Арбитражного суда Краснодарского края с целью оценки фактического объема и качества услуг по разработке и ведению контекстных рекламных кампаний в системах Яндекс.Директ и Google AdWords.

Арбитражный суд Краснодарского краяДело №А32-15104/2016
Участники: , ООО "ВКБ-Новостройки"
Открыть описание
В открытом доступе представлена часть выполненных исследований по разным объектам и судебным делам. Сведения, защищённые законом или условиями конфиденциальности, не раскрываются. Чтобы проверить возможность исследования по вашей ситуации, опишите задачу.

Документы организации

Ответы специалистов

Частые вопросы

Практические пояснения о назначении, материалах и использовании экспертного заключения.

Все вопросы по направлению
Когда нужна экспертиза SQLite?

Экспертиза SQLite нужна, когда спор зависит от локальных данных мобильного, настольного или встроенного приложения, структуры файла, WAL, журнала отката, целостности или нескольких версий базы. Она помогает исследовать подтверждаемые записи, различия между снимками, повреждение, доступные следы удаления, работу миграций и соответствие базы измеримым требованиям.

SQLite — библиотека без обязательного серверного аудита, поэтому смысл таблиц и полей задаёт программа. Если достаточно прочитать обычный экспорт, глубокое исследование формата может не понадобиться. Профильная экспертиза оправдана, когда важны служебные файлы, история страниц, повреждение, приложение и воспроизводимая оценка границ восстановления. Объект всегда идентифицируют вместе с версией программы и контекстом получения. Порядок работы, состав материалов и сроки собраны на странице экспертизы SQLite.

Отдельная страница: Когда нужна экспертиза SQLite?
Можно ли заранее оценить перспективу экспертизы SQLite?

Предварительно можно определить, является ли файл базой SQLite, есть ли рядом WAL, SHM или журнал отката, охватывают ли копии нужный период и потребуется ли исследование приложения или устройства. Для оценки достаточно описания события, списка файлов с путями и размерами, версии приложения, ОС и указания, открывалась ли база после спорного действия.

Наличие свободных областей или WAL ещё не означает, что нужная запись сохранилась и может быть однозначно найдена. После контрольной точки, VACUUM, secure_delete или перезаписи следы могут отсутствовать. Предварительная оценка показывает, какие версии ещё можно проверить и где искать резервные, облачные или системные копии. Если единственный файл уже открывали, специалист отдельно учитывает, как это могло изменить его содержимое.

Отдельная страница: Можно ли заранее оценить перспективу экспертизы SQLite?
Какие материалы нужны для экспертизы SQLite?

Нужно сохранить основную базу одновременно с файлами того же имени и суффиксами -wal, -shm и -journal. Предпочтителен образ носителя или полный контейнер приложения, включая настройки, кэш, логи и резервные копии. Полезны версия программы и ОС, установочный пакет, миграционные скрипты, описание таблиц и точный спорный период.

Для каждого файла фиксируют источник — исходный путь и устройство или учётную запись, средство копирования и его версию, дату, время и часовой пояс, размер и SHA-256 завершённой мастер-копии. Мастер-копию сохраняют неизменной, исследование ведут на рабочей копии; после каждой передачи повторно проверяют SHA-256 и записывают отправителя, получателя, время и носитель. Не запускайте приложение и не открывайте единственную базу обычным редактором: это может выполнить контрольную точку или изменить служебные данные. Ключи шифрования и пароли передают отдельно только после согласования защищённого канала.

Отдельная страница: Какие материалы нужны для экспертизы SQLite?
От чего зависят стоимость и срок экспертизы SQLite?

Стоимость и срок определяют число файлов, приложений и устройств, объём, наличие WAL и журналов, степень повреждения, шифрование, количество версий и глубина восстановления. Трудоёмкость возрастает, если нужно исследовать образ носителя, реконструировать схему повреждённой базы, сопоставлять приложение и облачную синхронизацию либо проверять сложную миграцию.

После первичного перечня материалов специалист предлагает минимальный достаточный объём и оценивает стенд. Ориентиры направления: стоимость от 100 000 ₽, срок от 10 рабочих дней. Это не универсальная цена: проверка одной читаемой таблицы и анализ нескольких несогласованных копий с WAL требуют разной работы. Срочность оценивают с учётом сохранности источников и необходимости сначала получить криминалистическую копию устройства. Общие для всех платформ правила — на странице экспертизы баз данных и СУБД.

Отдельная страница: От чего зависят стоимость и срок экспертизы SQLite?
Можно ли восстановить удалённые записи SQLite?

После удаления фрагменты могут остаться в списке свободных страниц (freelist), незанятых областях и страницах переполнения, WAL, журнале отката, старых копиях или образе носителя. Сохранность зависит от последующей записи, повторного использования страниц, контрольной точки, VACUUM, auto_vacuum, secure_delete и поведения приложения. Поэтому ни само удаление, ни наличие файла не гарантируют результат.

.recover и API восстановления помогают извлекать доступное содержимое повреждённой базы, но результат может быть неполным, нарушать ограничения или включать ранее удалённые значения. Восстановление выполняют в новый файл, сохраняя мастер-копию, и отдельно маркируют активные данные и кандидаты. По одной текущей копии нельзя заранее определить, какие удалённые сведения сохранились; вывод формулируют только для конкретных полей и источников. Когда спор целиком о том, что и когда изменилось в записях, его разбирает экспертиза изменений и удаления данных.

Отдельная страница: Можно ли восстановить удалённые записи SQLite?
Почему для экспертизы SQLite нужны файлы WAL и SHM?

В режиме WAL новые версии страниц сначала добавляются в файл -wal, а основной файл базы обновляется при выполнении контрольной точки. WAL может содержать кадры подтверждённых транзакций, необходимые для воспроизведения состояния на последней подтверждённой границе, хотя соответствующие изменения ещё не отражены в основном файле. Кадры проверяют по заголовкам, служебным значениям salt, контрольной сумме, номеру страницы и границе подтверждённой транзакции; WAL — рабочий циклический журнал, а не бессрочная история операций.

-shm обычно содержит индекс WAL (wal-index) для координации читателей и писателя и может перестраиваться, но при изъятии его сохраняют как часть исходного комплекта. Отделение WAL от работающей базы или её открытие без соседних файлов может привести к потере подтверждённых данных либо изменить состояние. Журнал отката относится к другому режиму: во время транзакции он содержит прежние версии изменяемых страниц, а после завершения может быть удалён, усечён, обнулён, переиспользован или сохраниться как неактивный остаток. Признаки «горячего» журнала проверяют отдельно.

Отдельная страница: Почему для экспертизы SQLite нужны файлы WAL и SHM?
Можно ли по SQLite установить автора и время изменения?

SQLite не содержит обязательной системы пользователей и универсального аудита каждой операции. Можно исследовать прикладные идентификаторы, поля времени, записи WAL, последовательность состояний и контекст файла, но сами по себе они обычно не называют физического исполнителя. Файловые метки времени могут измениться из-за контрольной точки, копирования, резервного сохранения или синхронизации.

Для атрибуции данные базы сопоставляют с кодом и журналами приложения, данными авторизации, устройства, ОС, сети и облачных сервисов. Сначала выясняют, кем и когда формируется каждое поле и в каком часовом поясе. Технический вывод может связать действие с профилем, устройством или сеансом при достаточной совокупности следов; вопрос об авторстве человека и намерении оценивается с учётом остальных доказательств.

Отдельная страница: Можно ли по SQLite установить автора и время изменения?
Что показывает PRAGMA integrity_check в SQLite?

PRAGMA integrity_check проверяет формат страниц, структуру B-tree, список свободных страниц, соответствие индексов таблицам и ряд внутренних согласований. quick_check пропускает часть проверок индексов и выполняется быстрее. Нарушения внешних ключей проверяются отдельно через foreign_key_check, если их смысл применим к схеме и данным.

Ответ ok не доказывает правильность бизнес-значений, отсутствие удаления, полноту истории или подлинность файла. Команду запускают на рабочей копии совместимой версией SQLite и фиксируют параметры. При повреждении мастер-копию сохраняют до восстановления: исправление или импорт способны изменить размещение страниц и уничтожить следы. Результат интерпретируют вместе со схемой, WAL, приложением и обстоятельствами копирования.

Отдельная страница: Что показывает PRAGMA integrity_check в SQLite?
Какие вопросы ставят эксперту по SQLite?

В вопросе указывают приложение и версию, конкретный файл или комплект, таблицу или сущность, период, часовой пояс и измеримый критерий. Например: «Какие кадры подтверждённых транзакций содержит согласованный WAL, какую границу состояния они позволяют воспроизвести и какие изменения ещё не отражены в основном файле базы?» Также можно спросить, чем различаются две копии, имеются ли структурные нарушения, сохранились ли определённые фрагменты и полностью ли перенесены перечисленные данные.

Вместо «кто и когда удалил всё» корректнее спросить, отражают ли представленные источники удаление записи X, какие технические идентификаторы и временные значения с ним связаны и каковы ограничения атрибуции. Эксперт не решает вопросы умысла, виновности и правовой оценки. До назначения полезно согласовать формулировки, чтобы отличить активные данные от восстановленных кандидатов и учесть реальную сохранность WAL и приложения.

Отдельная страница: Какие вопросы ставят эксперту по SQLite?
Как проверить полноту миграции SQLite?

При миграции SQLite сравнивают не только строки, но и фактические классы хранения, type affinity (сродство типов), первичные ключи и rowid, ограничения, значения по умолчанию, вычисляемые столбцы, правила сортировки, индексы, триггеры и представления. Учитывают таблицы WITHOUT ROWID и STRICT, а также зависимость внешних ключей от настройки PRAGMA foreign_keys.

Отдельно проверяют даты и часовые пояса, десятичные и логические значения, JSON и BLOB, кодировку, NULL, нормализацию текста, преобразование идентификаторов и отклонённые строки. Сверка должна фиксировать версии, контрольный момент, карту соответствия, запросы и правила канонизации. Равное количество записей не подтверждает, что целевая система воспроизводит значимое поведение приложения и все ограничения исходной базы. Если перенос и есть предмет спора, требуется экспертиза миграции баз данных.

Отдельная страница: Как проверить полноту миграции SQLite?
Можно ли использовать заключение по базе SQLite в суде?

Судебное заключение готовят после назначения экспертизы уполномоченным субъектом — в пределах поставленных вопросов и переданных объектов. Сторона может представить внесудебное исследование, и судебной экспертизой оно не становится.

Для SQLite решающим часто оказывается происхождение файла. Суд оценивает, откуда взята копия, как она получена и сохранён ли комплект целиком: основной файл вместе с журналом упреждающей записи, файлом общей памяти и журналом отката. Без описания извлечения файла вопросы к его происхождению возникают до оценки выводов.

До заказа сообщите вид процесса, стадию и ближайшую дату, а также кому принадлежит устройство: от этого зависит, получают копию сами стороны или её истребуют через суд.

Отдельная страница: Можно ли использовать заключение по базе SQLite в суде?
Чем экспертиза SQLite отличается от работы разработчика приложения?

Разработчик знает своё приложение и может быстро извлечь из файла нужные записи. Но он работает с рабочей копией, часто открывает базу самим приложением и не всегда описывает, как его действия изменили файл.

Экспертиза устроена иначе: файл фиксируют в комплекте со служебными файлами, считают контрольные суммы, исследуют копию и записывают каждый шаг. Отдельно проверяют, не преобразовывало ли приложение значения и можно ли доверять временным отметкам, которые задаёт программа, а не сама база.

Поэтому объяснение разработчика полезно как источник сведений о структуре, но не заменяет исследование, результат которого можно повторить и проверить.

Отдельная страница: Чем экспертиза SQLite отличается от работы разработчика приложения?
Можно ли исследовать файл SQLite, пока приложением продолжают пользоваться?

Можно, но результат отразит состояние при копировании, а не при спорном событии. Пока приложение работает, оно дописывает журнал упреждающей записи, выполняет контрольные точки и переиспользует освободившиеся страницы — то есть постепенно затирает следы удалённых записей.

Сначала проверяют полномочия и согласуют допустимые действия с владельцем устройства или с назначившим экспертизу органом; если устройство принадлежит другой стороне, копию получают через суд. Копию снимают комплектом: основной файл вместе со служебными файлами того же имени. Отделять их нельзя, иначе часть подтверждённых изменений останется за пределами копии. Приложение для этого не запускают: открытие базы способно выполнить контрольную точку и удалить временные файлы. Снятая при работающей программе копия всё равно может оказаться несогласованной, и это оговаривают.

Если спор о конкретных записях, чем раньше снята копия, тем больше шансов их увидеть. Дальнейшую работу — запросы, проверку целостности, восстановление — ведут на копии.

Отдельная страница: Можно ли исследовать файл SQLite, пока приложением продолжают пользоваться?
Обращение в организацию

Уточните формат и комплектность

Для первого обращения приложите доступные вам копии документов без лишних персональных данных и кратко опишите задачу. Оригиналы и полный комплект передавайте после согласования способа. Сначала проверим компетенцию и комплектность, определим специальность эксперта и сообщим возможные срок и стоимость. Содержательную оценку материалов согласуем отдельно.

Описать задачу