Miese.Ratte
Stamm User
- Registriert
- 20. Juli 2015
- Beiträge
- 1.009
- Lösungen
- 1
- Reaktionspunkte
- 2.239
- Punkte
- 393
in den Threads
ci+ Modul
und
CI+ Modul decrypt 2 anlauf
gab es Bemühungen einem himmlischem CI+ Modul auf den Zahn zu fühlen.
Beide Threads sind inzwischen geschlossen. Vermutlich hat das auch etwas mit dem untersuchten Dump zu tun. Er wurde jeweils von @adas und @Cyberscitymaste zur Verfügung gestellt. Die Exemplare waren identisch (gleicher MD5-Hash).
Der Dump wurde scheinbar in einem unbeaufsichtigten Kinderzimmer angefertigt. Die Datenleitungen sind wild durcheinander gewürfelt worden. Wie man sowas hinbekommt ohne es zu bemerken bleibt mir ein Rätsel.
Eltern, achtet besser auf eure Kinder!
Der Dump sieht so aus:
Soweit so gut.
Woran erkennt man Würste, ohne zu viel Zeit zu verschwenden? Man schaut nach Strings.
Das ist offensichtlich Wurst und Käse.
Nun wird das Durcheinander entwirrt (Script ist im Anhang):
Die Geschwindigkeit des Scripts gewinnt keinen Preis. Für den gewünschten Zweck ist es aber gut genug. Das Ergebnis zählt.
Der Lackmustest:
Wer sagt's denn!
Was ist drin? Nichts außer allgemeiner ARM32 Code mit dem üblichen Drum und Dran. Dort gibt’s nicht mal BoxIDs. Somit kann man sich die Suche nach den üblichen Verdächtigen schenken. Wer es nicht glaubt, darf natürlich trotzdem suchen.
Den originalen Dump bekam ich nicht zur allgemeinen Weiterverteilung. Deshalb muss ich den schuldig bleiben. Die Quellen stehen oben. Das Python-Script zum entwirren hängt hier dran.
Wer gerne in Maschinencode von NDS-Routinen gräbt, weiß jetzt wie er da ran kommt.
Diesen Beitrag habe ich vor allem für die geschrieben, die ihre Zeit nicht gerne mit kaputtem Zeug verschwenden wie es in den inzwischen geschlossenen Threads seinen Lauf nahm.
ci+ Modul
und
CI+ Modul decrypt 2 anlauf
gab es Bemühungen einem himmlischem CI+ Modul auf den Zahn zu fühlen.
Beide Threads sind inzwischen geschlossen. Vermutlich hat das auch etwas mit dem untersuchten Dump zu tun. Er wurde jeweils von @adas und @Cyberscitymaste zur Verfügung gestellt. Die Exemplare waren identisch (gleicher MD5-Hash).
Der Dump wurde scheinbar in einem unbeaufsichtigten Kinderzimmer angefertigt. Die Datenleitungen sind wild durcheinander gewürfelt worden. Wie man sowas hinbekommt ohne es zu bemerken bleibt mir ein Rätsel.
Eltern, achtet besser auf eure Kinder!
Der Dump sieht so aus:
Code:
$ hd yks.bin | head
00000000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
*
00004000 02 04 02 00 00 00 00 00 6d 5a 67 5e 04 46 57 be |........mZg^.FW.|
00004010 17 0b cc 30 c3 5b ca 93 85 c9 09 44 00 00 00 00 |...0.[.....D....|
00004020 8b dc 85 30 5c a9 86 3e 48 2e 46 2b c9 44 d9 87 |...0\..>H.F+.D..|
00004030 2c f8 0c 4c 27 7e 4c 69 ce 2c e8 3c 5b 34 16 16 |,..L'~Li.,.<[4..|
00004040 04 0f da 61 48 62 97 db 78 0a 58 06 9c 42 60 69 |...aHb..x.X..B`i|
00004050 5c cf ee 67 ca eb 8a d4 78 2e 53 00 45 9a 20 9c |\..g....x.S.E. .|
00004060 43 fc 17 19 45 2d 79 66 7e 6f 10 b5 44 d9 1b 54 |C...E-yf~o..D..T|
00004070 92 9d f5 83 7d 77 fc 34 6d fd 22 7d 68 d3 7f 99 |....}w.4m."}h...|
Soweit so gut.
Woran erkennt man Würste, ohne zu viel Zeit zu verschwenden? Man schaut nach Strings.
Code:
$ strings -9 yks.bin
%` Y?F Y<
_d]M_d-%-
_d]M_d-%-
_d]M_d-%-
]L]M_d-%-
"]L]M_d-%-
]L]M_d-%-
N _MM$]lM,
M!_f^!z`'
a B4pjZ4`
%` 5j >"
h(K=` R4j
I<` R0" [=
@fBNBABM@DBDBo
s>nSQStD%
CBKwShS}*'2
-B@B`@H0
Ba@IBc@K@k
@@O@LBL@nBn@EBE@o
@dBl@eBe@MBO@NBFBm@GBG@g!D#D!d
PcPcRgRg=
OOOOBGBG~
B5uG\)1Y|(
_d]M_d-%-
_d]M_d-%-
_d]M_d-%-
]L]M_d-%-
"]L]M_d-%-
]L]M_d-%-
N _MM$]lM,
M!_f^!z`'
O!_ Ni^C>
M*]eLail'
Das ist offensichtlich Wurst und Käse.
Nun wird das Durcheinander entwirrt (Script ist im Anhang):
Code:
$ python3 rewire.py yks.bin yks_rewired.bin
Die Geschwindigkeit des Scripts gewinnt keinen Preis. Für den gewünschten Zweck ist es aber gut genug. Das Ergebnis zählt.
Code:
$ hd yks_rewired.bin | head
00000000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
*
00004000 01 01 01 00 00 00 00 00 cc 7c 8d 7d 08 49 af 57 |.........|.}.I.W|
00004010 1d 46 c2 d0 9d 9c f9 90 34 cc 40 0d 00 00 00 00 |.F......4.@.....|
00004020 e5 8d 82 c4 76 52 8f c1 4e 11 1f 50 40 9d 78 97 |....vR..N..P@.x.|
00004030 e6 68 44 49 8f 6d 56 58 47 d1 c6 b1 c3 17 89 43 |.hDI.mVXG......C|
00004040 1c 41 53 9a 4a 18 bd ce 4c 32 48 13 48 ca 16 38 |.AS.J...L2H.H..8|
00004050 7c 5b 5b f9 7f 98 e1 89 4e 33 01 16 ac 54 a4 21 ||[[.....N3...T.!|
00004060 a7 1d 95 46 16 55 4a 3f 5f 7b b2 03 b4 58 c1 0f |...F.UJ?_{...X..|
00004070 b5 83 38 f6 da 7f c2 f3 f6 7d 97 29 f8 38 f5 76 |..8......}.).8.v|
Der Lackmustest:
Code:
$ strings -9 yks_rewired.bin | head
Nov 12 2009
DMX_RegisterChanWithUniqueFilter() - Allocate filter error, not much filter.
DMX_RegisterChanWithUniqueFilter() - chan open error, invalid chan.
DMX_ChanCallbackDII() - Data CRC_MPEG32 error!
[LOADER] DII received, current time %lu
DMX_ChanCallbackDII() - Allocate memory error
DMX_ChanCallbackDDM() - start to filter moudle %d, current time %lu
[LOADER] throw over DDM %d , DDB count %d
DMX_ChanCallbackDDM() - table id error!
DMX_ChanCallbackDDM() - message id error!
Wer sagt's denn!
Was ist drin? Nichts außer allgemeiner ARM32 Code mit dem üblichen Drum und Dran. Dort gibt’s nicht mal BoxIDs. Somit kann man sich die Suche nach den üblichen Verdächtigen schenken. Wer es nicht glaubt, darf natürlich trotzdem suchen.
Den originalen Dump bekam ich nicht zur allgemeinen Weiterverteilung. Deshalb muss ich den schuldig bleiben. Die Quellen stehen oben. Das Python-Script zum entwirren hängt hier dran.
Wer gerne in Maschinencode von NDS-Routinen gräbt, weiß jetzt wie er da ran kommt.
Diesen Beitrag habe ich vor allem für die geschrieben, die ihre Zeit nicht gerne mit kaputtem Zeug verschwenden wie es in den inzwischen geschlossenen Threads seinen Lauf nahm.
Anhänge
Du musst angemeldet sein, um die Anhangsliste zu sehen.