Küsimus:
Kuidas lugeda NSCR1000 andmefaile?
kenorb
2015-07-23 20:51:58 UTC
view on stackexchange narkive permalink

OSX-i terminalirakendus salvestab teabe oma akende ja sisu kohta olekufailidesse kataloogis Library / Saved Application State / com.apple.Terminal.savedState .

Ma tegin faili varundamine enne krahhi, et saaksin oma andmeid taastada, kuid ma ei tea, kuidas neid nüüd lugeda (kuna Terminal keeldub neid kasutamast). See algab järgmisega: NSCR1000 :

  $ hexdump -Cn8 ~ / Library / Saved \ Application \ State / com.apple.Terminal.savedState / data.data0000000000 4e 53 43 52 31 30 30 30 | NSCR1000 |  

Seda kasutab fail windows.plist , mida saab dekodeerida:

  plutil -convert xml1 -o windows.plist windows.plist  

Millist meetodit saan kasutada selle .data faili lugemiseks? Või kust alustada?

  $ strings data.data | head -10NSCR1000p + 5v0> [tkJX6X @ NSCR1000  

Selle faili genereerib rakendus Terminal automaatselt, kui alustate ja hakkate midagi tippima, nii et terminali andmed salvestatakse sinna.

üks vastus:
cimarron
2016-01-15 07:09:58 UTC
view on stackexchange narkive permalink

See on krüptitud AES-iga, nii et dekodeerimiseks vajate võtmeid windows.plist -st.

Vorming on (kõik on salvestatud big-endianis):

  offset value0-3 magic ('NSCR' for PersistentUIRecord) 4-7 versioon (kas '1000' või '0006') 8-11 NSWindowID (kasutatakse aknadesse salvestatud 128-bitise AES-võtme otsimiseks. plist) 12-15 kirje pikkus (sh 0 kuni xxx) 16-xxx krüptitud binaarse plisti andmed  

Failis võib olla mitu järjestikku salvestatud kirjet.

Sarnast lähenemist kasutab AppKiti raamistik faili data.data dešifreerimiseks. Kõige asjakohasem vaadeldav koodibaas on plokk + [NSPersistentUIRecord parseOneRecordFromReadBlock: withDecryptionKeys:] , mis sõelub iga kirje failis data.data .

Aitäh vastuse eest! Mul on üks küsimus: kuidas te neid üksikasju õppisite?
Torkasin just ümber AppKiti raamistiku, muutes faili `data.data 'dešifreerimist. Kõige asjakohasem vaadeldav koodibaas on "+ [NSPersistentUIRecord parseOneRecordFromReadBlock: withDecryptionKeys:]" plokk, mis sõelub iga kirjet failis "data.data".
See kõlab suurepäraselt, et seda oli nii lihtne teha! Äge inspiratsioon RE kohta lisateabe saamiseks. Tänan veelkord vastuse eest.
Ma ei ole kindel, kui lahkeid teilt küsitakse, kuid see oleks tõeliselt hea, kui saaksite oma meisterlikkust blogipostituses jagada. Soovitan teil seda teha, sest see oleks kõigile väga huvitav lugemine, eriti kui saaksite oma õige vastuse leidmise tehnikat lihtsal viisil selgitada. Nii paljud arendajad võiksid teie kogemusest kasu saada, palun tehke seda!


See küsimus ja vastus tõlgiti automaatselt inglise keelest.Algne sisu on saadaval stackexchange-is, mida täname cc by-sa 3.0-litsentsi eest, mille all seda levitatakse.
Loading...