Page 42 of 68
Re: GM E38 E67 Kernel/Bootloader Development Extravaganza
Posted: Fri May 29, 2020 8:37 pm
by Tre-Cool
So with the cloning option.
Where about's in the bin file or segment has the security link information. mainly interested in copying it from one bin to another. i.e if doing a OS change/upgrade.
Re: GM E38 E67 Kernel/Bootloader Development Extravaganza
Posted: Sat May 30, 2020 9:45 am
by ironduke
Hopefully someone a lot more knowledgeable will chime in but I thought I remember reading that it was the 2 bytes in between the seed and the key in the bin.. I tried finding where I had read that, but sorry to say can't find the document or forum topic that I read it from..
Re: GM E38 E67 Kernel/Bootloader Development Extravaganza
Posted: Sat May 30, 2020 11:38 am
by Tazzi
Tre-Cool wrote:So with the cloning option.
Where about's in the bin file or segment has the security link information. mainly interested in copying it from one bin to another. i.e if doing a OS change/upgrade.
The immobiliser,seed/key,vin,serial ect is in the parameter block area, which is from the 0x8000 to 0xA000 area of the top of my head.
The immo code stands out, its a 4digit number in that block
Re: GM E38 E67 Kernel/Bootloader Development Extravaganza
Posted: Sat May 30, 2020 11:46 am
by ironduke
I just tried an immobilizer learn on my bench E38, didn't change what I thought was the immo key.. but that's only 2 bytes anyways so that wasn't it..
The immo learn didn't change anything, but it did add some code from 0xCCB6 to 0xD170.. total length of 0x4C4 bytes..
I can only guess it's code to write the new immo when it seeds one send from the BCM?? total guesswork on my part.. Gonna be busy the next couple of days but I want to plug it into a car and then read it again to see if it learns a different immo..
Re: GM E38 E67 Kernel/Bootloader Development Extravaganza
Posted: Wed Jun 03, 2020 11:14 am
by In-Tech
Hi Tazzi,
We talked earlier in this thread about reading the last two modules. Keep in mind this snippet is just that so pay no attention to the exact order of things, a bit of some things I was doing on a different 8 bit project. I was bit banging the IO register to do some reading on some stuff that had built in clock jitter, the numbers noted are clock ticks
Maybe it will give you some ideas to incorporate. Fun stuff
Code: Select all
SaveA: equ $XX ;IO Register address
BTDelay: equ $F0 ;bit delay this can be any value ya like
;
;BootStrap code starts here
;
sei ;enable interrupts, not really necessary
lda #$55 ;55h is the response that basically says you are
;running this bootstrap, can be any value you like
bra Start ;run dumper
SendByte: sta SaveA
clra
bsr DecA ;Inter-Byte delay
ldx #$0A
coma ;invert byte
bclr0 $00 ;5 Zero Bit
bsr DelayBit ;1st Start Bit
bra SetIO ;3
SetIO: bset $00, #0 ;5 One Bit
bsr DelayBit
clc ;2nd Start Bit
SendBit: bcs Send1 ;3
bclr0 $00 ;5 Zero Bit |
bra bitdelay ;3 |count this for timing calc
Send1: bset $00, #0 ;5 One Bit |but not this
bra bitdelay ;3 |
bitdelay: bsr DelayBit
asla a ;3
decx ;3
bne SendBit ;3
bset $00, #0 ;Parity = 0, Stop bits = 1
rts ;6
DelayBit: ;standard 8 bit delay loop
sta SaveA
lda #BTDelay
DecA: deca
bne DecA
lda $XX ;SaveA This is the IO register
rts
Start: bsr SendByte
LongDelay: deca
bsr DelayBit
bne LongDelay
lda #$30 ;Start address of 3000
sta $47 ;Now address stored at 47,48 in ram
lda #$00
sta $48
; ---------------------------------------------------------------------------
dw $7180 ;Change page to eeprom
; ---------------------------------------------------------------------------
Loop: dw $92C6 ;Load A with the value of this next byte address 92C647
;Haven't fixed assembler to allow this new opcode yet
db $47
bsr SendByte
inc $48
bne Loop
inc $47
bne Loop
;need to create "reversible" idling loop here or rts
Re: GM E38 E67 Kernel/Bootloader Development Extravaganza
Posted: Fri Jun 05, 2020 8:43 am
by Yustas
Really impressed work, Tazzi!
Re: GM E38 E67 Kernel/Bootloader Development Extravaganza
Posted: Sat Jun 13, 2020 7:54 pm
by The1
awesome work tazzi, lots of hours to get this far
Re: GM E38 E67 Kernel/Bootloader Development Extravaganza
Posted: Wed Jun 17, 2020 8:23 am
by In-Tech
Hiya Tazzi,
Just an update that I built bench setups for the E67, E78 and E92 if you want me to do anything. I can rig up a CAN logger/sniffer too. I'll make the T42 and T87 adapters soon.
I screwed up the other day and didn't read a messed up E38 after I got the key. It was fubar'd bad enough it only had a 3 byte seed. Seed was BE2 and key was 881, didn't take long to brute it and I got sidetracked by the phone and forgot to read it before repair
Here's a couple E78 reads from some ebay puters.
Re: GM E38 E67 Kernel/Bootloader Development Extravaganza
Posted: Wed Jun 17, 2020 10:47 am
by Tazzi
The1 wrote:awesome work tazzi, lots of hours to get this far
Thanks!
In-Tech wrote:Hiya Tazzi,
Just an update that I built bench setups for the E67, E78 and E92 if you want me to do anything. I can rig up a CAN logger/sniffer too. I'll make the T42 and T87 adapters soon.
I screwed up the other day and didn't read a messed up E38 after I got the key. It was fubar'd bad enough it only had a 3 byte seed. Seed was BE2 and key was 881, didn't take long to brute it and I got sidetracked by the phone and forgot to read it before repair
Here's a couple E78 reads from some ebay puters.
2013_Sonic_ABMW_Flex_Stock.rar
2015_Cruz_Turbo_Stock_AB67.rar
Sweet as. Iv been bogged down with work during all the COVID, its only starting to normalise for me now so I will (Hopefully) have more free time again soon to start attacking more ecus.
I did start cutting into my E92, back plate isnt completely off yet but made a start
Re: GM E38 E67 Kernel/Bootloader Development Extravaganza
Posted: Wed Jun 17, 2020 1:35 pm
by In-Tech
Shoot, I meant to cut open an E92 here too and got sidetracked, will try this weekend.
I read those .bin files out with TunerCat. I have two of the 2013 Sonic ECM's here, both broadcast code ABMW. I just did a compare of the two in Hex Workshop and they are identical. Is the vin and seed/key and other parameters stored in the processor or are these files I posted padded in those areas meaning they aren't read? Or do you have to put it in a particular mode to read that info.
Here's the info for the one I posted.
VIN: 1G1JC6SH9D4148561
PCM Service No: 12655499
PCM Traceability Code: 86ABMWK02298Y1VG
PCM Security Seed: 648E
PCM Module 1: 12655492
PCM Module 2: 55594171
PCM Module 3: 55594167
PCM Module 4: 55593091
PCM Module 5: 55593079
PCM Module 6: 55594163
PCM Module 7: 12643594
PCM Module 8: 55585772
Here's the info for the other one I read.
VIN: 1G1JC5SH9D4103453
PCM Service No: 12655499
PCM Traceability Code: 86ABMWK02217SACR
PCM Security Seed: 772C
PCM Module 1: 12655492
PCM Module 2: 55594171
PCM Module 3: 55594167
PCM Module 4: 55593091
PCM Module 5: 55593079
PCM Module 6: 55594163
PCM Module 7: 12643594
PCM Module 8: 55585772
The question is should I try to write a different file from a v8 to this box and see if it takes?