{"id":2925,"date":"2025-01-08T10:37:11","date_gmt":"2025-01-08T10:37:11","guid":{"rendered":"https:\/\/elusivedata.io\/?p=2925"},"modified":"2025-08-14T19:31:30","modified_gmt":"2025-08-14T19:31:30","slug":"decoding-varints-a-critical-skill-in-sqlite-forensics","status":"publish","type":"post","link":"https:\/\/elusivedata.io\/pl\/decoding-varints-a-critical-skill-in-sqlite-forensics\/","title":{"rendered":"Dekodowanie zmiennych: Krytyczna umiej\u0119tno\u015b\u0107 w kryminalistyce SQLite"},"content":{"rendered":"<div data-elementor-type=\"wp-post\" data-elementor-id=\"2925\" class=\"elementor elementor-2925\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f400ea3 e-flex e-con-boxed e-con e-parent\" data-id=\"f400ea3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-751fdcd elementor-widget elementor-widget-heading\" data-id=\"751fdcd\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Wprowadzenie<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a11b574 elementor-widget elementor-widget-text-editor\" data-id=\"a11b574\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><strong>Moje pierwsze spotkanie z varints mia\u0142o miejsce wiele lat temu podczas cyfrowego badania kryminalistycznego iPhone'a 3GS w \u015bledztwie dotycz\u0105cym morderstwa i podpalenia.<\/strong> Do tego czasu moja praca kryminalistyczna dotyczy\u0142a g\u0142\u00f3wnie telefon\u00f3w z funkcjami, w szczeg\u00f3lno\u015bci urz\u0105dze\u0144 CDMA z systemem BREW. Ka\u017cda wiadomo\u015b\u0107 tekstowa by\u0142a przechowywana we w\u0142asnym pliku, ze sp\u00f3jnym przesuni\u0119ciem i prost\u0105 warto\u015bci\u0105 szesnastkow\u0105 wskazuj\u0105c\u0105 d\u0142ugo\u015b\u0107 wiadomo\u015bci. By\u0142 to przewidywalny i znajomy proces.<\/p>\n<p>Jednak iPhone postawi\u0142 mnie przed zupe\u0142nie nowym wyzwaniem. Wiadomo\u015bci nie by\u0142y ju\u017c przechowywane jako pojedyncze pliki, ale jako rekordy w bazie danych. W przeciwie\u0144stwie do prostoty telefon\u00f3w z funkcjami, d\u0142ugo\u015b\u0107 ci\u0105gu wiadomo\u015bci nie by\u0142a definiowana przez wyra\u017an\u0105 warto\u015b\u0107 szesnastkow\u0105. Zamiast tego musia\u0142em porusza\u0107 si\u0119 po bazach danych SQLite i nauczy\u0107 si\u0119 analizowa\u0107 \u0142adunki rekord\u00f3w. To w\u0142a\u015bnie tutaj natkn\u0105\u0142em si\u0119 na <strong>varints - liczby ca\u0142kowite o zmiennej d\u0142ugo\u015bci<\/strong>-kompaktowy i wydajny spos\u00f3b kodowania danych. Zrozumienie varint\u00f3w sta\u0142o si\u0119 kluczowe, gdy rozwik\u0142a\u0142em struktur\u0119 bazy danych i wydoby\u0142em kluczowe dowody. W tym przypadku opanowanie varint\u00f3w doprowadzi\u0142o do obci\u0105\u017caj\u0105cych ustale\u0144, kt\u00f3re ostatecznie pomog\u0142y w skazaniu oskar\u017conego za podpalenie i morderstwo.<\/p>\n<p>Varinty s\u0105 podstawowym sk\u0142adnikiem baz danych SQLite, umo\u017cliwiaj\u0105cym wydajne kodowanie liczb ca\u0142kowitych, kt\u00f3re definiuj\u0105 d\u0142ugo\u015b\u0107 kom\u00f3rek, rekord\u00f3w i okre\u015blonych p\u00f3l. Dla praktyk\u00f3w kryminalistyki cyfrowej dekodowanie varint\u00f3w jest niezb\u0119dne do odkrywania krytycznych informacji w plikach baz danych. Te kompaktowe liczby ca\u0142kowite odgrywaj\u0105 znacz\u0105c\u0105 rol\u0119 w mapowaniu struktur tabel, identyfikowaniu \u0142adunk\u00f3w rekord\u00f3w i odzyskiwaniu usuni\u0119tych lub ukrytych danych.<\/p>\n<ul>\n<li>Ten wpis na blogu omawia istotn\u0105 rol\u0119, jak\u0105 odgrywaj\u0105 varinty w kryminalistyce SQLite. Przedstawi\u0119 <a href=\"https:\/\/elusivedata.io\/pl\/tools-varint-calculator\/?v=efad7abb323e\" style=\"\">Kalkulator VarInt<\/a>to bezp\u0142atne narz\u0119dzie zaprojektowane w celu uproszczenia procesu dekodowania i poprowadzenia u\u017cytkownika przez samouczek, kt\u00f3ry pomo\u017ce mu zastosowa\u0107 t\u0119 wiedz\u0119 w dochodzeniach. Od analizowania wpis\u00f3w bazy danych SQLite po rekonstrukcj\u0119 usuni\u0119tych rekord\u00f3w, zrozumienie varint\u00f3w jest umiej\u0119tno\u015bci\u0105, kt\u00f3r\u0105 ka\u017cdy \u015bledczy powinien mie\u0107 w swoim zestawie narz\u0119dzi. Je\u015bli chcesz zastosowa\u0107 te techniki w rzeczywistych przypadkach, nasze <a href=\"https:\/\/elusivedata.io\/pl\/sqlite-forensics\/?v=efad7abb323e\">Certyfikowany kurs SQLite Forensics<\/a> Obejmuje varinty, freelisty, strony przepe\u0142nienia i nie tylko, poprzez praktyczne laboratoria i praktyczne wyzwania.<\/li>\n<\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8ee35c3 elementor-cta--layout-image-above elementor-cta--skin-classic elementor-animated-content elementor-bg-transform elementor-bg-transform-zoom-in elementor-widget elementor-widget-call-to-action\" data-id=\"8ee35c3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"call-to-action.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<a class=\"elementor-cta\" href=\"https:\/\/elusivedata.io\/pl\/sqlite-forensics\/?v=efad7abb323e\">\n\t\t\t\t\t<div class=\"elementor-cta__bg-wrapper\">\n\t\t\t\t<div class=\"elementor-cta__bg elementor-bg\" style=\"background-image: url(https:\/\/elusivedata.io\/wp-content\/uploads\/2025\/06\/SQLite-Forensics-Mobile-Apps-1024x576.jpg);\" role=\"img\" aria-label=\"Analiza \u015bledcza SQLite w aplikacjach mobilnych, takich jak Instagram, Telegram, WhatsApp i Messenger - odkryj ukryte dane z rzeczywistych baz danych.\"><\/div>\n\t\t\t\t<div class=\"elementor-cta__bg-overlay\"><\/div>\n\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-cta__content\">\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<h2 class=\"elementor-cta__title elementor-cta__content-item elementor-content-item\">\n\t\t\t\t\t\tNaucz si\u0119 identyfikowa\u0107 i dekodowa\u0107 varinty, aby odzyskiwa\u0107 i interpretowa\u0107 krytyczne dane z baz danych SQLite.\t\t\t\t\t<\/h2>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-cta__description elementor-cta__content-item elementor-content-item\">\n\t\t\t\t\t\tNasze certyfikowane szkolenie SQLite Forensics Training prowadzi od identyfikacji tych kompaktowych liczb ca\u0142kowitych do pe\u0142nej interpretacji struktur baz danych, odzyskiwania usuni\u0119tych rekord\u00f3w i sprawdzania poprawno\u015bci danych wyj\u015bciowych narz\u0119dzia.\t\t\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-cta__button-wrapper elementor-cta__content-item elementor-content-item\">\n\t\t\t\t\t<span class=\"elementor-cta__button elementor-button elementor-size-\">\n\t\t\t\t\t\tDowiedz si\u0119 wi\u0119cej \u2192\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0a9f034 e-flex e-con-boxed e-con e-parent\" data-id=\"0a9f034\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2d15b32 elementor-widget elementor-widget-heading\" data-id=\"2d15b32\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Zrozumienie warint\u00f3w: Ich wykrywanie i dekodowanie<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1a5cdd5 elementor-widget elementor-widget-text-editor\" data-id=\"1a5cdd5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Aby zag\u0142\u0119bi\u0107 si\u0119 w SQLite i kryminalistyk\u0119 cyfrow\u0105, jedn\u0105 z kluczowych umiej\u0119tno\u015bci, kt\u00f3rych b\u0119dziesz potrzebowa\u0107, jest zrozumienie <strong>liczby ca\u0142kowite o zmiennej d\u0142ugo\u015bci (varints)<\/strong>. Te kompaktowe liczby s\u0105 wsz\u0119dzie w bazach danych SQLite, pomagaj\u0105c systemowi zaoszcz\u0119dzi\u0107 miejsce, wykorzystuj\u0105c jak najmniej bajt\u00f3w do przechowywania warto\u015bci. Ale mog\u0105 by\u0107 r\u00f3wnie\u017c trudne do wykrycia i zdekodowania, je\u015bli nie wiesz, czego szuka\u0107. Przeanalizujmy to krok po kroku.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-440d395 elementor-widget elementor-widget-heading\" data-id=\"440d395\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Co to jest Varint?<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0a4ead6 elementor-widget elementor-widget-text-editor\" data-id=\"0a4ead6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Liczba varint to specjalny spos\u00f3b przechowywania liczb, w kt\u00f3rym rozmiar liczby okre\u015bla liczb\u0119 u\u017cywanych bajt\u00f3w. W przeciwie\u0144stwie do liczb ca\u0142kowitych o sta\u0142ej d\u0142ugo\u015bci (np. 4 bajty lub 8 bajt\u00f3w), varint mo\u017ce by\u0107 tak ma\u0142y jak 1 bajt lub tak du\u017cy jak 9 bajt\u00f3w. Ta elastyczno\u015b\u0107 sprawia, \u017ce varinty zajmuj\u0105 mniej miejsca, ale s\u0105 te\u017c trudniejsze w interpretacji.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-a4470c9 e-flex e-con-boxed e-con e-parent\" data-id=\"a4470c9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b69e6a3 elementor-widget elementor-widget-heading\" data-id=\"b69e6a3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Gdzie mo\u017cna znale\u017a\u0107 Varints?<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1606c9a elementor-widget elementor-widget-text-editor\" data-id=\"1606c9a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>W bazach danych SQLite do kodowania u\u017cywane s\u0105 varinty:<\/p><ul><li>D\u0142ugo\u015b\u0107 kom\u00f3rek lub rekord\u00f3w na stronie bazy danych.<\/li><li>Identyfikatory wierszy, kt\u00f3re jednoznacznie identyfikuj\u0105 rekordy.<\/li><li>D\u0142ugo\u015b\u0107 danych w \u0142adunku rekordu.<\/li><li>R\u00f3\u017cne inne warto\u015bci zwi\u0105zane ze struktur\u0105 bazy danych.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-313b44c e-flex e-con-boxed e-con e-parent\" data-id=\"313b44c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7398cff elementor-widget elementor-widget-heading\" data-id=\"7398cff\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Klucz do czytania warint\u00f3w: Marker Bit<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-364928d elementor-widget elementor-widget-text-editor\" data-id=\"364928d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Pierwsz\u0105 rzecz\u0105, kt\u00f3r\u0105 nale\u017cy wiedzie\u0107 podczas odczytu zmiennej varint, jest okre\u015blenie jej d\u0142ugo\u015bci. Ka\u017cdy bajt w varincie ma warto\u015b\u0107 <strong>bit znacznika<\/strong> (najbardziej znacz\u0105cy bit lub MSB), kt\u00f3ry informuje, czy istnieje inny bajt po prawej stronie, kt\u00f3ry jest cz\u0119\u015bci\u0105 tej samej zmiennej:<\/p><ul><li><strong>Je\u015bli bit znacznika ma warto\u015b\u0107 1<\/strong>nast\u0119pny bajt jest r\u00f3wnie\u017c cz\u0119\u015bci\u0105 varint.<\/li><li><strong>Je\u015bli bit znacznika ma warto\u015b\u0107 0<\/strong>, dotar\u0142e\u015b do ko\u0144ca varint.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f2113ff e-flex e-con-boxed e-con e-parent\" data-id=\"f2113ff\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8b63438 elementor-widget elementor-widget-heading\" data-id=\"8b63438\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Dwa sposoby dekodowania d\u0142ugo\u015bci warint\u00f3w<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-32573a4 elementor-widget elementor-widget-text-editor\" data-id=\"32573a4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Istniej\u0105 dwie metody ustalania d\u0142ugo\u015bci zmiennej varint: d\u0142ugi spos\u00f3b (przy u\u017cyciu binarnego) i \u0142atwy spos\u00f3b (przy u\u017cyciu nibble hex). Om\u00f3wmy obie metody.<\/p><p><strong>D\u0142uga droga: Korzystanie z Binary<\/strong><\/p><ol><li style=\"list-style-type: none;\"><ol><li>Rozpocznij od pierwszego bajtu zmiennej varint.<\/li><li>Przekszta\u0142\u0107 bajt na liczb\u0119 binarn\u0105. Sp\u00f3jrz na najbardziej znacz\u0105cy bit (najbardziej wysuni\u0119ty na lewo).<ul><li>Je\u015bli bit ma warto\u015b\u0107 1, bajt po prawej stronie jest cz\u0119\u015bci\u0105 zmiennej varint.<\/li><li>Je\u015bli bit ma warto\u015b\u0107 0, oznacza to, \u017ce osi\u0105gni\u0119to koniec.<\/li><\/ul><\/li><li>Powtarzaj ten proces dla ka\u017cdego bajtu, a\u017c znajdziesz bajt z MSB r\u00f3wnym 0.<\/li><\/ol><\/li><\/ol><p><strong>Przyk\u0142ad:<\/strong><\/p><ul><li>Bajt: <code>0xC2<\/code> \u2192 Binarny: 11000010 \u2192 MSB: 1 \u2192 Kontynuuj.<\/li><li>Bajt: <code>0x7F<\/code> \u2192 Binarne: 01111111 \u2192 MSB: 0 \u2192 Zatrzymaj tutaj.<br \/><br \/><\/li><\/ul><p><strong>Prosty spos\u00f3b: Korzystanie z Left Nibble<\/strong><\/p><ol><li>Sp\u00f3jrz na lewy nibble (pierwsza cyfra szesnastkowa bajtu).<\/li><li>Je\u015bli lewy nibble ma warto\u015b\u0107 8 lub wy\u017csz\u0105 (8, 9, A, B, C, D, E lub F), nast\u0119pny bajt jest cz\u0119\u015bci\u0105 varint.<\/li><li>Je\u015bli lewy nibble ma warto\u015b\u0107 7 lub ni\u017csz\u0105 (od 0 do 7), oznacza to, \u017ce osi\u0105gni\u0119to koniec zmiennej varint.<br \/><br \/><\/li><\/ol><p><strong>Dlaczego to dzia\u0142a:<\/strong> Lewy nibble r\u00f3wny 8 lub wi\u0119cej oznacza, \u017ce MSB wynosi 1, podczas gdy lewy nibble r\u00f3wny 7 lub mniej oznacza, \u017ce MSB wynosi 0.<\/p><p><strong>Przyk\u0142ad:<\/strong><\/p><ul><li>Bajt: <code>0xC2<\/code> \u2192 Lewy nibble: C (wi\u0119cej ni\u017c 8) \u2192 Kontynuuj.<\/li><li>Bajt: <code>0x7F<\/code> \u2192 Lewy nibble: 7 (mniej ni\u017c 8) \u2192 Zatrzymaj si\u0119 tutaj.<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e1dd116 e-flex e-con-boxed e-con e-parent\" data-id=\"e1dd116\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2820676 elementor-widget elementor-widget-image\" data-id=\"2820676\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"670\" height=\"387\" src=\"https:\/\/elusivedata.io\/wp-content\/uploads\/2025\/01\/Varint_in_Hex_03.png\" class=\"attachment-large size-large wp-image-2940\" alt=\"SQLite VarInt in hex view 03 \u2014 forensic analysis of variable-length integer encoding\" srcset=\"https:\/\/elusivedata.io\/wp-content\/uploads\/2025\/01\/Varint_in_Hex_03.png.webp 670w, https:\/\/elusivedata.io\/wp-content\/uploads\/2025\/01\/Varint_in_Hex_03-300x173.png.webp 300w, https:\/\/elusivedata.io\/wp-content\/uploads\/2025\/01\/Varint_in_Hex_03-600x347.png.webp 600w\" sizes=\"(max-width: 670px) 100vw, 670px\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">Warto\u015b\u0107 varint (zaznaczona na czerwono) okre\u015bla d\u0142ugo\u015b\u0107 tabeli komunikat\u00f3w<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-32888b9 elementor-widget elementor-widget-heading\" data-id=\"32888b9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Zrozumienie zmienno\u015bci d\u0142ugo\u015bci kom\u00f3rek: praktyczny przyk\u0142ad<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6c77a5d elementor-widget elementor-widget-text-editor\" data-id=\"6c77a5d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Zmienne s\u0105 u\u017cywane w SQLite do identyfikowania rozmiaru <strong>kom\u00f3rki<\/strong> na stronach bazy danych. Kom\u00f3rki te mog\u0105 zawiera\u0107 wszystko, od tabel po rekordy tabel, a pierwszy bajt (bajty) kom\u00f3rki m\u00f3wi nam, jak du\u017ca jest kom\u00f3rka. Ten wska\u017anik d\u0142ugo\u015bci jest sam w sobie zmienn\u0105, kt\u00f3ra mo\u017ce mie\u0107 d\u0142ugo\u015b\u0107 od 1 do 9 bajt\u00f3w.<\/p><h4><strong>Przyk\u0142ad ze \u015bwiata rzeczywistego: Plik WAL<\/strong><\/h4><p>W tym przyk\u0142adzie kom\u00f3rka zawiera <strong>tabela komunikat\u00f3w<\/strong>. Pierwszy bajt kom\u00f3rki to <code>0x81<\/code>wskazuj\u0105c dwubajtowy varint.<\/p><ul><li><strong>Podzia\u0142:<\/strong><ul><li>Bajt 1: <code>0x81<\/code> \u2192 Binarnie: 10000001 \u2192 Bit znacznika: 1 \u2192 Kontynuuj.<\/li><li>Bajt 2: <code>0x07<\/code> \u2192 Binarny: 00000111 \u2192 Bit znacznika: 0 \u2192 Stop.<\/li><\/ul><\/li><\/ul><h4><strong>Dekod<\/strong><strong>w Varint<\/strong><\/h4><p>Teraz musimy zdekodowa\u0107 varint. Je\u015bli po prostu przekonwertujemy warto\u015b\u0107 <code>0x8107<\/code> na liczb\u0119 ca\u0142kowit\u0105, omy\u0142kowo obliczyliby\u015bmy ogromn\u0105 liczb\u0119 33,031, kt\u00f3ra wyra\u017anie nie odpowiada rzeczywistemu rozmiarowi kom\u00f3rki.<\/p><p><strong>Dlaczego?<\/strong><br \/>Bity znacznika nie maj\u0105 wp\u0142ywu na rzeczywist\u0105 warto\u015b\u0107 varint. Aby poprawnie zdekodowa\u0107 varint, musimy <strong>usuwanie znacznik\u00f3w<\/strong> i interpretowa\u0107 tylko znacz\u0105ce cz\u0119\u015bci reprezentacji binarnej. Oto jak to si\u0119 robi:<\/p><ul><li><strong>Decode:<\/strong><ul><li>Usu\u0144 bity znacznik\u00f3w: 0000001 i 0000111.<\/li><li>Po\u0142\u0105cz dwa septety: 00000000 10000111 \u2192 dziesi\u0119tny: 135.<\/li><\/ul><\/li><li>D\u0142ugo\u015b\u0107 kom\u00f3rki wynosi 135 bajt\u00f3w (z wy\u0142\u0105czeniem varint i ROWID).<\/li><\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ae9848d elementor-widget elementor-widget-video\" data-id=\"ae9848d\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;youtube_url&quot;:&quot;https:\\\/\\\/www.youtube.com\\\/watch?v=5Gr4LtE-_iE&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}\" data-widget_type=\"video.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-wrapper elementor-open-inline\">\n\t\t\t<div class=\"elementor-video\"><\/div>\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7df1e43 e-flex e-con-boxed e-con e-parent\" data-id=\"7df1e43\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f2f28f2 elementor-cta--layout-image-above elementor-cta--skin-classic elementor-animated-content elementor-bg-transform elementor-bg-transform-zoom-in elementor-widget elementor-widget-call-to-action\" data-id=\"f2f28f2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"call-to-action.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<a class=\"elementor-cta\" href=\"https:\/\/elusivedata.io\/pl\/sqlite-forensics\/?v=efad7abb323e\">\n\t\t\t\t\t\t\t<div class=\"elementor-cta__content\">\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<h2 class=\"elementor-cta__title elementor-cta__content-item elementor-content-item\">\n\t\t\t\t\t\tNasze szkolenie SQLite Forensics zapewnia krok po kroku proces dekodowania varint\u00f3w, freelist\u00f3w i innych struktur wewn\u0119trznych - dzi\u0119ki czemu mo\u017cesz pracowa\u0107 poza ograniczeniami narz\u0119dzi.\t\t\t\t\t<\/h2>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-cta__button-wrapper elementor-cta__content-item elementor-content-item\">\n\t\t\t\t\t<span class=\"elementor-cta__button elementor-button elementor-size-\">\n\t\t\t\t\t\tDowiedz si\u0119 wi\u0119cej \u2192\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fa75970 elementor-widget elementor-widget-heading\" data-id=\"fa75970\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Korzystanie z kalkulatora Varint dla wydajno\u015bci<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-52213a4 elementor-widget elementor-widget-text-editor\" data-id=\"52213a4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>The <a href=\"https:\/\/elusivedata.io\/pl\/tools-varint-calculator\/?v=efad7abb323e\">Kalkulator Varint<\/a> upraszcza ten proces. Wprowad\u017a warto\u015b\u0107 szesnastkow\u0105 (np. 8107), aby szybko zdekodowa\u0107 varint. W powy\u017cszym przyk\u0142adzie kalkulator zwr\u00f3ci 135, potwierdzaj\u0105c d\u0142ugo\u015b\u0107.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-98af75a e-flex e-con-boxed e-con e-parent\" data-id=\"98af75a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-afaeca0 elementor-widget elementor-widget-image\" data-id=\"afaeca0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"402\" height=\"412\" src=\"https:\/\/elusivedata.io\/wp-content\/uploads\/2025\/01\/Calculator_1.png\" class=\"attachment-large size-large wp-image-2951\" alt=\"Calculator for SQLite forensics \u2014 forensic hex value calculation and conversion tool\" srcset=\"https:\/\/elusivedata.io\/wp-content\/uploads\/2025\/01\/Calculator_1.png.webp 402w, https:\/\/elusivedata.io\/wp-content\/uploads\/2025\/01\/Calculator_1-293x300.png.webp 293w\" sizes=\"(max-width: 402px) 100vw, 402px\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">Konwersja zmiennej 0x8107 na liczb\u0119 dziesi\u0119tn\u0105 135<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f3ada8e e-flex e-con-boxed e-con e-parent\" data-id=\"f3ada8e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8882a6a elementor-widget elementor-widget-heading\" data-id=\"8882a6a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Dekodowanie zmiennych w nag\u0142\u00f3wkach rekord\u00f3w<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-24e5c3b elementor-widget elementor-widget-text-editor\" data-id=\"24e5c3b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>W SQLite nag\u0142\u00f3wki rekord\u00f3w u\u017cywaj\u0105 zmiennych do definiowania:<\/p><ol><li><strong>D\u0142ugo\u015b\u0107:<\/strong> Ile danych nale\u017cy odczyta\u0107.<\/li><li><strong>Typ:<\/strong> Spos\u00f3b interpretacji danych (liczba ca\u0142kowita, ci\u0105g znak\u00f3w, BLOB itp.).<\/li><\/ol>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-93e73f3 e-flex e-con-boxed e-con e-parent\" data-id=\"93e73f3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e42e020 elementor-widget elementor-widget-image\" data-id=\"e42e020\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"670\" height=\"387\" src=\"https:\/\/elusivedata.io\/wp-content\/uploads\/2025\/01\/record-header-string-length-varint.png\" class=\"attachment-large size-large wp-image-2955\" alt=\"SQLite record header string length VarInt \u2014 forensic analysis of text field encoding\" srcset=\"https:\/\/elusivedata.io\/wp-content\/uploads\/2025\/01\/record-header-string-length-varint.png.webp 670w, https:\/\/elusivedata.io\/wp-content\/uploads\/2025\/01\/record-header-string-length-varint-300x173.png.webp 300w, https:\/\/elusivedata.io\/wp-content\/uploads\/2025\/01\/record-header-string-length-varint-600x347.png.webp 600w\" sizes=\"(max-width: 670px) 100vw, 670px\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">Varint 0x25 w nag\u0142\u00f3wku tego rekordu wskazuje d\u0142ugo\u015b\u0107 \u0142a\u0144cucha w \u0142adunku<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2c705b3 e-flex e-con-boxed e-con e-parent\" data-id=\"2c705b3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2407d45 elementor-widget elementor-widget-text-editor\" data-id=\"2407d45\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<h4><strong>Przyk\u0142ad: D\u0142ugo\u015b\u0107 \u0142a\u0144cucha<\/strong><\/h4>\nRozszyfrujmy varint w nag\u0142\u00f3wku rekordu:\n<ul>\n \t<li><strong>Varint:<\/strong> <code>0x25<\/code>\n<ul>\n \t<li>Lewy nibble: 2 (mniej ni\u017c 8) \u2192 Jednobajtowy varint.<\/li>\n \t<li>Po przecinku: 37.<\/li>\n<\/ul>\n<\/li>\n \t<li><strong>\u0141adunek:<\/strong> D\u0142ugo\u015b\u0107 ci\u0105gu = 12 bajt\u00f3w (+97444455667).<\/li>\n<\/ul>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-c99b93d e-flex e-con-boxed e-con e-parent\" data-id=\"c99b93d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f8fbf4b elementor-widget elementor-widget-image\" data-id=\"f8fbf4b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t<figure class=\"wp-caption\">\n\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"295\" height=\"300\" src=\"https:\/\/elusivedata.io\/wp-content\/uploads\/2025\/01\/Skarmavbild-2025-06-04-kl.-16.33.38-295x300.png\" class=\"attachment-medium size-medium wp-image-8526\" alt=\"SQLite VarInt Calculator tool \u2014 decode variable-length integers in forensic analysis\" srcset=\"https:\/\/elusivedata.io\/wp-content\/uploads\/2025\/01\/Skarmavbild-2025-06-04-kl.-16.33.38-295x300.png.webp 295w, https:\/\/elusivedata.io\/wp-content\/uploads\/2025\/01\/Skarmavbild-2025-06-04-kl.-16.33.38-768x781.png.webp 768w, https:\/\/elusivedata.io\/wp-content\/uploads\/2025\/01\/Skarmavbild-2025-06-04-kl.-16.33.38-12x12.png.webp 12w, https:\/\/elusivedata.io\/wp-content\/uploads\/2025\/01\/Skarmavbild-2025-06-04-kl.-16.33.38-600x610.png.webp 600w, https:\/\/elusivedata.io\/wp-content\/uploads\/2025\/01\/Skarmavbild-2025-06-04-kl.-16.33.38.png.webp 812w\" sizes=\"(max-width: 295px) 100vw, 295px\" \/>\t\t\t\t\t\t\t\t\t\t\t<figcaption class=\"widget-image-caption wp-caption-text\">Kalkulator varint konwertuje varinty na ci\u0105gi znak\u00f3w i d\u0142ugo\u015bci BLOB<\/figcaption>\n\t\t\t\t\t\t\t\t\t\t<\/figure>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7a6e38f e-flex e-con-boxed e-con e-parent\" data-id=\"7a6e38f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7ea4454 elementor-widget elementor-widget-heading\" data-id=\"7ea4454\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Przemy\u015blenia ko\u0144cowe<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6a55de6 elementor-widget elementor-widget-text-editor\" data-id=\"6a55de6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Zrozumienie i dekodowanie zmiennych jest podstawow\u0105 umiej\u0119tno\u015bci\u0105 dla ka\u017cdego cyfrowego \u015bledczego pracuj\u0105cego z bazami danych SQLite. Te kompaktowe liczby ca\u0142kowite s\u0105 kluczem do interpretowania struktur baz danych, okre\u015blania rozmiar\u00f3w kom\u00f3rek i skutecznego odzyskiwania danych.<\/p>\n<p>Dzi\u0119ki narz\u0119dziom takim jak <a href=\"https:\/\/elusivedata.io\/pl\/tools-varint-calculator\/?v=efad7abb323e\">Kalkulator Varint,<\/a> Proces ten staje si\u0119 bardziej dost\u0119pny, umo\u017cliwiaj\u0105c praktykom medycyny s\u0105dowej skupienie si\u0119 na odkrywaniu prawdy ukrytej w dowodach cyfrowych. Opanowanie varints to co\u015b wi\u0119cej ni\u017c umiej\u0119tno\u015b\u0107 techniczna - to istotna zdolno\u015b\u0107, kt\u00f3ra mo\u017ce bezpo\u015brednio wp\u0142yn\u0105\u0107 na wynik dochodzenia.<\/p>\n<p>Mo\u017cesz przeczyta\u0107 wi\u0119cej i pobra\u0107 <a href=\"https:\/\/elusivedata.io\/pl\/tools-varint-calculator\/?v=efad7abb323e\">Kalkulator Varint <\/a>tutaj:<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b4cf2b5 elementor-widget elementor-widget-button\" data-id=\"b4cf2b5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/elusivedata.io\/pl\/tools-varint-calculator\/?v=efad7abb323e\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Pobierz kalkulator VarInt<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b6082e2 elementor-widget elementor-widget-heading\" data-id=\"b6082e2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Mo\u017cesz by\u0107 tak\u017ce zainteresowany<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-62b1289 elementor-widget elementor-widget-video\" data-id=\"62b1289\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;youtube_url&quot;:&quot;https:\\\/\\\/www.youtube.com\\\/watch?v=QFn63mQ5_gI&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}\" data-widget_type=\"video.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-wrapper elementor-open-inline\">\n\t\t\t<div class=\"elementor-video\"><\/div>\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7413dc6 elementor-cta--layout-image-above elementor-cta--skin-classic elementor-animated-content elementor-bg-transform elementor-bg-transform-zoom-in elementor-widget elementor-widget-call-to-action\" data-id=\"7413dc6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"call-to-action.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<a class=\"elementor-cta\" href=\"https:\/\/elusivedata.io\/pl\/ed-sqlite-visualizer\/?v=efad7abb323e\">\n\t\t\t\t\t\t\t<div class=\"elementor-cta__content\">\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<h2 class=\"elementor-cta__title elementor-cta__content-item elementor-content-item\">\n\t\t\t\t\t\tSQLite Visualizer. Zupe\u0142nie nowy spos\u00f3b odkrywania SQLite.\t\t\t\t\t<\/h2>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-cta__description elementor-cta__content-item elementor-content-item\">\n\t\t\t\t\t\tNadchodz\u0105cy ED SQLite Visualizer pozwala zobaczy\u0107 wewn\u0119trzne elementy bazy danych, odzyska\u0107 ukryte rekordy i po\u0142\u0105czy\u0107 kropki szybciej ni\u017c kiedykolwiek, a wszystko to wizualnie. Jest ju\u017c u\u017cywany w naszym pe\u0142nym kursie SQLite, a wkr\u00f3tce b\u0119dzie dost\u0119pny dla wszystkich. \t\t\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-cta__button-wrapper elementor-cta__content-item elementor-content-item\">\n\t\t\t\t\t<span class=\"elementor-cta__button elementor-button elementor-size-\">\n\t\t\t\t\t\tZobacz, co nadchodzi \u2192\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Varinty s\u0105 podstaw\u0105 wydajnego przechowywania danych SQLite, koduj\u0105c warto\u015bci w kompaktowym formacie, kt\u00f3ry \u015bledczy musz\u0105 zdekodowa\u0107, aby odkry\u0107 krytyczne dowody. Ten blog po\u015bwi\u0119cony jest procesowi dekodowania, rzeczywistym przyk\u0142adom i narz\u0119dziom, takim jak Varint Calculator, kt\u00f3re upraszczaj\u0105 analiz\u0119 kryminalistyczn\u0105.<\/p>","protected":false},"author":1,"featured_media":2926,"comment_status":"open","ping_status":"open","sticky":false,"template":"elementor_theme","format":"standard","meta":{"content-type":"","footnotes":""},"categories":[21],"tags":[],"class_list":["post-2925","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mobile-forensics"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Decoding Varints: A Critical Skill in SQLite Forensics - Elusive Data<\/title>\n<meta name=\"description\" content=\"Decoding variable-length integers (Varints) is a critical skill in SQLite forensics. Learn how Varints work, where they appear in mobile app databases, and how to decode them manually.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/elusivedata.io\/pl\/decoding-varints-a-critical-skill-in-sqlite-forensics\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Decoding Varints: A Critical Skill in SQLite Forensics\" \/>\n<meta property=\"og:description\" content=\"Decoding variable-length integers (Varints) is a critical skill in SQLite forensics. Learn how Varints work, where they appear in mobile app databases, and how to decode them manually.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/elusivedata.io\/pl\/decoding-varints-a-critical-skill-in-sqlite-forensics\/\" \/>\n<meta property=\"og:site_name\" content=\"Elusive Data\" \/>\n<meta property=\"article:published_time\" content=\"2025-01-08T10:37:11+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-14T19:31:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/elusivedata.io\/wp-content\/uploads\/2025\/01\/VarInt_Post.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1456\" \/>\n\t<meta property=\"og:image:height\" content=\"816\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"James Eichbaum\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Napisane przez\" \/>\n\t<meta name=\"twitter:data1\" content=\"James Eichbaum\" \/>\n\t<meta name=\"twitter:label2\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minut\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/elusivedata.io\\\/decoding-varints-a-critical-skill-in-sqlite-forensics\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/elusivedata.io\\\/decoding-varints-a-critical-skill-in-sqlite-forensics\\\/\"},\"author\":{\"name\":\"James Eichbaum\",\"@id\":\"https:\\\/\\\/elusivedata.io\\\/#\\\/schema\\\/person\\\/2c00b8313d6aef321fd69bf82e2aa436\"},\"headline\":\"Decoding Varints: A Critical Skill in SQLite Forensics\",\"datePublished\":\"2025-01-08T10:37:11+00:00\",\"dateModified\":\"2025-08-14T19:31:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/elusivedata.io\\\/decoding-varints-a-critical-skill-in-sqlite-forensics\\\/\"},\"wordCount\":1370,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/elusivedata.io\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/elusivedata.io\\\/decoding-varints-a-critical-skill-in-sqlite-forensics\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/elusivedata.io\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/VarInt_Post.png\",\"articleSection\":[\"Mobile Forensics\"],\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/elusivedata.io\\\/decoding-varints-a-critical-skill-in-sqlite-forensics\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/elusivedata.io\\\/decoding-varints-a-critical-skill-in-sqlite-forensics\\\/\",\"url\":\"https:\\\/\\\/elusivedata.io\\\/decoding-varints-a-critical-skill-in-sqlite-forensics\\\/\",\"name\":\"Decoding Varints: A Critical Skill in SQLite Forensics - Elusive Data\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/elusivedata.io\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/elusivedata.io\\\/decoding-varints-a-critical-skill-in-sqlite-forensics\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/elusivedata.io\\\/decoding-varints-a-critical-skill-in-sqlite-forensics\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/elusivedata.io\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/VarInt_Post.png\",\"datePublished\":\"2025-01-08T10:37:11+00:00\",\"dateModified\":\"2025-08-14T19:31:30+00:00\",\"description\":\"Decoding variable-length integers (Varints) is a critical skill in SQLite forensics. Learn how Varints work, where they appear in mobile app databases, and how to decode them manually.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/elusivedata.io\\\/decoding-varints-a-critical-skill-in-sqlite-forensics\\\/#breadcrumb\"},\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/elusivedata.io\\\/decoding-varints-a-critical-skill-in-sqlite-forensics\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/elusivedata.io\\\/decoding-varints-a-critical-skill-in-sqlite-forensics\\\/#primaryimage\",\"url\":\"https:\\\/\\\/elusivedata.io\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/VarInt_Post.png\",\"contentUrl\":\"https:\\\/\\\/elusivedata.io\\\/wp-content\\\/uploads\\\/2025\\\/01\\\/VarInt_Post.png\",\"width\":1456,\"height\":816,\"caption\":\"SQLite VarInt blog post diagram \u2014 forensic explanation of variable-length integer format\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/elusivedata.io\\\/decoding-varints-a-critical-skill-in-sqlite-forensics\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/elusivedata.io\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Decoding Varints: A Critical Skill in SQLite Forensics\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/elusivedata.io\\\/#website\",\"url\":\"https:\\\/\\\/elusivedata.io\\\/\",\"name\":\"ElusiveData\",\"description\":\"Excellence in Digital Forensics Training and Consulting\",\"publisher\":{\"@id\":\"https:\\\/\\\/elusivedata.io\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/elusivedata.io\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/elusivedata.io\\\/#organization\",\"name\":\"ElusiveData\",\"url\":\"https:\\\/\\\/elusivedata.io\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/elusivedata.io\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/elusivedata.io\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/Asset-3_2x-scaled.png\",\"contentUrl\":\"https:\\\/\\\/elusivedata.io\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/Asset-3_2x-scaled.png\",\"width\":2560,\"height\":370,\"caption\":\"ElusiveData\"},\"image\":{\"@id\":\"https:\\\/\\\/elusivedata.io\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.youtube.com\\\/@elusivedata\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/elusivedata.io\\\/#\\\/schema\\\/person\\\/2c00b8313d6aef321fd69bf82e2aa436\",\"name\":\"James Eichbaum\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/elusivedata.io\\\/wp-content\\\/plugins\\\/ld-dashboard\\\/public\\\/img\\\/img_avatar.png\",\"url\":\"https:\\\/\\\/elusivedata.io\\\/wp-content\\\/plugins\\\/ld-dashboard\\\/public\\\/img\\\/img_avatar.png\",\"contentUrl\":\"https:\\\/\\\/elusivedata.io\\\/wp-content\\\/plugins\\\/ld-dashboard\\\/public\\\/img\\\/img_avatar.png\",\"caption\":\"James Eichbaum\"},\"sameAs\":[\"http:\\\/\\\/elusivedata.io\"],\"url\":\"https:\\\/\\\/elusivedata.io\\\/pl\\\/author\\\/eichbaumjamesgmail-com\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Dekodowanie zmiennych: Krytyczna umiej\u0119tno\u015b\u0107 w SQLite Forensics - Elusive Data","description":"Decoding variable-length integers (Varints) is a critical skill in SQLite forensics. Learn how Varints work, where they appear in mobile app databases, and how to decode them manually.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/elusivedata.io\/pl\/decoding-varints-a-critical-skill-in-sqlite-forensics\/","og_locale":"pl_PL","og_type":"article","og_title":"Decoding Varints: A Critical Skill in SQLite Forensics","og_description":"Decoding variable-length integers (Varints) is a critical skill in SQLite forensics. Learn how Varints work, where they appear in mobile app databases, and how to decode them manually.","og_url":"https:\/\/elusivedata.io\/pl\/decoding-varints-a-critical-skill-in-sqlite-forensics\/","og_site_name":"Elusive Data","article_published_time":"2025-01-08T10:37:11+00:00","article_modified_time":"2025-08-14T19:31:30+00:00","og_image":[{"width":1456,"height":816,"url":"https:\/\/elusivedata.io\/wp-content\/uploads\/2025\/01\/VarInt_Post.png","type":"image\/png"}],"author":"James Eichbaum","twitter_card":"summary_large_image","twitter_misc":{"Napisane przez":"James Eichbaum","Szacowany czas czytania":"7 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/elusivedata.io\/decoding-varints-a-critical-skill-in-sqlite-forensics\/#article","isPartOf":{"@id":"https:\/\/elusivedata.io\/decoding-varints-a-critical-skill-in-sqlite-forensics\/"},"author":{"name":"James Eichbaum","@id":"https:\/\/elusivedata.io\/#\/schema\/person\/2c00b8313d6aef321fd69bf82e2aa436"},"headline":"Decoding Varints: A Critical Skill in SQLite Forensics","datePublished":"2025-01-08T10:37:11+00:00","dateModified":"2025-08-14T19:31:30+00:00","mainEntityOfPage":{"@id":"https:\/\/elusivedata.io\/decoding-varints-a-critical-skill-in-sqlite-forensics\/"},"wordCount":1370,"commentCount":0,"publisher":{"@id":"https:\/\/elusivedata.io\/#organization"},"image":{"@id":"https:\/\/elusivedata.io\/decoding-varints-a-critical-skill-in-sqlite-forensics\/#primaryimage"},"thumbnailUrl":"https:\/\/elusivedata.io\/wp-content\/uploads\/2025\/01\/VarInt_Post.png","articleSection":["Mobile Forensics"],"inLanguage":"pl-PL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/elusivedata.io\/decoding-varints-a-critical-skill-in-sqlite-forensics\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/elusivedata.io\/decoding-varints-a-critical-skill-in-sqlite-forensics\/","url":"https:\/\/elusivedata.io\/decoding-varints-a-critical-skill-in-sqlite-forensics\/","name":"Dekodowanie zmiennych: Krytyczna umiej\u0119tno\u015b\u0107 w SQLite Forensics - Elusive Data","isPartOf":{"@id":"https:\/\/elusivedata.io\/#website"},"primaryImageOfPage":{"@id":"https:\/\/elusivedata.io\/decoding-varints-a-critical-skill-in-sqlite-forensics\/#primaryimage"},"image":{"@id":"https:\/\/elusivedata.io\/decoding-varints-a-critical-skill-in-sqlite-forensics\/#primaryimage"},"thumbnailUrl":"https:\/\/elusivedata.io\/wp-content\/uploads\/2025\/01\/VarInt_Post.png","datePublished":"2025-01-08T10:37:11+00:00","dateModified":"2025-08-14T19:31:30+00:00","description":"Decoding variable-length integers (Varints) is a critical skill in SQLite forensics. Learn how Varints work, where they appear in mobile app databases, and how to decode them manually.","breadcrumb":{"@id":"https:\/\/elusivedata.io\/decoding-varints-a-critical-skill-in-sqlite-forensics\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/elusivedata.io\/decoding-varints-a-critical-skill-in-sqlite-forensics\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/elusivedata.io\/decoding-varints-a-critical-skill-in-sqlite-forensics\/#primaryimage","url":"https:\/\/elusivedata.io\/wp-content\/uploads\/2025\/01\/VarInt_Post.png","contentUrl":"https:\/\/elusivedata.io\/wp-content\/uploads\/2025\/01\/VarInt_Post.png","width":1456,"height":816,"caption":"SQLite VarInt blog post diagram \u2014 forensic explanation of variable-length integer format"},{"@type":"BreadcrumbList","@id":"https:\/\/elusivedata.io\/decoding-varints-a-critical-skill-in-sqlite-forensics\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/elusivedata.io\/"},{"@type":"ListItem","position":2,"name":"Decoding Varints: A Critical Skill in SQLite Forensics"}]},{"@type":"WebSite","@id":"https:\/\/elusivedata.io\/#website","url":"https:\/\/elusivedata.io\/","name":"ElusiveData","description":"Doskona\u0142o\u015b\u0107 w zakresie szkole\u0144 i doradztwa w dziedzinie informatyki \u015bledczej","publisher":{"@id":"https:\/\/elusivedata.io\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/elusivedata.io\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/elusivedata.io\/#organization","name":"ElusiveData","url":"https:\/\/elusivedata.io\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/elusivedata.io\/#\/schema\/logo\/image\/","url":"https:\/\/elusivedata.io\/wp-content\/uploads\/2024\/11\/Asset-3_2x-scaled.png","contentUrl":"https:\/\/elusivedata.io\/wp-content\/uploads\/2024\/11\/Asset-3_2x-scaled.png","width":2560,"height":370,"caption":"ElusiveData"},"image":{"@id":"https:\/\/elusivedata.io\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.youtube.com\/@elusivedata"]},{"@type":"Person","@id":"https:\/\/elusivedata.io\/#\/schema\/person\/2c00b8313d6aef321fd69bf82e2aa436","name":"James Eichbaum","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/elusivedata.io\/wp-content\/plugins\/ld-dashboard\/public\/img\/img_avatar.png","url":"https:\/\/elusivedata.io\/wp-content\/plugins\/ld-dashboard\/public\/img\/img_avatar.png","contentUrl":"https:\/\/elusivedata.io\/wp-content\/plugins\/ld-dashboard\/public\/img\/img_avatar.png","caption":"James Eichbaum"},"sameAs":["http:\/\/elusivedata.io"],"url":"https:\/\/elusivedata.io\/pl\/author\/eichbaumjamesgmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/elusivedata.io\/pl\/wp-json\/wp\/v2\/posts\/2925","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/elusivedata.io\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/elusivedata.io\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/elusivedata.io\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/elusivedata.io\/pl\/wp-json\/wp\/v2\/comments?post=2925"}],"version-history":[{"count":73,"href":"https:\/\/elusivedata.io\/pl\/wp-json\/wp\/v2\/posts\/2925\/revisions"}],"predecessor-version":[{"id":13215,"href":"https:\/\/elusivedata.io\/pl\/wp-json\/wp\/v2\/posts\/2925\/revisions\/13215"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/elusivedata.io\/pl\/wp-json\/wp\/v2\/media\/2926"}],"wp:attachment":[{"href":"https:\/\/elusivedata.io\/pl\/wp-json\/wp\/v2\/media?parent=2925"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/elusivedata.io\/pl\/wp-json\/wp\/v2\/categories?post=2925"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/elusivedata.io\/pl\/wp-json\/wp\/v2\/tags?post=2925"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}