استعادة البيانات المحذوفة من SQLite: التنقل في سلسلة الكتل الحرة

مقدمة

تُعد قواعد بيانات SQLite كنزًا دفينًا من الأدلة الرقمية الموجودة في العديد من التطبيقات، بدءًا من رسائل الدردشة إلى سجلات المعاملات. ولكن ماذا يحدث عندما يتم حذف السجلات؟ أدخل أقفال حرة-أجزاء مخفية من المساحة غير المستخدمة داخل صفحات قاعدة البيانات التي تحتفظ ببقايا البيانات المحذوفة. هذه الكتل الحرة هي منجم ذهب للمحققين الجنائيين، مما يتيح استعادة السجلات الهامة والكشف عن الأدلة المخفية.

تزيل هذه المدونة الغموض عن الأقفال الحرة ل SQLite، وترشدك إلى كيفية عملها، وكيفية تحديد موقعها باستخدام أدوات مثل المحرر السداسي السداسي، وكيفية استعادة السجلات المحذوفة. سواءً كنت محققًا أو متحمسًا للتحليل الجنائي الرقمي، سيزودك هذا الدليل بالتقنيات الأساسية لاستخراج البيانات المخفية.

ما هي الأقفال الحرة في SQLite؟

الكتل الحرة هي أقسام من المساحة غير المستخدمة داخل صفحة قاعدة بيانات SQLite. عندما يتم حذف سجل، لا تتم الكتابة فوق المساحة المقابلة على الفور ما لم يتم تمكين آلية المسح الآمن. بدلاً من ذلك، يتم وضع علامة الكتلة الحرةمتاح للكتابات المستقبلية.

في هذه العملية

  • تتم إزالة المؤشر إلى السجل المحذوف.
  • يتم تحديث رأس الصفحة ليعكس الإزالة.
  • عند الاقتضاء، يتم تعديل الإزاحة التي تشير إلى الكتلة الحرة الأولى.

 

غالبًا ما تحتفظ هذه الأقفال الحرة ببقايا من البيانات الأصلية، مما يجعلها محط تركيز محققي الطب الشرعي الذين يهدفون إلى استعادة السجلات المحذوفة.

مثال على ذلك:

في لقطة الشاشة أدناه، نفحص قاعدة بيانات SQLite باستخدام متصفح قاعدة البيانات. يُظهر جدول "الرسائل" سجلين نشطين، لكن القرائن الجنائية تشير إلى وجود سجلات إضافية محذوفة.

كيف تتلاءم الأقفال الحرة في رؤوس صفحات SQLite

لتحديد موقع الكتل الحرة وتحليلها، نحتاج أولاً إلى فهم بنية صفحات قاعدة بيانات SQLite. تحتوي كل صفحة على عنوان يوفر بيانات وصفية مهمة، بما في ذلك مؤشرات للكتل الحرة.

يوضح الجدول أدناه بنية الرأس لنوع الصفحة 0D:

الأوفست الحجم الوصف
0 1 بايت نوع الصفحة
1 2 بايت إزاحة البايت إلى الكتلة الحرة الأولى
3 2 بايت عدد الخلايا في الصفحة
5 2 بايت الإزاحة إلى البايت الأول من محتوى الخلية
7 1 بايت عدد وحدات البايت المجزأة الحرة المجزأة في الخلايا

الوجبات السريعة الرئيسية:

تشير القيمة عند الإزاحة 1 في رأس الصفحة إلى الكتلة الحرة الأولى. إذا كانت هذه القيمة 0x0000، لا توجد أقفال مجانية على الصفحة.

استخدام المحررات السداسية لتحليل الأقفال الحرة

لتحديد موقع الكتلة الحرة الأولى، نفتح قاعدة البيانات في محرر سداسي عشري. توفر القيمة المكونة من بايتين عند الإزاحة 1 من رأس الصفحة الإزاحة إلى موقع الكتلة الحرة.

في المثال أدناه:

  • يبرز المحرر السداسي عشري الإزاحة 0x03A9 (العشري 937) باللون الأحمر، والذي يشير إلى موقع الكتلة الحرة الأولى.

يكشف الانتقال إلى هذه الإزاحة عن بداية الكتلة الحرة. أدناه، نتفحص الخلية الواقعة عند الإزاحة 937.

فك تشفير رؤوس الكتل الحرة

تحتوي كل كتلة حرة على رأس مكون من أربع بايتات يتألف من:

  1. أول 2 بايت: الإزاحة إلى الكتلة الحرة التالية (0x0000 في حال عدم وجودها).
  2. الثانية 2 بايت: الحجم الإجمالي للكتلة الحرة، بما في ذلك الرأس نفسه.

مثال على ذلك:

عند الإزاحة 0x03A9، يشير رأس المربع الحر إلى:

  • تقع الكتلة الحرة التالية عند الإزاحة 0x03EA (عشري 1002).
  • حجم الكتلة الحرة هو 0x0024 (36 بايت، بما في ذلك الرأس).

استعادة السجلات المحذوفة باستخدام الأقفال الحرة

