Decodifica SMS in cinese estratto da un Blackberry

2

Ho un sacco di SMS in cinese da un'estrazione forense di un blackberry audace 9780 tramite UFED di Cellebrite. Mentre i messaggi in inglese sono leggibili in chiaro (mi sembra che questo non abbia nulla a che fare con la crittografia), semplicemente non posso rappresentare questi messaggi (cinesi). Ovviamente è un problema con il software di analisi di UFED a lungo termine, ma a breve termine, voglio solo sapere come posso rendere leggibili questi messaggi. Questi testi cinesi sono leggibili sul telefono stesso, ma non ce l'ho più.

Ecco tre testi (tramite un'esportazione in html):

N mwyûR¨geu5cÐN:'¨g R¡ÿ�0�0�9�0�5�3�2�2�1�3�0�0�8�9S÷xW(�2�0�1�3^t�0�3g�0�6eå�2�3�:�3�8bèbSÇ'¨vbKg:ÿ÷SÊeöVÞu50

Y)s+UFWÎmilýQÀl4VheàPOS[cÿQí¤Áx�8�0�1�1bèbS�4�0�0�8�2�0�2�6�6�7bSÖN÷P<�2�5�8�0QCQÀl4VhN�Sð00milýs¯OÝ0

�(�1�/�3�)NûOUbRONýDg,g'gFÿN mwN¤Y'mwY[fbê�0�6^t_�R0 yÁRß¡gCNN ^D';Ásí0NågeÇ|û~ßþz¾nÿNÎUFN0N¤Y'mwY0

Qualcuno può decodificare i tre messaggi sopra? Ti darò un milione di oggetti di scena se puoi dirmi come.

    
posta Dan 07.04.2013 - 12:46
fonte

1 risposta

3

I dati sorgente sono chiaramente UTF-16. Nel tuo post viene visualizzato interpretato come ISO-8859-1 e nel processo è stato leggermente modificato: alcuni byte sono stati convertiti in .

Ci sono anche alcuni byte mancanti causati dalla copia-incolla, o ci sono alcuni byte di controllo nel mezzo della sequenza, che interrompono il flusso di due byte per carattere. Spero che il primo - puoi pubblicare i byte grezzi (es. Come hex dump)? Se questo è il caso, dovresti essere in grado di decodificarli come UTF-16 (probabilmente UTF-16LE).

Per quel che vale, prova a recuperare i byte originali, con interpretato come null (come il byte più comune in UTF-16) usando Python:

>>> data= ur'''N mwyûR¨geu5cÐN:'¨g R¡ÿ�0�0�9�0�5�3�2�2�1�3�0�0�8�9S÷xW(�2�0�1�3^t�0�3g�0�6eå�2�3�:�3�8bèbSÇ'¨vbKg:ÿ÷SÊeöVÞu50
⁎睭ﭹꡒ敧㕵큣㩎ꡠ⁧ꅒÿ0090532213008匹磷⡗㈀ ㄀㌀瑞 ㌀g0收å23:3戸拨읓ꡠ扶杋Z号旊囶痞〵ぜぜ⥙⭳䙕칗業ﵬ쁑㑬桖佐孓」솤x801戱拨S400820266户홓㱐㈀㔀㠀 䍑쁑㑬桖N〰業ﵬ꽳�尰尰0(1/3丩俻払佒﵎杄本杠f⁎睭ꑎ❙睭孙扦ê0帶彴刀‰셹�枡乃⁎䑞㭠珁ロ敧糇绻ﻟ빺ョ칎䙕ぎꑎ❙睭す
丠海移动来电提为您朠务＀  㤀 㔀㌀㈀㈀㄀㌀  㠀㥓在2013年03最 㙥㈀㌀㨀㌀㡢叇您癢䭧㫿쩥�㔰尰尰天猫商城浩泽净水器无偏卛揿凭꓁砀㠀 ㄀ㅢ匀㐀  㠀㈀ ㈀㘀㘀㝢取价值2580元净水器一台〰浩泽环保ぜぜ ⠀㄀⼀㌀⥎ﭏ啢剏份䑧Ⱨ恧䛿丠海交大海奛晢 㙞瑟R〠私募ꅧ䍎丠幄总셳以来일ﭾ�窾滿从商丰交大海夰
丠海移动来电提为您朠务0090532213008匹在2013年03最0623:38戸Z号旊囶痞㔰尰尰天猫商城浩泽净水器无偏卛揿凭x801戱拨S400820266户取价值2580元净水器N浩泽环保0(1/3啢剏份杄本杠䛿丠海交大海奛晢0帶彴刀私募枡乃⁎䑞㭠珁ロ以来敧糇绻窾滿从商丰交大海夰
Y)s+UFWÎmilýQÀl4VheàPOS[cÿQí¤Áx�8�0�1�1bèbS�4�0�0�8�2�0�2�6�6�7bSÖN÷P<�2�5�8�0QCQÀl4VhN�Sð00milýs¯OÝ0
>>> print '0848674376CA90FD4E0D80FD4FDD969C76845BA26237300262404EE573B05728770B6765FF0C516C53F85B81613F9AD86210672C9AD84E8E6052592971364EF7683C53BB57F9517B6276630151764ED676844F9B5E945546FF0C4ECE957F671F770BFF0C7EE77EED51CF5C11548C605259297136768454084F5C657091CF548C53606BD43002000000084900'.decode('hex').decode('utf-16be')
ࡈ权益都不能保障的客户。所以现在看来,公司宁愿高成本高于恒天然价格去培养扶持其他的供应商,从长期看,继续减少和恒天然的合作数量和占比。䤀
>>> u'q\x8ae\x87cw:N\nk!u5\x8b\xddN_T\x8cO'\x8b\xf4N\x86\xff\x0c'RY)q6v\x84\x88LN:\x8b\xa9QlS\xf8\x8b\xa4N:\xff\x0c'RY)q6N\nf/b\x11N\xecv\x84b\x18ueT\x08O\O\x9b^\x94UF\xff\x0cZ\x03T\xc8T\xc8[\xf9'RY)q6ge\x8b\xf4\xff\x0cN\xc5N\xc5f/NN*fn\x90\x1a[\xa2b7\xff\x0c\x80\x0cN\x14f/kc^8gCv\xca\x90\xfdN\n\x80\xfdO\xdd\x96\x9cv\x84[\xa2b70\x02b@N\xe5s\xb0W(w\x0bge\xff\x0cQlS\xf8[\x81a?\x9a\xd8b\x10g,\x9a\xd8N\x8e'RY)q6N\xf7h<S\xbbW\xf9Q{bvc\x01QvN\xd6v\x84O\x9b^\x94UF\xff\x0cN\xce\x95\x7fg\x1fw\x0b\xff\x0c~\xe7~\xedQ\xcf\\x11T\x8c'RY)q6v\x84T\x08O\ep\x91\xcfT\x8cS'k\xd40\x02\n'
�(�1�/�3�)NûOUbRONýDg,g'gFÿN mwN¤Y'mwY[fbê�0�6^t_�R0 yÁRß¡gCNN ^D';Ásí0NågeÇ|û~ßþz¾nÿNÎUFN0N¤Y'mwY0''' >>> bytes= data.replace(u'\uFFFD', u'
>>> print _.encode('iso-8859-1').decode('utf-16be', 'ignore')
熊文捷㩎੫ⅵ㖋彔豏悋蛿ౠ剙⥱㙶蒈䱎㪋ꥑ汓ꑎ㫿ౠ剙⥱㙎੦⽢ᅎ葢ᡵ敔ࡏ屏魞鑕䛿ౚ͔졔졛怒剙⥱㙧斋౎앎앦⽎
个普通客户,而且是正常权益都上能保障的客户。所以现在看来,公司宁愿高成本高于恒天然价格去培养扶持其他的供应商,从长期看,继续减少和恒天然的合作数量和占比。
').encode('iso-8859-1') >>> print bytes.decode('utf-16le', 'replace') >>> print bytes.decode('utf-16be', 'replace')

Quindi seleziona i caratteri che ritieni più adatti da ogni riga di:

話蝥督为權甡謵仝呟侌譠仴ニ怌奒焩瘶袄乌謺冩卬诸交Z怌奒焩丶昊戯丑盬抄甘呥伈作庛喔f娌吃哈寈惹奒焩朶譥￴丌仅曅丯

ad es. qualcosa come:

>>> data= ur'''N mwyûR¨geu5cÐN:'¨g R¡ÿ�0�0�9�0�5�3�2�2�1�3�0�0�8�9S÷xW(�2�0�1�3^t�0�3g�0�6eå�2�3�:�3�8bèbSÇ'¨vbKg:ÿ÷SÊeöVÞu50
⁎睭ﭹꡒ敧㕵큣㩎ꡠ⁧ꅒÿ0090532213008匹磷⡗㈀ ㄀㌀瑞 ㌀g0收å23:3戸拨읓ꡠ扶杋Z号旊囶痞〵ぜぜ⥙⭳䙕칗業ﵬ쁑㑬桖佐孓」솤x801戱拨S400820266户홓㱐㈀㔀㠀 䍑쁑㑬桖N〰業ﵬ꽳�尰尰0(1/3丩俻払佒﵎杄本杠f⁎睭ꑎ❙睭孙扦ê0帶彴刀‰셹�枡乃⁎䑞㭠珁ロ敧糇绻ﻟ빺ョ칎䙕ぎꑎ❙睭す
丠海移动来电提为您朠务＀  㤀 㔀㌀㈀㈀㄀㌀  㠀㥓在2013年03最 㙥㈀㌀㨀㌀㡢叇您癢䭧㫿쩥�㔰尰尰天猫商城浩泽净水器无偏卛揿凭꓁砀㠀 ㄀ㅢ匀㐀  㠀㈀ ㈀㘀㘀㝢取价值2580元净水器一台〰浩泽环保ぜぜ ⠀㄀⼀㌀⥎ﭏ啢剏份䑧Ⱨ恧䛿丠海交大海奛晢 㙞瑟R〠私募ꅧ䍎丠幄总셳以来일ﭾ�窾滿从商丰交大海夰
丠海移动来电提为您朠务0090532213008匹在2013年03最0623:38戸Z号旊囶痞㔰尰尰天猫商城浩泽净水器无偏卛揿凭x801戱拨S400820266户取价值2580元净水器N浩泽环保0(1/3啢剏份杄本杠䛿丠海交大海奛晢0帶彴刀私募枡乃⁎䑞㭠珁ロ以来敧糇绻窾滿从商丰交大海夰
Y)s+UFWÎmilýQÀl4VheàPOS[cÿQí¤Áx�8�0�1�1bèbS�4�0�0�8�2�0�2�6�6�7bSÖN÷P<�2�5�8�0QCQÀl4VhN�Sð00milýs¯OÝ0
>>> print '0848674376CA90FD4E0D80FD4FDD969C76845BA26237300262404EE573B05728770B6765FF0C516C53F85B81613F9AD86210672C9AD84E8E6052592971364EF7683C53BB57F9517B6276630151764ED676844F9B5E945546FF0C4ECE957F671F770BFF0C7EE77EED51CF5C11548C605259297136768454084F5C657091CF548C53606BD43002000000084900'.decode('hex').decode('utf-16be')
ࡈ权益都不能保障的客户。所以现在看来,公司宁愿高成本高于恒天然价格去培养扶持其他的供应商,从长期看,继续减少和恒天然的合作数量和占比。䤀
>>> u'q\x8ae\x87cw:N\nk!u5\x8b\xddN_T\x8cO'\x8b\xf4N\x86\xff\x0c'RY)q6v\x84\x88LN:\x8b\xa9QlS\xf8\x8b\xa4N:\xff\x0c'RY)q6N\nf/b\x11N\xecv\x84b\x18ueT\x08O\O\x9b^\x94UF\xff\x0cZ\x03T\xc8T\xc8[\xf9'RY)q6ge\x8b\xf4\xff\x0cN\xc5N\xc5f/NN*fn\x90\x1a[\xa2b7\xff\x0c\x80\x0cN\x14f/kc^8gCv\xca\x90\xfdN\n\x80\xfdO\xdd\x96\x9cv\x84[\xa2b70\x02b@N\xe5s\xb0W(w\x0bge\xff\x0cQlS\xf8[\x81a?\x9a\xd8b\x10g,\x9a\xd8N\x8e'RY)q6N\xf7h<S\xbbW\xf9Q{bvc\x01QvN\xd6v\x84O\x9b^\x94UF\xff\x0cN\xce\x95\x7fg\x1fw\x0b\xff\x0c~\xe7~\xedQ\xcf\\x11T\x8c'RY)q6v\x84T\x08O\ep\x91\xcfT\x8cS'k\xd40\x02\n'
�(�1�/�3�)NûOUbRONýDg,g'gFÿN mwN¤Y'mwY[fbê�0�6^t_�R0 yÁRß¡gCNN ^D';Ásí0NågeÇ|û~ßþz¾nÿNÎUFN0N¤Y'mwY0''' >>> bytes= data.replace(u'\uFFFD', u'
>>> print _.encode('iso-8859-1').decode('utf-16be', 'ignore')
熊文捷㩎੫ⅵ㖋彔豏悋蛿ౠ剙⥱㙶蒈䱎㪋ꥑ汓ꑎ㫿ౠ剙⥱㙎੦⽢ᅎ葢ᡵ敔ࡏ屏魞鑕䛿ౚ͔졔졛怒剙⥱㙧斋౎앎앦⽎
个普通客户,而且是正常权益都上能保障的客户。所以现在看来,公司宁愿高成本高于恒天然价格去培养扶持其他的供应商,从长期看,继续减少和恒天然的合作数量和占比。
').encode('iso-8859-1') >>> print bytes.decode('utf-16le', 'replace') >>> print bytes.decode('utf-16be', 'replace')

che è il più vicino possibile a comprendere l'input distorto.

ETA:

Here's a hex dump of a longer SMS:

OK, questo è semplice, è UTF-16BE (con un paio di byte di controllo di lead e alcuni di coda):

話蝥督为權甡謵仝呟侌譠仴ニ怌奒焩瘶袄乌謺冩卬诸交Z怌奒焩丶昊戯丑盬抄甘呥伈作庛喔f娌吃哈寈惹奒焩朶譥￴丌仅曅丯

The corresponding encoded/analyzed SMS.Body was:

OK, questa è un'altra stringa di byte UTF-16BE che è stata interpretata come ISO-8859-1. Recuperando i caratteri di controllo dal tuo post riceviamo:

%pre%

Annullamento della codifica errata:

%pre%

Come puoi vedere, la seconda parte di questa stringa è il messaggio completo di cui sopra era una codifica esadecimale parziale.

La prima parte (prima di 个普通客户... ) è un mistero. Decodifica come UTF-16LE valido (cioè non c'è bisogno di 'ignore' ), che normalmente sarebbe un'indicazione che l'allineamento del byte era scivolato (di nuovo, forse a causa del maniaco del personaggio da postarlo in SO?). Il risultato di questa decodifica si adatta anche principalmente al blocco di caratteri han, ma è:

%pre%

che dalla mia comprensione limitata del testo cinese sembra essere senza senso.

Non sono troppo impressionato da questa cosa di Cellebrite, specialmente se include questi codici di controllo direttamente in XML! (Questo non è ben formato.)

    
risposta data 07.04.2013 - 15:31
fonte

Leggi altre domande sui tag