Peter Claus
It is so simple to be happy, but it is so difficult to be simple
Beste mede CO-ers.
Ik heb hier een PIC16C57C met rare kuren van een automatisch hek.
Ik wou eens het programma er uit halen en disassembleren.
De HEX file heb ik er al uitgehaald maar nu wil ik deze weer omzetten naar een .asm bestand.
Ik heb reeds het forum doorzocht en volgende discussie eens doorgenomen : http://www.circuitsonline.net/forum/view/23537/.
Ik heb gedaan wat daar verteld wordt maar hier met MPLAB importeer ik de HEX file en er gebeurt gewoon niets, zelfs geen foutmelding en ook het dissasembly venster is leeg. Nochtans zit er een programma in de HEX file.
Is iemand die weet wat er mis loopt?
Volgens mij is het bij MPLAB de bedoeling dat je 1 chip uitleest en vervolgens andere chip mee kan programmeren.
Het is (denk ik) zeker niet de bedoeling van MPLAB om de broncode weer terug te krijgen.
Switching Power
Hobby, maar sample met mate. | BumbleBee plus pack | Weerstand calculator voor je PSP
joopv
Golden Member
Ik heb in het verleden nogal eens met de hand gedisassembleerd, en er waren destijds tools zoals Sourcer of Sourcerer (voor de pc X86 cpu) die een heel behoorlijk leesbare source konden maken.
De echte broncode kun je natuurlijk nooit terugkrijgen uit een hexdump, maar met voldoende tijd en kennis van de instructieset kun je een heel eind komen. De vraag is of het je dat waard is.
Op 15 oktober 2006 14:42:00 schreef reapp:
Stuur het me ff op, ik stuur je dan een asm terug.
Als je daar een apart programmaatje voor hebt, zou je daarvan een linkje kunnen geven?
Peter Claus
It is so simple to be happy, but it is so difficult to be simple
Hier is de HEX-file in kwestie.
Ik heb trouwens ook de indruk dat dit programma me nogal kort lijkt. Zou er iets van een code beveiliging kunnen tussenzitten. Ik heb er nochtans data uitgekregen.
[Bericht gewijzigd door Peter Claus op ]
reapp
RE-Applications.be
reapp
RE-Applications.be
Dit was het resultaat.
;******************************************
;** Generated by RE PIC Disassembler **
;** Developed By RE-Applications **
;** www.RE-Applications.be **
;******************************************
; modify if necessary
#include <p16C57.inc>
LIST P=16C57
__CONFIG _CP_ON & _XT_OSC
; *** PROGRAM ***
org 0x0000
a_00000 bcf 0x08, 1 ;db 0x04, 0x28
bcf 0x08, 3 ;db 0x04, 0x68
bcf STATUS, PA0 ;db 0x04, 0xA3
bsf STATUS, PA1 ;db 0x05, 0xC3
goto a_00000 ;db 0x0A, 0x00
retlw 0x00 ;db 0x08, 0x00
bcf 0x0B, 5 ;db 0x04, 0xAB
a_0000E clrwdt ;db 0x00, 0x04
btfss 0x07, 7 ;db 0x07, 0xE7
goto a_0000E ;db 0x0A, 0x07
a_00014 clrwdt ;db 0x00, 0x04
btfsc 0x07, 7 ;db 0x06, 0xE7
goto a_00014 ;db 0x0A, 0x0A
movlw 0xC1 ;db 0x0C, 0xC1
movwf TMR0 ;db 0x00, 0x21
a_0001E clrwdt ;db 0x00, 0x04
movf 0x01, W ;db 0x02, 0x01
btfss STATUS, Z ;db 0x07, 0x43
goto a_0001E ;db 0x0A, 0x0F
movlw 0x25 ;db 0x0C, 0x25
movwf TMR0 ;db 0x00, 0x21
a_0002A clrwdt ;db 0x00, 0x04
movf 0x01, W ;db 0x02, 0x01
btfss STATUS, Z ;db 0x07, 0x43
goto a_0002A ;db 0x0A, 0x15
btfsc 0x07, 7 ;db 0x06, 0xE7
bsf 0x0B, 5 ;db 0x05, 0xAB
bsf STATUS, PA0 ;db 0x05, 0xA3
goto a_0008A ;db 0x0A, 0x45
bsf 0x0C, 0 ;db 0x05, 0x0C
movlw 0x05 ;db 0x0C, 0x05
movwf 0x0E ;db 0x00, 0x2E
a_00040 call a_00000 ;db 0x09, 0x00
btfsc 0x0A, 6 ;db 0x06, 0xCA
goto a_00040 ;db 0x0A, 0x20
a_00046 clrwdt ;db 0x00, 0x04
btfss 0x07, 7 ;db 0x07, 0xE7
goto a_00046 ;db 0x0A, 0x23
a_0004C clrwdt ;db 0x00, 0x04
btfsc 0x07, 7 ;db 0x06, 0xE7
goto a_0004C ;db 0x0A, 0x26
a_00052 clrwdt ;db 0x00, 0x04
btfss PORTB, 2 ;db 0x07, 0x46
goto a_00060 ;db 0x0A, 0x30
btfss 0x07, 7 ;db 0x07, 0xE7
goto a_00052 ;db 0x0A, 0x29
bsf STATUS, PA0 ;db 0x05, 0xA3
goto a_0001E ;db 0x0A, 0x0F
a_00060 movlw 0xF8 ;db 0x0C, 0xF8
andwf 0x0C, F ;db 0x01, 0x6C
bsf 0x0A, 5 ;db 0x05, 0xAA
movlw 0x0A ;db 0x0C, 0x0A
movwf 0x18 ;db 0x00, 0x38
a_0006A call a_00000 ;db 0x09, 0x00
movf 0x18, F ;db 0x02, 0x38
btfss STATUS, Z ;db 0x07, 0x43
goto a_0006A ;db 0x0A, 0x35
bsf STATUS, PA0 ;db 0x05, 0xA3
goto a_00082 ;db 0x0A, 0x41
xorlw 0xFF ;db 0x0F, 0xFF
xorlw 0xFF ;db 0x0F, 0xFF
xorlw 0xFF ;db 0x0F, 0xFF
xorlw 0xFF ;db 0x0F, 0xFF
xorlw 0xFF ;db 0x0F, 0xFF
End
reapp
RE-Applications.be
Ben je zeker dat er niks mis is, ik vermoed dat de lees beveiliging opstaat omdat er na het eerste blok allemaal nullen staan.
Peter Claus
It is so simple to be happy, but it is so difficult to be simple
Verschrikkelijk wel bedankt reapp.
Mocht ik je ooit eens tegenkomen hebt ge een Leffe of een Duvel van mij tegoed
.
Waar heb je dat programma vandaan?
edit : Het is wel mogelijk dat er beveiliging was maar dan kan je toch niks uitlezen? De instructies op de laatste regels zijn wat raar, 4X dezelfde.
[Bericht gewijzigd door Peter Claus op ]
reapp
RE-Applications.be
De instructies op de laatste regels zijn wat raar, 4X dezelfde.
Heb ik ook gezien maar dat staat ook zo in de hex, net daarvoor staat een goto naar een ontbrekend stuk dus ik vermoed dat die 5 instructies niks betekenen.
Die disassembler is die ook voor "ons". Ik zie hem nl niet als download terwijl hij er wel bijstaat.
reapp
RE-Applications.be
"Dit programma is echter nog in ontwikkeling en is (nog) niet beschikbaar voor download."
Ik ben voor alle zekerheid gaan kijken.
Peter Claus
It is so simple to be happy, but it is so difficult to be simple
Hallo, Ik heb het probleem intussen gevonden.
Voor de geïnteresseerden. Deze pic zit op een print die een automatisch hek opent en sluit.
De fout was dat er één kant altijd bleef dichtstaan.
Het bleek aan de aansluiting van de sensoren en combinatie van de ingangen te liggen (moeilijk te vinden want een handleiding was er niet bij).
In verband met die PIC heb ik nog een algemeen bijkomend vraagje.
Ik heb eens een printscreen gemaakt van de software waarmee ik de PIC uitlees.
Klik op de afbeelding voor groter formaat.
Nu zie ik code protection on staan.
Hoe komt het dan dat er dan toch een gedeelte van het programma uitgelezen wordt (tot adres 3F hexadecimaal) ondanks de beveiliging, als je kijkt in het gedeelte van de uitgelezen bytes.
Ik zou verwachten dat er niets zou verschijnen.
Is er dan toch een deel van het geheugenbereik toegankelijk bij beveiligde PIC's?
Turbokeu
Golden Member
I love watching conspiracy theorists use the airtight logic of the argument from incredulity: "Well I don't understand how it works so it can't be real!!!"
Bij sommige PICs kan je de CP (Code Protect) bits instellen voor verschillende blokken van het flashgeheugen.
Ik ken de 16C54 niet maar misschien is dit hier het geval.
CD 