@tweakertje,
is it really soo complicated? If Yes, I'am Sorry. Ok I will it explain it once again, "only" for you!
Its right, The end of the whitelist could be found with ADDCC v3, here at 0x2632. I repeat,
the end of the whitelist.
The beginning is anywhere above. with the method of "charp seeing" will you find it.
but can i change any of the strings to match my new card ?
principled YES. BUT, with the first Entrie from the whitelist it is the easiest way. It is the "root". all other are only derived from this
entry cause some bytes are repeat. So its easier to change only the first entry, that is not
compressed in the original file. Watch the axplanation below. I will show it exactly.
@nando
How do I find the compressed bytes for the second whitelist entry??
Please take a look in the ADDCC PDF on the chapter:
The Source Code of the Decompresser Routine
->
The compressed data Struct ->
Instruction bytes
There is all explained. I will show you with your example.
How we know, the
first decompressed whitelist entry is:
E41411433C106313
If we search for it in the compressed whitelist, we will get this: FEC100E41411433C1063
5513
It is obvious, that the
55 is an instruction byte. Ok lets check this more precisely with a look in this hex area.
Code: Select all
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00011400 70 62 00 86 FE C1 00 E4 14 11 43 3C 10 63 55 13 pb.†þÁ.ä..C<.cU.
00011410 83 00 65 84 00 64 00 01 12 80 01 F5 60 84 00 62 ƒ.e„.d...€.õ`„.b
00011420 04 01 61 13 86 80 5F 22 42 3C 10 5B 84 00 5C 04 ..a.†€_"B<.[„.\.
00011430 01 D5 5E 84 01 5D 04 02 5F 82 02 86 80 AB 05 10 .Õ^„.].._‚.†€«..
00011440 83 00 34 84 00 00 04 01 01 EA 84 01 02 04 02 03 ƒ.4„.....ê„.....
00011450 84 02 04 10 E4 4B 14 28 00 09 66 00 09 81 00 67 „...äK.(..f....g
00011460 84 00 55 68 04 09 70 84 09 71 04 0A 72 84 0B 55 „.Uh..p„.q..r„.U
00011470 74 04 0C 75 84 0C 76 80 0A 29 04 07 80 81 00 01 t..u„.v€.)..€...
00011480 07 01 01 01 07 81 01 01 07 02 02 11 D4 04 02 84 ............Ô..„
00011490 00 02 04 01 03 84 01 04 11 FD 66 90 42 52 56 57 .....„...ýf.BRVW
000114A0 33 F6 B8 EF 79 EA B3 00 C5 61 66 83 FB BF 00 74 3ö¸ïyê³.Åafƒû¿.t
000114B0 03 83 CE 02 60 01 BB DC F0 7D 7C 01 04 B0 52 F6 .ƒÎ.`.»Üð}|..°Rö
The 55 have to interpret binary ->
(MSB) 01010101
(LSB) To read from right to left.
A byte is always presentably in 8 Bits -> ergo, they are always 8 operations per instruction byte.
After this eight operations, there is the next instruction byte.
1 means, copy the next byte
0 means, take the next two bytes in revers order, the left 3 nibbles are the reading ptr position in the wordbook, and the right nibble + 3 is the counter for the copy loop.
The wordbook = the decompressed file. Ok we dont know the history of this file at the moment,
but maybe we can use the decompressed file in this case to help us out.
Here the POI's. Points of interest.
E41411433C1063
55138300658400640001128001F5
The next instruction byte is the
F5
8300 -> 008 3 -> 008 (3+3=6) Loop-counter = 6
8400 -> 008 4 -> 008 (4+3=7) Loop-counter = 7
0001 -> 010 0 -> 010 (0+3=3) Loop-counter = 3
8001 -> 018 0 -> 018 (0+3=3) Loop-counter = 3
The decompressed part look principal like this:
E41411433C1063
13XXXXXXXXXXXX65XXXXXXXXXXXXXX64XXXXXX12XXXXXX
So lets find out where the wordbook ptr shows. 008 is to substract from the actual write position in the wordbook. The last written byte was the
13.
From this it follows that the read ptr is at the E4, and to write are 6 bytes.
E41411433C1063
13E41411433C1065XXXXXXXXXXXXXX64XXXXXX12XXXXXX
The next is once again 008, and its to subtract from the last written byte position, the
65.
From this it follows that the read ptr is at the
13, and to write are 7 bytes.
E41411433C1063
13E41411433C106513E41411433C1064XXXXXX12XXXXXX
The next one is 010, and its to subtract from the last written byte position, the
64.
From this it follows that the read ptr is once again at the
13, and to write are 3 bytes.
E41411433C1063
13E41411433C106513E41411433C106413E41412XXXXXX
The next one is 018, and its to subtract from the last written byte position, the
12.
From this it follows that the read ptr is at the 43, and to write are 3 bytes.
E41411433C1063
13E41411433C106513E41411433C106413E41412433C10
Puhh so much stuff at once, but it is, "the same procedure". Ok lets shortly check if its right!?
Compare it with the compressed one and its identical.
I think its enough? The next instruction byte is the
F5 ->
(MSB) 11110101
(LSB)
With this knowledge, you will find out any instruction byte, and any byte that you can change as you want.
Maybe you can modifie the bytes so individual as you want. But you dont have to change the
filesize or the byte positions.
F5608400620401611386805F22423C105B84005C0401D55E84015D04025F8
2028680AB0510830034840000040101EA84010204020384020410E44B14280009660009810067840055
next instruction byte is the
5F ->
(MSB) 01011111
(LSB)
next instruction byte is the
D5 ->
(MSB) 11010101
(LSB)
next instruction byte is the
AB ->
(MSB) 10101011
(LSB)
next instruction byte is the
EA ->
(MSB) 11101010
(LSB)
next instruction byte is the
4B ->
(MSB) 01001011
(LSB)
next instruction byte is the
55 ->
(MSB) 01010101
(LSB)
Hope this helps!?
Cheers Semi