Kung gusto mong malaman kung anong mga uri ng WhatsApp forensic artifact ang umiiral sa iba't ibang operating system at kung saan eksaktong matatagpuan ang mga ito, ito ang lugar para sa iyo. Ang artikulong ito ay mula sa isang espesyalista sa Group-IB Computer Forensics Laboratory Igor Mikhailov nagsisimula ng serye ng mga post tungkol sa WhatsApp forensics at kung anong impormasyon ang makukuha mula sa pagsusuri sa device.
Agad nating tandaan na ang iba't ibang mga operating system ay nag-iimbak ng iba't ibang uri ng mga artifact ng WhatsApp, at kung ang isang mananaliksik ay makakapag-extract ng ilang uri ng data ng WhatsApp mula sa isang device, hindi ito nangangahulugan na ang mga katulad na uri ng data ay maaaring makuha mula sa isa pang device. Halimbawa, kung aalisin ang isang unit ng system na nagpapatakbo ng Windows OS, malamang na hindi makikita ang mga chat sa WhatsApp sa mga disk nito (maliban sa mga backup na kopya ng mga iOS device, na makikita sa parehong mga drive). Ang pag-agaw ng mga laptop at mobile device ay magkakaroon ng sariling katangian. Pag-usapan natin ito nang mas detalyado.
Mga artifact ng WhatsApp sa Android device
Upang ma-extract ang mga artifact ng WhatsApp mula sa isang Android device, ang mananaliksik ay dapat magkaroon ng mga karapatan ng superuser ('ugat') sa device na sinisiyasat o kung hindi man ay makapag-extract ng pisikal na memory dump ng device, o ng file system nito (halimbawa, gamit ang mga kahinaan sa software ng isang partikular na mobile device).
Ang mga file ng application ay matatagpuan sa memorya ng telepono sa seksyon kung saan naka-save ang data ng user. Bilang isang tuntunin, pinangalanan ang seksyong ito 'userdata'. Ang mga subdirectory at mga file ng programa ay matatagpuan sa landas: '/data/data/com.whatsapp/'.
Ang mga pangunahing file na naglalaman ng mga forensic artifact ng WhatsApp sa Android OS ay mga database 'wa.db' ΠΈ 'msgstore.db'.
Sa database 'wa.db' naglalaman ng kumpletong listahan ng contact ng isang user ng WhatsApp, kabilang ang numero ng telepono, display name, timestamp at anumang iba pang impormasyong ibinigay habang nagrerehistro para sa WhatsApp. file 'wa.db' matatagpuan sa daanan: '/data/data/com.whatsapp/databases/' at may sumusunod na istraktura:
Ang pinaka-kagiliw-giliw na mga talahanayan sa database 'wa.db' para sa mananaliksik ay:
- 'wa_contacts'
Ang talahanayang ito ay naglalaman ng impormasyon sa pakikipag-ugnayan: WhatsApp contact id, impormasyon ng katayuan, pangalan ng display ng user, mga timestamp, atbp.Hitsura ng talahanayan:
Istraktura ng talahanayanPangalan ng field Halaga _id record sequence number (sa SQL table) jid WhatsApp contact ID, nakasulat sa format na <phone number>@s.whatsapp.net is_whatsapp_user naglalaman ng '1' kung ang contact ay tumutugma sa isang aktwal na gumagamit ng WhatsApp, '0' kung hindi katayuan naglalaman ng tekstong ipinapakita sa katayuan ng contact status_timestamp naglalaman ng timestamp sa Unix Epoch Time (ms) na format numero numero ng telepono na nauugnay sa contact raw_contact_id makipag-ugnayan sa serial number display_name contact display name phone_type uri ng telepono phone_label label na nauugnay sa contact number unseen_msg_count bilang ng mga mensaheng ipinadala ng isang contact ngunit hindi binasa ng tatanggap photo_ts naglalaman ng timestamp sa Unix Epoch Time na format thumb_ts naglalaman ng timestamp sa Unix Epoch Time na format photo_id_timestamp naglalaman ng timestamp sa Unix Epoch Time (ms) na format ibinigay na pangalan tumutugma ang value ng field sa 'display_name' para sa bawat contact wa_name Pangalan ng contact sa WhatsApp (ipinapakita ang pangalan na tinukoy sa profile ng contact) sort_name pangalan ng contact na ginagamit sa mga pagpapatakbo ng pag-uuri palayaw nickname ng contact sa WhatsApp (ipinapakita ang nickname na tinukoy sa profile ng contact) kompanya kumpanya (ang kumpanyang tinukoy sa profile ng contact ay ipinapakita) pamagat pamagat (Ms./Mr.; title na naka-configure sa contact profile ay ipinapakita) ginalaw bias - 'sqlite_sequence'
Ang talahanayang ito ay naglalaman ng impormasyon tungkol sa bilang ng mga contact; - 'android_metadata'
Ang talahanayang ito ay naglalaman ng impormasyon tungkol sa lokalisasyon ng wika ng WhatsApp.
Sa database 'msgstore.db' naglalaman ng impormasyon tungkol sa mga ipinadalang mensahe, tulad ng contact number, text message, status ng mensahe, timestamp, mga detalye ng mga nailipat na file na kasama sa mga mensahe, atbp. file 'msgstore.db' matatagpuan sa daanan: '/data/data/com.whatsapp/databases/' at may sumusunod na istraktura:
Ang pinaka-kagiliw-giliw na mga talahanayan sa file 'msgstore.db' para sa mananaliksik ay:
- 'sqlite_sequence'
Ang talahanayang ito ay naglalaman ng pangkalahatang impormasyon tungkol sa database na ito, tulad ng kabuuang bilang ng mga mensaheng nakaimbak, ang kabuuang bilang ng mga chat, atbp.Hitsura ng talahanayan:
- 'message_fts_content'
Naglalaman ng teksto ng mga ipinadalang mensahe.Hitsura ng talahanayan:
- 'mensahe'
Ang talahanayang ito ay naglalaman ng impormasyon tulad ng numero ng contact, text ng mensahe, status ng mensahe, mga timestamp, impormasyon tungkol sa mga nailipat na file na kasama sa mga mensahe.Hitsura ng talahanayan:
Istraktura ng talahanayanPangalan ng field Halaga _id record sequence number (sa SQL table) key_remote_jid WhatsApp ID ng kasosyo sa komunikasyon key_from_me direksyon ng mensahe: '0' β papasok, '1' β papalabas key_id natatanging identifier ng mensahe katayuan status ng mensahe: '0' β naihatid, '4' β naghihintay sa server, '5' β natanggap sa destinasyon, '6' β control message, '13' β mensaheng binuksan ng tatanggap (basahin) kailangan_itulak ay may value na '2' kung ito ay isang broadcast message, kung hindi man ay naglalaman ng '0' data text ng mensahe (kapag ang parameter na 'media_wa_type' ay '0') timestamp naglalaman ng timestamp sa Unix Epoch Time (ms) na format, ang halaga ay kinuha mula sa orasan ng device media_url naglalaman ng URL ng inilipat na file (kapag ang parameter na 'media_wa_type' ay '1', '2', '3') media_mime_type Uri ng MIME ng inilipat na file (kapag ang parameter na 'media_wa_type' ay katumbas ng '1', '2', '3') media_wa_type uri ng mensahe: '0' - text, '1' - graphic file, '2' - audio file, '3' - video file, '4' - contact card, '5' - geodata media_size laki ng inilipat na file (kapag ang parameter na 'media_wa_type' ay '1', '2', '3') media_name pangalan ng inilipat na file (kapag ang parameter na 'media_wa_type' ay '1', '2', '3') media_caption Naglalaman ng mga salitang 'audio', 'video' para sa mga katumbas na halaga ng parameter na 'media_wa_type' (kapag ang parameter na 'media_wa_type' ay '1', '3') media_hash base64 na naka-encode na hash ng ipinadalang file, na kinakalkula gamit ang HAS-256 algorithm (kapag ang parameter na 'media_wa_type' ay katumbas ng '1', '2', '3') media_duration tagal sa mga segundo para sa media file (kapag ang 'media_wa_type' ay '1', '2', '3') pinagmulan ay may value na '2' kung ito ay isang broadcast message, kung hindi man ay naglalaman ng '0' latitud geodata: latitude (kapag ang parameter na 'media_wa_type' ay '5') longitude geodata: longitude (kapag ang parameter na 'media_wa_type' ay '5') thumb_image impormasyon ng serbisyo remote_resource Sender ID (para sa mga panggrupong chat lang) natanggap_timestamp oras ng pagtanggap, naglalaman ng timestamp sa Unix Epoch Time (ms) na format, ang halaga ay kinuha mula sa orasan ng device (kapag ang parameter na 'key_from_me' ay may '0', '-1' o iba pang halaga) send_timestamp hindi ginagamit, kadalasan ay may value na '-1' receipt_server_timestamp oras na natanggap ng central server, naglalaman ng timestamp sa Unix Epoch Time (ms) na format, ang halaga ay kinukuha mula sa device clock (kapag ang 'key_from_me' na parameter ay may '1', '-1' o iba pang value receipt_device_timestamp oras na natanggap ang mensahe ng isa pang subscriber, naglalaman ng timestamp sa Unix Epoch Time (ms) na format, kinukuha ang value mula sa device clock (kapag ang parameter na 'key_from_me' ay may '1', '-1' o ibang value read_device_timestamp oras ng pagbubukas (pagbasa) ng mensahe, naglalaman ng timestamp sa Unix Epoch Time (ms) na format, ang halaga ay kinuha mula sa orasan ng device playing_device_timestamp oras ng pag-playback ng mensahe, naglalaman ng timestamp sa Unix Epoch Time (ms) na format, ang halaga ay kinuha mula sa orasan ng device raw_data thumbnail ng inilipat na file (kapag ang parameter na 'media_wa_type' ay '1' o '3') recipient_count bilang ng mga tatanggap (para sa mga mensahe sa broadcast) kalahok_hash ginagamit kapag nagpapadala ng mga mensahe gamit ang geodata naka-star hindi ginagamit quoted_row_id hindi kilala, kadalasang naglalaman ng value na '0' nabanggit_jids hindi ginagamit multicast_id hindi ginagamit ginalaw bias Ang listahan ng mga field na ito ay hindi kumpleto. Para sa iba't ibang bersyon ng WhatsApp, maaaring mayroon o wala ang ilang field. Bukod pa rito, maaaring may mga field 'media_enc_hash', 'edit_version', 'payment_transaction_id' at iba pa
- 'messages_thumbnails'
Ang talahanayang ito ay naglalaman ng impormasyon tungkol sa mga inilipat na larawan at timestamp. Sa column na 'timestamp', ang oras ay nakasaad sa Unix Epoch Time (ms) na format. - 'chat_list'
Ang talahanayang ito ay naglalaman ng impormasyon tungkol sa mga chat.Hitsura ng talahanayan:
Gayundin, kapag sinusuri ang WhatsApp sa isang mobile device na nagpapatakbo ng Android, dapat mong bigyang pansin ang mga sumusunod na file:
- talaksan 'msgstore.db.cryptXX' (kung saan ang XX ay isa o dalawang digit mula 0 hanggang 12, halimbawa, msgstore.db.crypt12). Naglalaman ng naka-encrypt na backup ng mga mensahe sa WhatsApp (backup file msgstore.db). Mga file) 'msgstore.db.cryptXX' matatagpuan sa daanan: '/data/media/0/WhatsApp/Databases/' (virtual SD card), '/mnt/sdcard/WhatsApp/Databases/ (pisikal na SD card)'.
- talaksan 'susi'. Naglalaman ng cryptographic key. Matatagpuan sa kahabaan ng landas: '/data/data/com.whatsapp/files/'. Ginagamit upang i-decrypt ang mga naka-encrypt na backup ng WhatsApp.
- talaksan 'com.whatsapp_preferences.xml'. Naglalaman ng impormasyon tungkol sa iyong profile sa WhatsApp account. Ang file ay matatagpuan sa kahabaan ng landas: '/data/data/com.whatsapp/shared_prefs/'.
fragment ng nilalaman ng file
<?xml version="1.0" encoding="ISO-8859-1"?> β¦ <string name="ph">9123456789</string> (Π½ΠΎΠΌΠ΅Ρ ΡΠ΅Π»Π΅ΡΠΎΠ½Π°, Π°ΡΡΠΎΡΠΈΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Ρ Π°ΠΊΠΊΠ°ΡΠ½ΡΠΎΠΌ WhatsApp) β¦ <string name="version">2.17.395</string> (Π²Π΅ΡΡΠΈΡ WhatsApp) β¦ <string name="my_current_status">Hey there! I am using WhatsApp.</string> (ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΠΎΠ΅ Π² ΡΡΠ°ΡΡΡΠ΅ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ°) β¦ <string name="push_name">Alex</string> (ΠΈΠΌΡ Π²Π»Π°Π΄Π΅Π»ΡΡΠ° Π°ΠΊΠΊΠ°ΡΠ½ΡΠ°) β¦
- talaksan 'registration.RegisterPhone.xml'. Naglalaman ng impormasyon tungkol sa numero ng telepono na nauugnay sa WhatsApp account. Ang file ay matatagpuan sa kahabaan ng landas: '/data/data/com.whatsapp/shared_prefs/'.
Mga nilalaman ng file
<?xml version="1.0" encoding="ISO-8859-1"?> <map> <string name="com.whatsapp.registration.RegisterPhone.phone_number">9123456789</string> <int name="com.whatsapp.registration.RegisterPhone.verification_state" value="0"/> <int name="com.whatsapp.registration.RegisterPhone.country_code_position" value="-1"/> <string name="com.whatsapp.registration.RegisterPhone.input_phone_number">912 345-67-89</string> <int name="com.whatsapp.registration.RegisterPhone.phone_number_position" value="10"/> <string name="com.whatsapp.registration.RegisterPhone.input_country_code">7</string> <string name="com.whatsapp.registration.RegisterPhone.country_code">7</string> </map>
- talaksan 'axolotl.db'. Naglalaman ng mga cryptographic key at iba pang data na kinakailangan upang matukoy ang may-ari ng account. Matatagpuan sa kahabaan ng landas: '/data/data/com.whatsapp/databases/'.
- talaksan 'chatsettings.db'. Naglalaman ng impormasyon sa pagsasaayos ng application.
- talaksan 'wa.db'. Naglalaman ng mga detalye ng contact. Isang napaka-interesante (mula sa forensic na aspeto) at nagbibigay-kaalaman na database. Maaari itong maglaman ng detalyadong impormasyon tungkol sa mga tinanggal na contact.
Kailangan mo ring bigyang pansin ang mga sumusunod na direktoryo:
- Directory '/data/media/0/WhatsApp/Media/WhatsApp Images/'. Naglalaman ng mga inilipat na graphic na file.
- Directory '/data/media/0/WhatsApp/Media/WhatsApp Voice Notes/'. Naglalaman ng mga voice message sa mga .OPUS na format na file.
- Directory '/data/data/com.whatsapp/cache/Mga Larawan sa Profile/'. Naglalaman ng mga graphic na file - mga larawan ng mga contact.
- Directory '/data/data/com.whatsapp/files/Avatars/'. Naglalaman ng mga graphic na file β mga thumbnail na larawan ng mga contact. Ang mga file na ito ay may extension na '.j' ngunit gayunpaman ay JPEG (JPG) na mga file ng imahe.
- Directory '/data/data/com.whatsapp/files/Avatars/'. Naglalaman ng mga graphic na file - isang larawan at isang thumbnail ng larawang itinakda bilang avatar ng may-ari ng account.
- Directory '/data/data/com.whatsapp/files/Logs/'. Naglalaman ng log ng pagpapatakbo ng program (file 'whatsapp.log') at mga backup na kopya ng mga log ng pagpapatakbo ng program (mga file na may mga pangalan sa format na whatsapp-yyyy-mm-dd.1.log.gz).
Mga WhatsApp Log File:
fragment ng journal2017-01-10 09:37:09.757 LL_I D [524:WhatsApp Worker #1] missedcallnotification/init count:0 timestamp:0
2017-01-10 09:37:09.758 LL_I D [524:WhatsApp Worker #1] missedcallnotification/update cancel true
2017-01-10 09:37:09.768 LL_I D [1:main] app-init/load-me
2017-01-10 09:37:09.772 LL_I D [1:main] password file nawawala o hindi nababasa
2017-01-10 09:37:09.782 LL_I D [1:main] statistics Mga Text Message: 59 naipadala, 82 natanggap / Mga Mensahe sa Media: 1 naipadala (0 bytes), 0 natanggap (9850158 bytes) / Mga Offline na Mensahe: 81 natanggap ( 19522 msec average na pagkaantala) / Message Service: 116075 bytes na naipadala, 211729 bytes na natanggap / Voip Calls: 1 papalabas na tawag, 0 papasok na tawag, 2492 bytes na ipinadala, 1530 bytes na natanggap / Google Drive: 0 byte na natanggap, 0 byte na natanggap / Roaming: byte na naipadala, 1524 byte na natanggap / Kabuuang Data: 1826 byte na naipadala, 118567 byte na natanggap
2017-01-10 09:37:09.785 LL_I D [1:pangunahing] media-state-manager/refresh-media-state/writable-media
2017-01-10 09:37:09.806 LL_I D [1:main] app-init/initialize/timer/stop: 24
2017-01-10 09:37:09.811 LL_I D [1:main] msgstore/checkhealth
2017-01-10 09:37:09.817 LL_I D [1:main] msgstore/checkhealth/journal/delete false
2017-01-10 09:37:09.818 LL_I D [1:main] msgstore/checkhealth/back/delete false
2017-01-10 09:37:09.818 LL_I D [1:main] msgstore/checkdb/data/data/com.whatsapp/databases/msgstore.db
2017-01-10 09:37:09.819 LL_I D [1:main] msgstore/checkdb/list _jobqueue-WhatsAppJobManager 16384 drw=011
2017-01-10 09:37:09.820 LL_I D [1:main] msgstore/checkdb/list _jobqueue-WhatsAppJobManager-journal 21032 drw=011
2017-01-10 09:37:09.820 LL_I D [1:main] msgstore/checkdb/list axolotl.db 184320 drw=011
2017-01-10 09:37:09.821 LL_I D [1:main] msgstore/checkdb/list axolotl.db-wal 436752 drw=011
2017-01-10 09:37:09.821 LL_I D [1:main] msgstore/checkdb/list axolotl.db-shm 32768 drw=011
2017-01-10 09:37:09.822 LL_I D [1:main] msgstore/checkdb/list msgstore.db 540672 drw=011
2017-01-10 09:37:09.823 LL_I D [1:main] msgstore/checkdb/list msgstore.db-wal 0 drw=011
2017-01-10 09:37:09.823 LL_I D [1:main] msgstore/checkdb/list msgstore.db-shm 32768 drw=011
2017-01-10 09:37:09.824 LL_I D [1:main] msgstore/checkdb/list wa.db 69632 drw=011
2017-01-10 09:37:09.825 LL_I D [1:main] msgstore/checkdb/list wa.db-wal 428512 drw=011
2017-01-10 09:37:09.825 LL_I D [1:main] msgstore/checkdb/list wa.db-shm 32768 drw=011
2017-01-10 09:37:09.826 LL_I D [1:main] msgstore/checkdb/list chatsettings.db 4096 drw=011
2017-01-10 09:37:09.826 LL_I D [1:main] msgstore/checkdb/list chatsettings.db-wal 70072 drw=011
2017-01-10 09:37:09.827 LL_I D [1:main] msgstore/checkdb/list chatsettings.db-shm 32768 drw=011
2017-01-10 09:37:09.838 LL_I D [1:main] msgstore/checkdb/bersyon 1
2017-01-10 09:37:09.839 LL_I D [1:main] msgstore/canquery
2017-01-10 09:37:09.846 LL_I D [1:main] msgstore/canquery/count 1
2017-01-10 09:37:09.847 LL_I D [1:main] msgstore/canquery/timer/stop: 8
2017-01-10 09:37:09.847 LL_I D [1:pangunahing] msgstore/canquery 517 | oras na ginugol:8
2017-01-10 09:37:09.848 LL_I D [529:WhatsApp Worker #3] media-state-manager/refresh-media-state/internal-storage available:1,345,622,016 total:5,687,922,688
- Directory '/data/media/0/WhatsApp/Media/WhatsApp Audio/'. Naglalaman ng natanggap na mga audio file.
- Directory '/data/media/0/WhatsApp/Media/WhatsApp Audio/Sent/'. Naglalaman ng mga ipinadalang audio file.
- Directory '/data/media/0/WhatsApp/Media/WhatsApp Images/'. Naglalaman ng mga resultang graphic na file.
- Directory '/data/media/0/WhatsApp/Media/WhatsApp Images/Ipinadala/'. Naglalaman ng ipinadalang mga graphic na file.
- Directory '/data/media/0/WhatsApp/Media/WhatsApp Video/'. Naglalaman ng mga natanggap na video file.
- Directory '/data/media/0/WhatsApp/Media/WhatsApp Video/Naipadala/'. Naglalaman ng mga ipinadalang video file.
- Directory '/data/media/0/WhatsApp/Media/WhatsApp Profile Photos/'. Naglalaman ng mga graphic na file na nauugnay sa may-ari ng WhatsApp account.
- Upang makatipid ng espasyo sa memorya sa iyong Android smartphone, maaaring iimbak ang ilang data ng WhatsApp sa isang SD card. Sa SD card, sa root directory, mayroong isang direktoryo 'WhatsApp', kung saan matatagpuan ang mga sumusunod na artifact ng program na ito:
- Directory '.Ibahagi' ('/mnt/sdcard/WhatsApp/.Share/'). Naglalaman ng mga kopya ng mga file na ibinahagi sa iba pang mga gumagamit ng WhatsApp.
- Directory '.basura' ('/mnt/sdcard/WhatsApp/.trash/'). Naglalaman ng mga tinanggal na file.
- Directory 'mga database' ('/mnt/sdcard/WhatsApp/Databases/'). Naglalaman ng mga naka-encrypt na backup. Maaari silang i-decrypt kung ang file ay naroroon 'susi', kinuha mula sa memorya ng nasuri na aparato.
Mga file na matatagpuan sa isang subdirectory 'mga database':
- Directory 'Kalahating' ('/mnt/sdcard/WhatsApp/Media/'). Naglalaman ng mga subdirectory 'WallPaper', 'WhatsApp Audio', 'Mga Larawan sa WhatsApp', 'Mga Larawan sa Profile ng WhatsApp', 'WhatsApp Video', 'WhatsApp Voice Notes', na naglalaman ng natanggap at naipadalang mga multimedia file (mga graphics file, video file, voice message, mga larawang nauugnay sa profile ng may-ari ng WhatsApp account, mga wallpaper).
- Directory 'Mga Larawan sa Profile' ('/mnt/sdcard/WhatsApp/Mga Larawan sa Profile/'). Naglalaman ng mga graphic na file na nauugnay sa profile ng may-ari ng WhatsApp account.
- Minsan ay maaaring mayroong direktoryo sa SD card 'mga file' ('/mnt/sdcard/WhatsApp/Files/'). Ang direktoryo na ito ay naglalaman ng mga file na nag-iimbak ng mga setting ng program at mga kagustuhan ng user.
Mga tampok ng pag-iimbak ng data sa ilang modelo ng mga mobile device
Ang ilang mga modelo ng mga mobile device na tumatakbo sa Android OS ay maaaring mag-imbak ng mga artifact ng WhatsApp sa ibang lokasyon. Ito ay dahil sa mga pagbabago sa storage space ng data ng application ng system software ng mobile device. Halimbawa, ang mga mobile device ng Xiaomi ay may function para sa paglikha ng pangalawang workspace ("SecondSpace"). Kapag na-activate ang function na ito, nagbabago ang lokasyon ng data. Kaya, kung sa isang regular na mobile device na tumatakbo sa Android OS user data ay naka-imbak sa direktoryo '/data/user/0/' (na isang sanggunian sa karaniwan '/data/data/'), pagkatapos ay sa pangalawang workspace application data ay naka-imbak sa direktoryo '/data/user/10/'. Iyon ay, gamit ang halimbawa ng lokasyon ng file 'wa.db':
- sa isang regular na smartphone na nagpapatakbo ng Android OS: /data/user/0/com.whatsapp/databases/wa.db' (na katumbas '/data/data/com.whatsapp/databases/wa.db');
- sa pangalawang workspace ng Xiaomi smartphone: '/data/user/10/com.whatsapp/databases/wa.db'.
Mga artifact ng WhatsApp sa iOS device
Hindi tulad ng Android OS, sa iOS WhatsApp application data ay inililipat sa isang backup na kopya (iTunes backup). Samakatuwid, ang pagkuha ng data mula sa application na ito ay hindi nangangailangan ng pag-extract ng file system o paglikha ng isang pisikal na memory dump ng device na sinisiyasat. Karamihan sa mga nauugnay na impormasyon ay nakapaloob sa database 'ChatStorage.sqlite', na matatagpuan sa kahabaan ng landas: '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/' (sa ilang mga programa, lumilitaw ang landas na ito bilang 'AppDomainGroup-group.net.whatsapp.WhatsApp.shared').
Kaayusan 'ChatStorage.sqlite':
Ang pinakakaalaman na mga talahanayan sa database ng 'ChatStorage.sqlite' ay 'ZWAMESSAGE' ΠΈ 'ZWAMEDIAIITEM'.
Hitsura ng mesa 'ZWAMESSAGE':
Istraktura ng talahanayan na 'ZWAMESSAGE'
Pangalan ng field | Halaga |
---|---|
Z_PK | record sequence number (sa SQL table) |
Z_ENT | table identifier, may value na '9' |
Z_OPT | hindi kilala, kadalasang naglalaman ng mga halaga mula sa '1' hanggang '6' |
ZCHILDMESSAGESDELIVEREDCOUNT | hindi kilala, kadalasang naglalaman ng value na '0' |
ZCHILDMESSAGESPLAYEDCOUNT | hindi kilala, kadalasang naglalaman ng value na '0' |
ZCHILDMESSAGESREADCOUNT | hindi kilala, kadalasang naglalaman ng value na '0' |
ZDATAITEMVERSION | hindi alam, kadalasang naglalaman ng value na '3', marahil ay isang tagapagpahiwatig ng text message |
ZDOCID | hindi alam |
ZENCRETRYCOUNT | hindi kilala, kadalasang naglalaman ng value na '0' |
ZFILTEREDRECIPIENTCOUNT | hindi kilala, kadalasang naglalaman ng mga value na '0', '2', '256' |
ZISFROMME | direksyon ng mensahe: '0' β papasok, '1' β papalabas |
ZMESSAGEERRORSATUS | katayuan ng paghahatid ng mensahe. Kung ang mensahe ay ipinadala/natanggap, ito ay may halagang '0' |
ZMESSAGETYPE | uri ng mensaheng ipinapadala |
ZSORT | hindi alam |
ZSPOTLIGHSTATUS | hindi alam |
ZSTARRED | hindi kilala, hindi ginagamit |
ZCHATSESSION | hindi alam |
ZGROUPMEMBER | hindi kilala, hindi ginagamit |
ZLASTSESSION | hindi alam |
ZMEDIAIITEM | hindi alam |
ZMESSAGEINFO | hindi alam |
ZPARENTMESSAGE | hindi kilala, hindi ginagamit |
ZMESSAGEDATE | timestamp sa OS X Epoch Time format |
ZSENTDATE | oras na ipinadala ang mensahe sa OS X Epoch Time na format |
ZFROMJID | WhatsApp Sender ID |
ZMEDIASECTIONID | naglalaman ng taon at buwan kung saan ipinadala ang media file |
ZPHASH | hindi kilala, hindi ginagamit |
ZPUSHPAME | pangalan ng contact na nagpadala ng media file sa UTF-8 na format |
ZSTANZID | natatanging identifier ng mensahe |
ZTEXT | Text ng mensahe |
ZTOJID | WhatsApp ID ng tatanggap |
Offset | bias |
Hitsura ng mesa 'ZWAMEDIAIITEM':
Istraktura ng talahanayan na 'ZWAMEDIAITEM'
Pangalan ng field | Halaga |
---|---|
Z_PK | record sequence number (sa SQL table) |
Z_ENT | table identifier, may value na '8' |
Z_OPT | hindi kilala, kadalasang naglalaman ng mga halaga mula sa '1' hanggang '3'. |
ZCLOUDSTATUS | naglalaman ng value na '4' kung na-load ang file. |
ZFILESIZE | naglalaman ng haba ng file (sa bytes) para sa mga na-download na file |
ZMEDIAORIGIN | hindi kilala, kadalasan ay may value na '0' |
ZMOVIEDURATION | tagal ng media file, para sa mga pdf file ay maaaring maglaman ng bilang ng mga pahina ng dokumento |
ZMESSAGE | naglalaman ng serial number (iba ang numero sa nakasaad sa column na 'Z_PK') |
ZASPECTRATIO | aspect ratio, hindi ginagamit, karaniwang nakatakda sa '0' |
ZHACCURACY | hindi kilala, kadalasan ay may value na '0' |
ZLATTITUDE | lapad sa mga pixel |
ZLONGTITUDE | taas sa pixels |
ZMEDIAURLDATE | timestamp sa OS X Epoch Time format |
ZAUTHORNAME | may-akda (para sa mga dokumento, maaaring naglalaman ng pangalan ng file) |
ZCOLLECTIONNAME | hindi ginagamit |
ZMEDIALOCALPATH | pangalan ng file (kabilang ang path) sa system file ng device |
ZMEDIAURL | Ang URL kung saan matatagpuan ang media file. Kung ang isang file ay inilipat mula sa isang subscriber patungo sa isa pa, ito ay na-encrypt at ang extension nito ay ipapakita bilang extension ng inilipat na file - .enc |
ZTHUMBNAILLOCALPATH | path sa thumbnail ng file sa system file ng device |
ZTITLE | header ng file |
ZVCARDNAME | media file hash; kapag naglilipat ng file sa isang grupo, maaaring naglalaman ito ng tagatukoy ng nagpadala |
ZVCARDSTRING | naglalaman ng impormasyon tungkol sa uri ng file na inililipat (halimbawa, image/jpeg); kapag naglilipat ng file sa isang grupo, maaaring naglalaman ito ng identifier ng tatanggap |
ZXMPPTHUMBPATH | path sa thumbnail ng file sa system file ng device |
ZMEDIAKEY | hindi kilala, malamang na naglalaman ng susi upang i-decrypt ang naka-encrypt na file. |
ZMEDATA | metadata ng ipinadalang mensahe |
Ginalaw | bias |
Iba pang mga kagiliw-giliw na mga talahanayan ng database 'ChatStorage.sqlite' ay:
- 'ZWAPROFILEPUSHNAME'. Tumutugma sa WhatsApp ID sa pangalan ng contact;
- 'ZWAPROFILEPICTUREITEM'. Tumutugma sa WhatsApp ID sa contact avatar;
- 'Z_PRIMARYKEY'. Ang talahanayan ay naglalaman ng pangkalahatang impormasyon tungkol sa database na ito, tulad ng kabuuang bilang ng mga mensaheng nakaimbak, ang kabuuang bilang ng mga chat, atbp.
Gayundin, kapag sinusuri ang WhatsApp sa isang mobile device na nagpapatakbo ng iOS, dapat mong bigyang pansin ang mga sumusunod na file:
- talaksan 'BackedUpKeyValue.sqlite'. Naglalaman ng mga cryptographic key at iba pang data na kinakailangan upang matukoy ang may-ari ng account. Matatagpuan sa kahabaan ng landas: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
- talaksan 'ContactsV2.sqlite'. Naglalaman ng impormasyon tungkol sa mga contact ng user, tulad ng buong pangalan, numero ng telepono, status ng contact (sa text form), WhatsApp ID, atbp. Matatagpuan sa kahabaan ng landas: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
- talaksan 'consumer_version'. Naglalaman ng numero ng bersyon ng naka-install na WhatsApp application. Matatagpuan sa kahabaan ng landas: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
- talaksan 'current_wallpaper.jpg'. Naglalaman ng kasalukuyang wallpaper sa background ng WhatsApp. Matatagpuan sa kahabaan ng landas: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/. Ginagamit ng mga mas lumang bersyon ng application ang file 'wallpaper', na matatagpuan sa kahabaan ng landas: '/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/'.
- talaksan 'blockedcontacts.dat'. Naglalaman ng impormasyon tungkol sa mga naka-block na contact. Matatagpuan sa kahabaan ng landas: /private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/.
- talaksan 'pw.dat'. Naglalaman ng naka-encrypt na password. Matatagpuan sa kahabaan ng landas: '/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/'.
- talaksan 'net.whatsapp.WhatsApp.plist' (o file 'group.net.whatsapp.WhatsApp.shared.plist'). Naglalaman ng impormasyon tungkol sa iyong profile sa WhatsApp account. Ang file ay matatagpuan sa kahabaan ng landas: '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Library/Preferences/'.
Mga nilalaman ng file na 'group.net.whatsapp.WhatsApp.shared.plist'
Kailangan mo ring bigyang pansin ang mga sumusunod na direktoryo:
- Directory '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Media/Profile/'. Naglalaman ng mga thumbnail ng mga contact, grupo (mga file na may extension .thumb), contact avatar, WhatsApp account owner avatar (file 'Photo.jpg').
- Directory '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Message/Media/'. Naglalaman ng mga multimedia file at mga thumbnail ng mga ito
- Directory '/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/'. Naglalaman ng log ng pagpapatakbo ng programa (file 'calls.log') at mga backup na kopya ng mga log ng pagpapatakbo ng program (file 'calls.backup.log').
- Directory '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/stickers/'. Naglalaman ng mga sticker (mga file sa format '.webp').
- Directory '/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/Logs/'. Naglalaman ng mga log ng pagpapatakbo ng programa.
Mga artifact ng WhatsApp sa Windows
Ang mga artifact ng WhatsApp sa Windows ay matatagpuan sa ilang lugar. Una sa lahat, ito ay mga direktoryo na naglalaman ng mga executable at auxiliary program file (para sa Windows 8/10):
- 'C: Program Files (x86)WhatsApp'
- 'C:Users%User profile% AppDataLocalWhatsApp'
- 'C:Users%User profile% AppDataLocalVirtualStore Program Files (x86)WhatsApp'
Sa katalogo 'C:Users%User profile% AppDataLocalWhatsApp' ang log file ay matatagpuan 'SquirrelSetup.log', na naglalaman ng impormasyon tungkol sa pagsuri para sa mga update at pag-install ng program.
Sa katalogo 'C:Users%User profile% AppDataRoamingWhatsApp' Mayroong ilang mga subdirectory:
talaksan 'main-process.log' naglalaman ng impormasyon tungkol sa pagpapatakbo ng WhatsApp program.
Subdirectory 'mga database' naglalaman ng file 'Databases.db', ngunit ang file na ito ay hindi naglalaman ng anumang impormasyon tungkol sa mga chat o contact.
Ang pinaka-interesante mula sa forensic point of view ay ang mga file na matatagpuan sa direktoryo 'Cache'. Ang mga ito ay karaniwang mga file na pinangalanan 'f_*******' (kung saan ang * ay isang numero mula 0 hanggang 9) na naglalaman ng mga naka-encrypt na multimedia file at dokumento, ngunit mayroon ding mga hindi naka-encrypt na file sa kanila. Ang partikular na interes ay ang mga file 'data_0', 'data_1', 'data_2', 'data_3', na matatagpuan sa parehong subdirectory. Mga file 'data_0', 'data_1', 'data_3' naglalaman ng mga panlabas na link sa ipinadala na naka-encrypt na mga file at dokumento ng multimedia.
Halimbawa ng impormasyong nakapaloob sa file na 'data_1'
Mag-file din 'data_3' maaaring naglalaman ng mga graphic na file.
talaksan 'data_2' naglalaman ng mga contact avatar (maaaring ibalik sa pamamagitan ng paghahanap sa pamamagitan ng mga header ng file).
Mga avatar na nakapaloob sa file 'data_2':
Kaya, ang mga chat mismo ay hindi matatagpuan sa memorya ng computer, ngunit mahahanap mo ang:
- multimedia file;
- mga dokumento na ipinadala sa pamamagitan ng WhatsApp;
- impormasyon tungkol sa mga contact ng may-ari ng account.
Mga artifact ng WhatsApp sa MacOS
Sa MacOS makakahanap ka ng mga uri ng mga artifact ng WhatsApp na katulad ng matatagpuan sa Windows OS.
Ang mga file ng programa ay matatagpuan sa mga sumusunod na direktoryo:
- 'C:ApplicationsWhatsApp.app'
- 'C:Applications._WhatsApp.app'
- 'C:Users%User profile%LibraryPreferences'
- 'C:Users%User profile%LibraryLogsWhatsApp'
- 'C:Users%User profile%LibrarySaved Application StateWhatsApp.savedState'
- 'C:Users%User profile%LibraryApplication Scripts'
- 'C:Users%User profile%LibraryApplication SupportCloudDocs'
- 'C:Users%User profile%LibraryApplication SupportWhatsApp.ShipIt'
- 'C:Users%User profile%LibraryContainerscom.rockysandstudio.app-for-whatsapp'
- 'C:Users%User profile% Library Mobile Documents <text variable> Mga WhatsApp Account'
Ang direktoryo na ito ay naglalaman ng mga subdirectory na ang mga pangalan ay mga numero ng telepono na nauugnay sa may-ari ng WhatsApp account. - 'C:Users%User profile%LibraryCachesWhatsApp.ShipIt'
Ang direktoryo na ito ay naglalaman ng impormasyon tungkol sa pag-install ng program. - 'C:Users%User profile%PicturesiPhoto Library.photolibraryMasters', 'C:Users%User profile%PicturesiPhoto Library.photolibraryThumbnails'
Ang mga direktoryo na ito ay naglalaman ng mga file ng serbisyo ng programa, kabilang ang mga larawan at thumbnail ng mga contact sa WhatsApp. - 'C:Users%User profile%LibraryCachesWhatsApp'
Ang direktoryo na ito ay naglalaman ng ilang mga database ng SQLite na ginagamit para sa pag-cache ng data. - 'C:Users%User profile%LibraryApplication SupportWhatsApp'
Ang direktoryo na ito ay naglalaman ng ilang mga subdirectory:
Sa katalogo 'C:Users%User profile%LibraryApplication SupportWhatsAppCache' may mga file 'data_0', 'data_1', 'data_2', 'data_3' at mga file na may mga pangalan 'f_*******' (kung saan ang * ay isang numero mula 0 hanggang 9). Para sa impormasyon tungkol sa kung anong impormasyon ang nilalaman ng mga file na ito, tingnan ang WhatsApp Artifacts sa Windows.Sa katalogo 'C:Users%User profile%LibraryApplication SupportWhatsAppIndexedDB' maaaring naglalaman ng mga file na multimedia (walang mga extension ang mga file).
talaksan 'main-process.log' naglalaman ng impormasyon tungkol sa pagpapatakbo ng WhatsApp program.
pinagmumulan
- Forensic analysis ng WhatsApp Messenger sa mga Android smartphone, ni Cosimo Anglano, 2014.
- Whatsapp Forensics: Eksplorasi sistema ng mga file at batayan ng data sa aplikasyon ng Android at iOS ni Ahmad Pratama, 2014.
Sa mga sumusunod na artikulo sa seryeng ito:
Pag-decryption ng mga naka-encrypt na database ng WhatsAppIsang artikulo na magbibigay ng impormasyon kung paano nabuo ang WhatsApp encryption key at mga praktikal na halimbawa na nagpapakita kung paano i-decrypt ang mga naka-encrypt na database ng application na ito.
Pag-extract ng data ng WhatsApp mula sa cloud storageIsang artikulo kung saan sasabihin namin sa iyo kung anong data ng WhatsApp ang nakaimbak sa mga ulap at naglalarawan ng mga pamamaraan para sa pagkuha ng data na ito mula sa mga imbakan ng ulap.
Pagkuha ng Data ng WhatsApp: Mga Praktikal na HalimbawaIsang artikulo na maglalarawan nang sunud-sunod kung anong mga programa at kung paano kunin ang data ng WhatsApp mula sa iba't ibang device.
Pinagmulan: www.habr.com