غالبًا ما تحتوي السجلات المحذوفة على بقايا السجلات المحذوفة، مما يمكّن المحققين الجنائيين من استعادة البيانات الجزئية أو الكاملة. في لقطة الشاشة أدناه، تظهر حمولة السجل المحذوف سليمة وقابلة للاسترداد على الرغم من إزالة مؤشرها.

مثال على ذلك:

  • السجل المحذوف عند الإزاحة 0x03A9 تحتوي على الرسالة: "ليس الكثير. كيف حالك؟"
  • تظل الحقول الرئيسية كما هي، بما في ذلك محتوى الرسالة، على الرغم من الكتابة فوق البيانات الوصفية الأخرى.

نقوم بتحليل السجلات الحرة اللاحقة للكشف عن السجلات المحذوفة الإضافية. عند الإزاحة 0x03EA، يكشف رأس المربع الحر:

  • حجم الكتلة الحرة هو 0x0016 (22 بايت).
  • هذه هي الكتلة الحرة الأخيرة في السلسلة، كما هو موضح في 0x0000 في حقل مؤشر الكتلة الحرة التالي.

تبرز لقطة الشاشة أدناه منطقة الخلية بأكملها من الكتلة الحرة الثانية في السلسلة حيث كانت الرسالة المحذوفة "مرحبًا آندي!"

تحديد السجلات الإضافية المحذوفة

ولكن تصادف وجود سجل آخر محذوف في هذه الصفحة لم تتم الإشارة إليه من خلال سلسلة الكتل الحرة. بالنظر إلى رأس الصفحة، كان هناك سجلان فقط في هذه الصفحة وفقًا للقيمة المكونة من بايتين عند الإزاحة 3 (0x00002). وبما أنه لا يوجد سوى سجلين فقط، فلا يوجد سوى مؤشرين في مصفوفة المؤشرات. يشير هذان المؤشران إلى السجل #2 - "مرحبًا، ما الأمر؟" والسجل #4 - "مرحبًا، كنت أتساءل عما إذا كان لديك أي سكوبي سناكس." قد تلاحظ وجود رسالة طويلة أخرى موجودة في أعلى الصفحة.

القيمة المكونة من بايتين في الإزاحة 5 في رأس الصفحة هي الإزاحة إلى منطقة محتوى الخلية، أي المكان الذي سيُكتب فيه السجل التالي بشكل أساسي، هذا ما لم يكن من الممكن أن يتسع في أحد الأقفال الحرة. هذه القيمة هي 0x0363 وهو الإزاحة العشرية 867.

يشير السهم في لقطة الشاشة أعلاه إلى إزاحة الصفحة 867. هذا هو بداية محتوى الخلية، مما يعني أنه ستتم إضافة السجل التالي أعلى هذا السجل مباشرةً. يحتوي السجل المحذوف أعلى هذا السجل على الرسالة، "حدث أن حصلت على توريد جديد في الليلة الماضية. أنت محظوظ. كم تحتاج؟

تعتبر قاعدة البيانات هذه البيانات مساحة غير مخصصة. قد يتم ملؤها أيضًا بـ 0x00 حيث أنه لا يوجد مؤشر في مصفوفة المؤشرات التي تتناولها. 

إذا تمت إضافة سجل كبير جدًا بحيث لا يتسع داخل القفلين الحرين على الصفحة إلى الجدول الذي تنتمي إليه هذه الصفحة، فسيتم الكتابة فوق الرسالة، والتي تصادف أن تكون السجل #5. 

دعنا نرى كيف يبدو الأمر الآن بعد أن حددنا السجلين الحرين مع السجل الثالث المحذوف الذي ينتظر الكتابة فوقه:

بعد تحليل قاعدة البيانات بصيغتها الخام، يمكننا أن نستنتج أنها تحتوي بالفعل على أكثر من مجرد سجلين "مباشرين" عرضهما عارض قاعدة البيانات. 

من المحتمل أن يكون السجل #1 هو الرسالة "مرحبًا آندي!" بينما من المحتمل أن يكون السجل #3 هو الرسالة "ليس كثيرًا. كيف حالك؟ لا يزال السجل #5 يحتوي على رقم السجل الخاص به داخل خليته التي تم تحديدها كرسالة "لقد حدث أن حصلت على إمدادات جديدة الليلة الماضية. أنت محظوظ. كم تحتاج؟"

 

الخاتمة

تُعد الأقفال الحرة أداة قوية في تحقيقات الطب الشرعي، حيث توفر نافذة على السجلات المحذوفة والبيانات غير المخصصة. من خلال إتقان هذه التقنيات، يمكن للمحققين الكشف عن الآثار الرقمية التي تتركها قواعد البيانات.

هل أنت جاهز للارتقاء بمهاراتك في مجال التحليل الجنائي لـ SQLite إلى المستوى التالي؟ استكشف برامجنا التدريبية المتقدمة أو اتصل بنا لمعرفة كيف يمكننا مساعدتك في أن تصبح خبيرًا في الطب الشرعي.

فيسبوك
تويتر
البريد الإلكتروني
طباعة

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

اشترك لتبقى على اطلاع دائم بالمستجدات!

لا تفوّت أي منشور - احصل على إشعار كلما نشرنا مقالاً جديداً في المدونة أو دليلاً جنائياً أو شاركنا تحديثات مهمة.

آخر مشاركة