Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   1047 / 1320
(#) Hp41C válasza Attila86 hozzászólására (») Jan 17, 2012 /
 
Igen, tulajdonképen mindig ezt csinálod... Csak sokkal könnyebb, ha van kiegészítő információd: a memória helyek cimkéje vagy neve...

MpLab: Config, típus kiválasztása, File import hex, Debugger Select toot, MpLab Sim. Máris kezdődhet a felfedezés. A töréspont is mőködik.
(#) Attila86 válasza Hp41C hozzászólására (») Jan 17, 2012 /
 
Értem, közben sikerült is rájönnöm.
Több órányi munkával sikerült nagyon durván elrejtenem a hex-ben az LCD-re küldendő karaktersorozatokat, így már a szavakban szereplő karakterek ASCII kódjára rákeresve elképesztően nehéz átírni a szövegeket. De ha lehet debuggolni (márpedig lehet) akkor sokkal kevesebbet ér a dolog, bár így sem leányálom a visszafordító feladata.
Hogyan lehetne hát a lehető legjobban elrejteni egy karaktersorozat LCD-re való kiküldésének kódját?
Itt pont te írtál ilyesmiről: Bővebben: Link
De ez egyenlőre nekem nem világos.
(#) foxi63 válasza Attila86 hozzászólására (») Jan 17, 2012 /
 
Egyszerűen bekapcsolod a kódvédelmet, és ágyő...
Nem is értem, miért is kell ennél több??
(#) El_Pinyo válasza foxi63 hozzászólására (») Jan 17, 2012 /
 
Azért, mert Attila elérhetővé szokta tenni a kódjait .hex formátumban a honlapján. A kódvédelmet hiába kapcsolná be, az csak a beprogramozás után él. Gondolom a plágium elkerülése a cél.
(#) Attila86 válasza El_Pinyo hozzászólására (») Jan 17, 2012 /
 
Igen, erről van szó.
(#) kissi válasza Attila86 hozzászólására (») Jan 17, 2012 /
 
Szerintem ha a kiírandó kódokhoz ( ASCII ) hozzáadsz egy értéket a letárolásnál és a kiírás előtt ugyanezt kivonod, akkor rákereséssel nehéz lesz értelmes szavakat találni a visszafordításban ( így már csak a program megértése után lenne lehetőség módosítani )!

Steve
(#) kissi válasza kissi hozzászólására (») Jan 18, 2012 /
 
Az előbb már nem tudtam hozzáírni, de ugyanilyen jó lehet az XOR művelet ( és akkor mindig ugyanazt kel csinálni!):

pl. 'A' (41H) XOR 30H --> 71H ('q')

vissza:
'q' (71H) XOR 30H --> 41H ('A')

A 30H helyett lehet más is (csak egy példa volt) !

Steve
(#) trudnai válasza kissi hozzászólására (») Jan 18, 2012 /
 
Ezek nem igazan nehez dolgok tekintve, hogy egy ilyen XOR muvelet tul egyszeru titkositasnak. A legegyszerubb egy un. nyilt kulcsos tamadassal feltorni (majdnem olyan gyorsan lehet vele a szoveget megtalalni mintha el sem lenne titkositva). Egy regebbi blogomban irtam errol reszletesen, ugyan picit mas temaval kapcsolatosan, de ugyanugy alkalmazhato ebben az esetben is. Akit erdekel a matematikaja annak ime:

Crypto-Analysis in Shellcode Detection

A nyilt kulcsos tamadas amugy ennel sokkal bpnyolultabb titkositasoknal is alkalmazhato (pl. DES eseteben). Ha igazi vedelem kell akkor mar kicsit osszetettebb algoritmust kell valasztani, pl az XTEA-t. Csak ezzel is az a baj, hogy szimmetrikus kulcsu es a kulcs ugye ott lesz a kododban, kulonben magad sem tudnad kinyerni az uzenetet.

Valoszinuleg a legjobb megoldas persze az lenne ha a chip-et a sajat bootloadereddel elore felprogramozottan forgalmaznad (ami le is van vedve tehat mas nem tudja meg a kulcsot es az algoritmust amit alkalmazol), es az kodolja ki a ra kuldott firmware-t -- igy a HEX helyett egy mar eleve eltitkositott adathalmazt tudsz atadni a delikvenseknek.
(#) icserny válasza trudnai hozzászólására (») Jan 18, 2012 /
 
Idézet:
„Valoszinuleg a legjobb megoldas persze az lenne ha a chip-et a sajat bootloadereddel elore felprogramozottan forgalmaznad”
Ez nem járható út, mert ha a HEX állomány csak az Attila által forgalmazott chip-be tölthető, akkor már nincs értelem a HEX állományt külön közzétenni. Akkor egyszerűbb gyári kódvédelmet használva, az alkalmazást tartalmazó mikrovezérlőt forgalmazni.
(#) trudnai válasza icserny hozzászólására (») Jan 18, 2012 /
 
Idézet:
„ha a HEX állomány csak az Attila által forgalmazott chip-be tölthető, akkor már nincs értelem a HEX állományt külön közzétenni.”


Dehogynem, egy ilyen titkositos bootloaderrel firmware update-eket is kuldhet a felhasznaloknak lecsokkentve annak kockazatat, hogy a kodot visszafejtik. Ugy tudom eleg sokan alkalmazzak ezt a fajta modszert.
(#) icserny válasza trudnai hozzászólására (») Jan 18, 2012 /
 
Idézet:
„Dehogynem, egy ilyen titkositos bootloaderrel firmware update-eket is kuldhet a felhasznaloknak”
Igazad van, de update-ről eddig nem esett szó, ezért kiesett a megfontolásaimból.
A DIOLAN honlapján egyébként van ilyen készen (nyíltforrású projekt, USB HID bootloadert valósít meg, titkosítással).
(#) kissi válasza trudnai hozzászólására (») Jan 18, 2012 /
 
Szia!

Nem tudom, hogy Attila mi ellen akarja védeni a programját, én úgy gondoltam, hogy az egyszerű "kiolvasom-módosítom" ellen, szerintem arra elég az XOR, de tanulmányozni fogom a leírásokat, fogok belőle új dolgokat megtudni, Attila meg eldönti milyen szintű védelmet akar !

Steve
(#) Hp41C válasza icserny hozzászólására (») Jan 18, 2012 /
 
Lehet, hogy ez már szőrszál hasogatás: Ha nyílt kódú, akkor letölthető a forrás és a hex is. Ha van forrás, akkor már csak a kulcs ismeretlen. De a forrás nyomkövetésével a kulcs megszerzése már csak idő kérdése, a kulcs valahol benne van a dekódolóban...
Ha a forrás és a hex nem érhető el, akkor csak előre felprogramozott kontrollert lehet venni...
(#) icserny válasza Hp41C hozzászólására (») Jan 18, 2012 /
 
Idézet:
„Ha nyílt kódú, akkor letölthető a forrás és a hex is. Ha van forrás, akkor már csak a kulcs ismeretlen.”
Ennél rosszabba helyzet, mert a kulcsot megkapja a delikvens a HEX mellé (nem a bootloader tartalmazza!).

Viszont a dolgon ott lehet csavarni egyet, hogy a forráskódban a dekódolás megváltoztatható. - legegyszerűbb esetben az iterációk számának megnövelésével. Ezzel a titkosítás egyedivé tehető, s mivel bootloader elvileg olvasásvédetté tehető, így már elég reménytelen lesz a visszafejtés.

A DIOLAN rendszere három komponensből áll: enkóder (amit a végfelhasználóhoz nem jut el), a letöltőprogram, és a bootloader (ez a dekóder).

Nyilván a titkosítás megváltoztatásakor az enkódert és a dekódert tartalmazó bootloadert egymással szinkronban kell változtatni, egyedivé tenni.
(#) trudnai válasza icserny hozzászólására (») Jan 18, 2012 /
 
Idézet:
„Nyilván a titkosítás megváltoztatásakor az enkódert és a dekódert tartalmazó bootloadert egymással szinkronban kell változtatni, egyedivé tenni.”


Hozza tennem a titkositasi algoritmuson nem erdemes valtoztatni, azt az elejen kell jol megvalasztani. A kulcsot pedig lehet dinamikusan is valtoztatni (tehat minden update-nel a kovetkezo update-hez tartozo kulcsot is letolti pl -- nyilvan ezt is a titkositott csatornan keresztul).
(#) Hp41C válasza icserny hozzászólására (») Jan 18, 2012 /
 
Idézet:
„...mert a kulcsot megkapja a delikvens a HEX mellé (nem a bootloader tartalmazza!)”
Már hogy is ne tartalmazná! Ismernie kell a dekódolási eljárást. A felhasználónak nem kell a kódoló kulcs, elég a dekódoló, azzal is meg tudja szerezni az eredeti (nem titkosított) program kódot, azt meg titkosítás nélkül beprogramozhatja. A dekódolási eljárást más processzorral (PC) is elvégezheti.
Ha nem a kontrollerrel együtt (felprogramozva, kiolvasásvédve) jut el a felhasználóhoz, hanem hex állományben, akkor a kulcs visszafejthető marad. Hiába van a hex -ben a kiolvasásvédelem, az pár mozdulattal kivehető. Ha letöltés után módosít a kulcson, akkor még egy debuggolás / szimulálás és meg is van az új kulcs... Az meg már hab a tortán, hogy az update -nek valahogy ellenőriznie kell mit is módosít. Ekkor a boot loader valahogy elküldi a program egy részletét. Ha már debuggolom, akkor ez a funkció nagyon jól jön, vele a teljes programtartalom felküldhető...
De ez már más topik témája is lehetne.
(#) Attila86 hozzászólása Jan 18, 2012 /
 
Köszönöm a válaszokat, nagyon érdekes dolgokat mondtatok itt és e-mailben is!

A kódvédelmet használtam de csak addig amíg a fejlesztésbe ölt pénz vissza nem térült a felprogramozott, kódvédett PIC-ek árusításával. Utána feltettem a hex-et (mert nem akarok nyerészkedni) és a problémám az hogy ebben át lehet írni a LCD-re kimenő karaktersorozatokat. Kissi által említett megoldásra gondoltam én is, csak sokkal brutálisabban és többszörösen egymásba ágyazva, véletlenszerűen hogy semmiféle rendszer ne legyen felfedezhető benne ami elárulná a kérdéses kódrészlet helyét. De ha valaki debuggolja és szépen lépteti akkor egyszer csak látni fogja hogy megjelenik az LCD-n az adott szöveg és akkor ott elkezdi figyelni a kódot. A jelenlegi megoldásom ezt a módszert is igencsak megnehezíti de nem eléggé.

Nekem 17 karakter elrejtése több mint 3 órámba telt, visszafejteni sokkal-sokkal több és nagyon higgadtnak kell hozzá lenni...
De ha egyszer csak megjelenik a karakter, majd a következő... Esetleg lekapcsolt kijelzőre kellene elküldeni a karaktereket majd kiküldeni egy kijelző bekapcs parancsot.
(#) Hp41C válasza Attila86 hozzászólására (») Jan 18, 2012 /
 
Miért kell hozzá debugger? Betöltöm a fejlesztőbe, a kapcsolási rajzról a fejlesztő logikai analizátorába felveszen az LCD jeleit. Még be sem kell kapcsolnom a tápját... Az alatt az n óra alatt egy másik project készülhetne - kódvédett kontrollerrel...
(#) Attila86 válasza Hp41C hozzászólására (») Jan 18, 2012 /
 
Jó végülis mindegy, az eredmény, a helyzet és a problémám ugyan az.
Nyugi, készül más projekt is gőzerővel, csak ez most kicsit bosszant. Tudtam eddig is hogy átírható, csak úgy gondoltam hogy áááá... úgyse értenek ehhez sokan meg biztos tiszteletben tartják több hónapi munkámat.
(#) Attila86 válasza Hp41C hozzászólására (») Jan 18, 2012 /
 
Nem akarok örökké kódvédett PIC-eket árulni mert nem akarok nyerészkedni az egyébként is vékony pénztárcájú hobbista kollégákon. Meg persze szeretném hogy a munkám gyümölcsét minél többen élvezhessék és ha ez nem 500Ft-nyira és egy átutalásnyira van hanem csak egy linkre való kattintásnyira akkor erre sokkal nagyobb az esély.
Nulla Forintért egyébként sem fogok kétnaponta Chipcadbe meg postára szaladgálni hogy az 1000Ft-os PIC-et 1000Ft-ért adjam tovább felprogramozva csak azért hogy a hex ne kerüljök ki a kezeim közül. No meg hex nélkül nem tehetném fel az áramköröket ide a HE-re.

De nem tudom, lehet aztán hogy marad a kódvédett PIC az ez után következő áramköreimben. Abba tuti nem nyúl bele senki.
(#) trudnai válasza Attila86 hozzászólására (») Jan 18, 2012 /
 
Idézet:
„Nekem 17 karakter elrejtése több mint 3 órámba telt, visszafejteni sokkal-sokkal több és nagyon higgadtnak kell hozzá lenni...”


Nem ketelkedem ebben, de az koztudott, hogy nemely jatek szoftver fejleszto (sot uzleti szoftver fejlesztok is) dollar milliokat olnek abba, hogy levodjek a termekeiket -- a hackerek meg nehany ora alatt feltorik azokat. Ha valaki tudja hogyan kell ilyesmit csinalni akkor az ellen nem nagyon lehet mit csinalni. Az nyilvan valo, hogy az egyugyu HEX masolgatokkal szemben a megoldasod jo lesz.
(#) Attila86 válasza trudnai hozzászólására (») Jan 18, 2012 /
 
Ezt még OFF-ba írom aztán tényleg vége:
Persze, igazad van. Aki nálamnál kevesebb vagy hasonló hobbista "mértékű" programozói tudással rendelkezik, annak tuti hogy nagyon komoly fejfájást okoz a megfejtése és ha sikerül is, az jó pár napba telik. Nekem csak ennyi a célom. Hiszen aki vérprofi, az inkább fogja és azt amit én 9 hónapig programoztam assembly-ben, ő újraírja a nulláról C-ben pár nap alatt. Szóval a kínos kódrészek védelmét csak annyira akarom megerősíteni hogy a megfejtésének ideje annyi legyen mint a teljes program újraírása.
(#) szitko válasza Attila86 hozzászólására (») Jan 18, 2012 /
 
Elég szomorú, hogy itt tartunk, hogy egyes emberek nem tudják megbecsülni mások szellemi munkáját. Ha valaki nem tudja elviselni az "1-2 perces logót", az meg sem érdemli a programot, de akkor meg mi értelme közreadni? Sajnos ez a 22-es csapdája.
(#) dinokal válasza szitko hozzászólására (») Jan 18, 2012 /
 
Szia! Nem a logoval van baj. Ha kihagyják egye fene. Az a baj, hogy itt a He-n is volt olyan program, amit valaki a sajátjaként mutatott be, aztán kiderült a turpisság. A kódba a saját adatait írta, átírva a fejlesztőét. Na ez a piszokság! Meg más szabad kódú programját saját név alatt pénzért árulni beégetve. Megértem Attilát.
(#) Attila86 válasza dinokal hozzászólására (») Jan 18, 2012 /
 
Basszus... nekem eddig csak a nyákjaimat árulták (erről tudok). Lehet hogy a továbbiakban tényleg inkább maradt a kódvédett, pénzért árult PIC.
(#) trudnai válasza Attila86 hozzászólására (») Jan 18, 2012 /
 
Igen, a Szilva fele PicKit2 klont is arulta valaki a Vateran penzert, es meg csak meg sem emlitette ki tervezte...
(#) lidi válasza Attila86 hozzászólására (») Jan 18, 2012 /
 
Igen erős dillemma ez, hogy vajon kompenzálja-e az a tudat hogy adtál valamit a közösségnek, azt hogy valaki meg lenyúlja a munkádat.

Amúgy ha csak a neved lett volna benne a programban, az nem zavart volna senkit szerintem. Viszont a hittérítés az már más, az lehet zavaró.

Több kompromiszzum is létezhet itt, pl adhatod a felprogizott kontrollert üres árában, vagy nem sokkal drágábban, vagy valami szolídabb bejelentkező kép, ami kevésbé bosszantja a tulajt is megoldás lehet.
(#) potyo válasza lidi hozzászólására (») Jan 18, 2012 /
 
Na mostmár kíváncsi lettem, mi volt ez a hittérítés?
(#) Hp41C válasza Attila86 hozzászólására (») Jan 18, 2012 /
 
Hála a Gooooogle fordítónak, egyre többen olvassák a "Nagy Vilából" a magyar nyelvű fórumokat. Saját, ide feltöltött programjaimról kérdeztek már Amerikából és Angliából is.
(#) trudnai válasza lidi hozzászólására (») Jan 18, 2012 /
 
Idézet:
„Több kompromiszzum is létezhet itt, pl adhatod a felprogizott kontrollert üres árában, vagy nem sokkal drágábban, vagy valami szolídabb bejelentkező kép, ami kevésbé bosszantja a tulajt is megoldás lehet.”


Ha jol ertem a baj nem azzal van, hogy egy hobbysta otthon sajat maganak lecsereli a szoveget vagy kigyomlalja a bejelentkezo kepet. Hanem azzal, ha valaki ezt sajatjakent kezdi el arusitani!

Szerintem megoldas lehet a megfelelo szoftver licensz (GPL vagy Apache stb) amivel jogilag levedheto, hogy az eredeti szerzo nevet megvaltoztathassak illetve hogy zart kodu programkent aruljak penzert azt amit ingyen kellene nyilt forraskodban. Ha ezt megserti az illeto akkor beperelheto es ugy mar nem biztos, hogy megeri a kockazat...
Következő: »»   1047 / 1320
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem