OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů


Právě je 28.03.2024, 11:57

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 29 ]  Přejít na stránku 1, 2  Další
Autor Zpráva
 Předmět příspěvku: PIC16LF73
PříspěvekNapsal: 30.10.2019, 15:05 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 16.03.2017, 11:36
Příspěvky: 1493
Bydliště: Kósek vod Brna
Has thanked: 101 times
Been thanked: 112 times
Ze starýho krámu bych potřeboval vyčíst data. Je to samosebou chráněný. Tady se někdo holedbá, že to jde(jestli jsem to správně pochopil):

http://www.break-ic.com/microcontroller ... Memory.htm

Zná ty obvody někdo líp?

_________________
TEMS-49, PMI-80, rep. MK14, ZX81, ZXspectrum+, TI58, MZ-800


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PIC16LF73
PříspěvekNapsal: 30.10.2019, 15:51 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 25.05.2014, 12:29
Příspěvky: 1671
Bydliště: Praha
Has thanked: 318 times
Been thanked: 372 times
Já osobně jsem s kolegou některý PICky hacknul, ale rozhodně to nebylo prosté. A ani už nevím jaké to byly typy, je to dlouho.
V podstatě šlo o to pokusit se přepsat skok na reset vektoru(kde většinou skok bývá neb pak následují vektory přerušení) tak
aby skákal někam jinam a tam vnutit svou rutinu která vysype obsah flash ven. Ale muselo se trefit místo kde je volno, nešlo to vždy.
Je tam flash tudíž šlo samo jen nulovat bity, zápis 1 bez mazání nemá na nulové bity ve flash vliv.

Ale asi bych to dnes už nedal :-(

_________________
Atari 65XE, 600XL, 400, 800, 800XL/XE, 130XE, 1200XL, XEGS
Commodore C64, C64C, C128, Plus/4
Amiga A600, A1200+Blizzard 060/50
ZX Spectrum, +2


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PIC16LF73
PříspěvekNapsal: 30.10.2019, 18:57 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 16.03.2017, 11:36
Příspěvky: 1493
Bydliště: Kósek vod Brna
Has thanked: 101 times
Been thanked: 112 times
Myslíš jen přepsat protect bit nějakou rutinou zevnitř? To se obávám, že jde jen vymazáním celýho čipu. V RAMce asi kód nepoběží, co?

//Aha, jediná šance upravit kod pomocí jen vynulováním dosud nevynulovaných 1ček

_________________
TEMS-49, PMI-80, rep. MK14, ZX81, ZXspectrum+, TI58, MZ-800


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PIC16LF73
PříspěvekNapsal: 30.10.2019, 20:06 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 25.05.2014, 12:29
Příspěvky: 1671
Bydliště: Praha
Has thanked: 318 times
Been thanked: 372 times
No přepsat CPx jsem nezkoušel, poslat obsah ven přes sériovou linku ano - to šlo.
Juknu na datashity, třeba si vzpomenu. Teď mi nějak vrtá hlavou zda ty starší kusy z PIC14 řady měly vůbec flash či nějakou eeprom.

_________________
Atari 65XE, 600XL, 400, 800, 800XL/XE, 130XE, 1200XL, XEGS
Commodore C64, C64C, C128, Plus/4
Amiga A600, A1200+Blizzard 060/50
ZX Spectrum, +2


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PIC16LF73
PříspěvekNapsal: 31.10.2019, 06:14 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 16.03.2017, 11:36
Příspěvky: 1493
Bydliště: Kósek vod Brna
Has thanked: 101 times
Been thanked: 112 times
Ten ochranný bit je aktivní v 0, takže změna na 1 jedině při mazání.

//Navíc, pokud zbylo nějaký místo pro kód, tak je jednoduché ho "vynulovat" a nikdo tam už nic nepodstrčí

_________________
TEMS-49, PMI-80, rep. MK14, ZX81, ZXspectrum+, TI58, MZ-800


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PIC16LF73
PříspěvekNapsal: 31.10.2019, 10:02 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 16.03.2017, 11:36
Příspěvky: 1493
Bydliště: Kósek vod Brna
Has thanked: 101 times
Been thanked: 112 times
Jsou tam nějaký nedokumentovaný příkazy? Prošel jsem všech 35 RISCových instrukcí a nenapadá mě způsob jak dostat kód instrukce do nějakého rtegistru ke zpracování

_________________
TEMS-49, PMI-80, rep. MK14, ZX81, ZXspectrum+, TI58, MZ-800


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PIC16LF73
PříspěvekNapsal: 31.10.2019, 11:51 
Offline
Óm Nejvyšší

Registrován: 16.06.2014, 12:23
Příspěvky: 3676
Bydliště: Jesenice u Prahy
Has thanked: 28 times
Been thanked: 280 times
Nedestruktivně to dost dobře to nejde, tyhle nižší PICy neumí číst programově obsah PROMky.
Zamčený PIC by měl přečíst obsah EPROM jako XOR jednotlivých nible slova, případně by tam mohla být checksum, na kontrolu obsahu.
Pokud je možný zápis, tak by šlo postupně zapisovat 0 po bitech a zjistit jestli se mění checksum a podle toho analyzovat co tam bylo zapsáno.

_________________
Diagnóza: Touretteův syndrom, Koprolálie, Dyslexie, Obsedantně kompulzivní porucha.
Kalkulačky: Privileg PR56, TI51-III, TI57, TI58, TI59, TI83, TI-83 Premium CE, TI89
Počítadla: BOBO64, ZX48 plus, DG-88, Didaktik-M, C16, C64C, Amiga 500+, MZ800, MUPID C2A2


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PIC16LF73
PříspěvekNapsal: 31.10.2019, 11:53 
Offline
Kecálek

Registrován: 07.05.2014, 12:10
Příspěvky: 197
Bydliště: Jbc
Has thanked: 0 time
Been thanked: 39 times
microlan píše:
Jsou tam nějaký nedokumentovaný příkazy? Prošel jsem všech 35 RISCových instrukcí a nenapadá mě způsob jak dostat kód instrukce do nějakého rtegistru ke zpracování

PIF16(L)F73 by mel podporovat cteni programove pameti pres registry PMCON1, PMADR, PMADRH, PMDATA, PMDATH. V manualu k procesoru to je popsane v kapitole "Reading Program Memory"...


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PIC16LF73
PříspěvekNapsal: 31.10.2019, 12:04 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 16.03.2017, 11:36
Příspěvky: 1493
Bydliště: Kósek vod Brna
Has thanked: 101 times
Been thanked: 112 times
Kontrolní součet to vyrobí až v programátoru, samozřejmě pokud načte samý nuly, tak je to taky 0. Jestli je někde uložený na čipu, tak asi taky nebude k přečtení. Ale jako nápad dobrý, díky.

hynek píše:
Reading Program Memory


Mrknu na to, díky

Nakonec je to jednoduchý i s examplem, jen aby bylo volný místo a šlo upravit vektor

Kód:
BSF STATUS, RP1 ;
BCF STATUS, RP0       ; Bank 2
MOVF ADDRH, W        ;
MOVWF PMADRH        ; MSByte of Program Address to read
MOVF ADDRL, W        ;
MOVWF PMADR          ; LSByte of Program Address to read
BSF STATUS, RP0       ; Bank 3 Required
BSF PMCON1, RD       ; EEPROM Read Sequence
NOP                          ; memory is read in the next two cycles after BSF PMCON1,RD
NOP                          ;
BCF STATUS, RP0      ; Bank 2
MOVF PMDATA, W      ; W = LSByte of Program PMDATA
MOVF PMDATH, W      ; W = MSByte of Program PMDATA

_________________
TEMS-49, PMI-80, rep. MK14, ZX81, ZXspectrum+, TI58, MZ-800


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PIC16LF73
PříspěvekNapsal: 31.10.2019, 13:01 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 25.05.2014, 12:29
Příspěvky: 1671
Bydliště: Praha
Has thanked: 318 times
Been thanked: 372 times
No záleží jak ten originál napsán. Pokud jsou tam dle štábní kultury napsány skoky tak ten na resetu
se přepisem hodí na NOP a pak za něj svůj skok někam vysoko kde je snad místo. No jak jsem psal.
Když se to povede vyčíst je jen potřeba kód zanalyzovat a najít kam to skákalo původně.

Blbý je když máš jen jeden kus, moc prostoru na pokusy není.
Marodím, tedy mám omezenou dostupnost udělátek, ale mám myslím někde ICD3 a i nějaký PICky.
Já to snad i zkusím...

_________________
Atari 65XE, 600XL, 400, 800, 800XL/XE, 130XE, 1200XL, XEGS
Commodore C64, C64C, C128, Plus/4
Amiga A600, A1200+Blizzard 060/50
ZX Spectrum, +2


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PIC16LF73
PříspěvekNapsal: 31.10.2019, 13:14 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 16.03.2017, 11:36
Příspěvky: 1493
Bydliště: Kósek vod Brna
Has thanked: 101 times
Been thanked: 112 times
Jo, NOP jsou samý nuly. Jen aby nebyly zaNOPovaný taky ty volný pozice.

//Vyzkouším to nejdříve na prázdných, potom na štábně korektně naprogramovaných

_________________
TEMS-49, PMI-80, rep. MK14, ZX81, ZXspectrum+, TI58, MZ-800


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PIC16LF73
PříspěvekNapsal: 31.10.2019, 13:30 
Offline
Óm Nejvyšší

Registrován: 16.06.2014, 12:23
Příspěvky: 3676
Bydliště: Jesenice u Prahy
Has thanked: 28 times
Been thanked: 280 times
Tak tohle PIC16C84, ani PIC16C73 neuměla :)

_________________
Diagnóza: Touretteův syndrom, Koprolálie, Dyslexie, Obsedantně kompulzivní porucha.
Kalkulačky: Privileg PR56, TI51-III, TI57, TI58, TI59, TI83, TI-83 Premium CE, TI89
Počítadla: BOBO64, ZX48 plus, DG-88, Didaktik-M, C16, C64C, Amiga 500+, MZ800, MUPID C2A2


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PIC16LF73
PříspěvekNapsal: 31.10.2019, 13:56 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 16.03.2017, 11:36
Příspěvky: 1493
Bydliště: Kósek vod Brna
Has thanked: 101 times
Been thanked: 112 times
Myslíš ten proces startovaný 1 bitem z registru PMCON1?

//To mě taky dostalo u SC/MP, že LD 80(2) nečte z adresy P2 -128, ale z P2 + E

///A odkud se potom daly načíst nějaký konstanty?

_________________
TEMS-49, PMI-80, rep. MK14, ZX81, ZXspectrum+, TI58, MZ-800


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PIC16LF73
PříspěvekNapsal: 31.10.2019, 14:08 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 24.05.2018, 22:32
Příspěvky: 1972
Bydliště: Most, Praha
Has thanked: 863 times
Been thanked: 697 times
Jakési možnosti detekce by měly být sledováním času odezvy při přeprogramování bitů (shození z 1 na 0 trvá déle než když už tam 0 byla) a změn odběru proudu z napájení. Tady autor docela zajímavě rozepisuje používané metody https://www.cl.cam.ac.uk/~sps32/mcu_lock.html

_________________
i++ (INC) increment
i-- (DEC) decrement
i@@ (EXC) excrement


Nahoru
 Profil  
 
 Předmět příspěvku: Re: PIC16LF73
PříspěvekNapsal: 31.10.2019, 14:36 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 16.03.2017, 11:36
Příspěvky: 1493
Bydliště: Kósek vod Brna
Has thanked: 101 times
Been thanked: 112 times
A to lze programovat po 1 bitu?
Ale i tak by to bylo už moc složitý, dělám to jen pro zábavu a pro doplnění vědomostí o PIC. Protože mám teď programátorskou kocovinu po splnění "dú" na TM

//Každopádně díky za další tip

_________________
TEMS-49, PMI-80, rep. MK14, ZX81, ZXspectrum+, TI58, MZ-800


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 29 ]  Přejít na stránku 1, 2  Další

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 3 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz