Author Topic: Начин на декодирање на авторадио касетофон или цд (тут.)  (Read 4735 times)

Offline SaleSk

  • Стручњак
  • ***
  • Posts: 434
  • Gender: Male
Како што кажува и самиот наслов.
На кратко ке прикажам еден од начините за декодирање на фабричко радио касетофонче од гамата на Пежо.
Имено станува збор за радиокасетофон на "Blaupunkt Peugeot T1 low", кој се вградува во 206-ка.
За голема среќа кодот на овој тип на радио не може да се искалкулира, а истото е случај и со голем дел од фабричките радија кои имаат кодови...Тоа е позитивно за оние што си ја разбираат работата, бидејќи на еден начин и живеат од таа работа...
На овој тип радио калкулаторор не фаќа, а и она што го дава како резултат е сосема погрешно :)
Така да многу лесно може да го блокирате целокупниот систем и да го направите декодирањето уште покомплексно и поскапо...Подобро за оној кој што треба да земе во таков случај, а полошо за оној што треба да си брцне во џебот...  ;D Него да не го тупам, еве како изгледа радиото:



Значи ништо специјално, класика на радиокасетофон од Блаупункт со можност за надоградба со ЦД шаржер...



Првата постапка е проверка на комплетната електроника и лоцирање на местото каде се наоѓа информацијата за кодот...На некој РК таа информација се наоѓа на неколку места, односно MCU+ eeprom, на некој е само во MCU-то, кај некој е само во eeprom-от...Таков е случајот со ова радио, односно информацијата за кодот е содржана само во еепромот. За таа цел тој треба внимателно да се извади, да се стави на ПЦ со цел да се исчита информацијата, за да потоа да може да се исчита и кодот.



За полесно вадење се премачкуваат контактите со флукс, народски кажано течен калафониум.



По вадењето на еепромот, се пристапува кон чистење на плочата со "десолдеринг" жица, која има улога да го собере вишокот од калај, а потоа плочата фино лепо а се исчисти од секаков вид на нечистотија, калафониум итн.





Така исчистената плоча ни е спремна за враќање на еепромот на своето место одкако ке се исчита фајлот со податоци од него...
Следен чекор е поставување на еепромот на лежиште за исчитување, кое јас во целиот хаос никако не можев да го најдам, па морав да импровизирам со жици, а притоа и да ги доправам ситните преправки на програматорот.  ;D За среќа успеав во тоа без никаков проблем, па целиот хаос изгледаше овака:



За да после го вклучам програмот и се да тргне како што треба. Тие што работат со оваква проблематика сигурно ке го препознаат програматорот кој може да се најде по интернет и да се изработи по потреба. Комплетно со цела документација, шеми и упатства...Не е воопшто сложен и комплициран, па така да кој има малку желба и знаење, може да си го направи...



Исчитаниот фајл имаме можност да го снимиме во неколку различни формати. Во случајов јас ке одберам екстензијата да биде *.bin како би можел да извршам исчитување на кодот од дадената и дефинирана локација на самиот фајл.



Исчитаниот код фино лепо си го запишуваме на ливче хартија. :) И повторно се враќаме на хардверот, односно на лемење на еепромот назад на плочата... Плочата фино се чисти за да не останат траги од калафониум и прљавштини, нормално и за да изгледа културно и пристојно.  Исто како што било и пред заХфатот :)





Овакво задоволство по мајстори би ве чинело од прилике колку што имам инфо за цените од 5 евра па нагоре...Конкретниов случај околу 500 денари вообичаено.
Доколку се потрудите сами да си го изработите уредот и се ова сами да го направите, ке ве чини дури 200 денари поефтино, а + и ке си научите нешто... :)

Се надевам дека се уште има ентузијасти кои ги интересираат овакви работи, а не само калкулирање на кодови со готови програми...Најчесто во пракса, кога се декодира некое радио, се менува постоечкиот код со друг код, нормално за заштита од пиратерија, такозвана во случајов :)))

За повеќе инфо, слободно прашајте :)
Душевно болниот човек никогаш не напаѓа без причина. По тоа се разликува од нормалните луѓе.
Keyboard not found...Press F1 to continue...

Offline batka

  • Топ Експерт
  • *****
  • Posts: 9425
Добар туторијал Сале.Порано го работевме ова- уште кога еепромот беше 27Схх ;D,ама добро би било да ја ставиш и шемата на програматорот и програмчето за читање,па да биде комплет.Некаде го имав тоа ,ама сум малку во *реконструкција* на серверите ,па ми е малку збркан пристапот до шеми и програми кои ги имам складирано 8) Јас имав еден програматор со МАХ 232 ,а ако имаш нешто поново да видиме. ;D

Offline SaleSk

  • Стручњак
  • ***
  • Posts: 434
  • Gender: Male
Ова е најпростиот што постои  ;D
Понипрог, да не го линкувам го има на гугл од старт со комплетна шема и објаснување  ;)
Душевно болниот човек никогаш не напаѓа без причина. По тоа се разликува од нормалните луѓе.
Keyboard not found...Press F1 to continue...

Offline GigaWatt

  • Администратор
  • Топ Експерт
  • *****
  • Posts: 12890
  • Gender: Male
  • Не фалширам
Одличен туториал, само што, кога веќе си ги правел сликите од мониторот, си можел да тераш со Screen Shot-ови ;D. Нема везе, во секој случај, одличен туториал ;).

Инаку, може софтверот (програмот, кодот) и да се patch-ува, никогаш да не бара код или кој код и да се внесе (било кој) да биде „точен“ ;). Само за ова, ќе ви треба debugger, disassembler, симулатор, познавање на асемблерскиот јазик на MCU-то (документација за ова може да се најде online, за скоро било кој MCU), така да, малку покомплицирано е ова ;).
It's not schizophrenia... It's just a voice in my head...

"This is really a generic concept about human thinking - when faced with large tasks we're naturally inclined to try to break them down into a bunch of smaller tasks that together make up the whole."

"Newton's third law: The only way humans have ever figured out of getting somewhere is to leave something behind."

Offline batka

  • Топ Експерт
  • *****
  • Posts: 9425
Го има веќе сето тоа направено,сум го сретнал и сум работел со него,ама ова одамна не ми затребало ;D ;D Имаше готов програм со впишани четири единици,мислам дека го имам некаде ;D ;D

Offline bicikle

  • Топ Експерт
  • *****
  • Posts: 4080
  • Gender: Male
Сето тоа е во ред, да знаете да декодирате, како наука, меѓутоа, кодот е ставен од безбедносни причини, па ако нема кој да го декодира радиото, никој не би го украл. Јас се извинувам, не велам дека тие што се занимаваат со декодирање треба да работат, ама може да побараат некоја потврда дека радиото е од оној што бара да го декодира. Ова го велам бидејќи ми имаат украдено 2 радија за во кола, не дека нешто ми грешиле тие што декодираат...

Offline GigaWatt

  • Администратор
  • Топ Експерт
  • *****
  • Posts: 12890
  • Gender: Male
  • Не фалширам
Сето тоа е во ред, да знаете да декодирате, како наука, меѓутоа, кодот е ставен од безбедносни причини, па ако нема кој да го декодира радиото, никој не би го украл. Јас се извинувам, не велам дека тие што се занимаваат со декодирање треба да работат, ама може да побараат некоја потврда дека радиото е од оној што бара да го декодира. Ова го велам бидејќи ми имаат украдено 2 радија за во кола, не дека нешто ми грешиле тие што декодираат...

Тоа е веќе сосема друга филозофско-морална тематика. Не спаѓа во рамките на оваа тема ;). Доменот на темата е околу самото декодирање.
It's not schizophrenia... It's just a voice in my head...

"This is really a generic concept about human thinking - when faced with large tasks we're naturally inclined to try to break them down into a bunch of smaller tasks that together make up the whole."

"Newton's third law: The only way humans have ever figured out of getting somewhere is to leave something behind."

Offline SaleSk

  • Стручњак
  • ***
  • Posts: 434
  • Gender: Male
Одг: Начин на декодирање на авторадио касетофон или цд (тут.)
« Reply #7 on 19.09.2012, Wednesday, 08:20:35 (Edited 19.09.2012, Wednesday, 08:22:34) »
Точно. Инаку морав моето сопствено радио да го декодирам бидејќи ми цркна акумулаторот, а никаде ја немаше картичката со кодот  ;D
Можев и со скриншотови, ама апаратот ми беше при рака и све одеднаш штракав  ;D
Одамна не сум го правел ова со декодирањево па ми беше интересно да го поставам...
А и она што го спомна со тоа да нема код, да се нули или било кој друг број е интересно па може да се развие и некоја дискусија на таа тема :))

Сето тоа е во ред, да знаете да декодирате, како наука

хахаха...Ме изнасмеа ова, пошто ме присети на еден филм - Ране, во кој Чика Куре зборува за науката па вели вака: Карање је наука..... (а не декодирање на касетофон да се надоврзам) :)))
Душевно болниот човек никогаш не напаѓа без причина. По тоа се разликува од нормалните луѓе.
Keyboard not found...Press F1 to continue...

Offline bicikle

  • Топ Експерт
  • *****
  • Posts: 4080
  • Gender: Male
Закон филм ;D (извинете за оф топик, не можев да останам рамнодушен на "rane")

Offline Devil

  • Администратор
  • Топ Експерт
  • *****
  • Posts: 5329
  • Gender: Male
    • Македонски форум за електроника
На почетокот најгоре спомна дека кодот може да е во MCU- то, доколку бил таму дали има начин да се прочита ?
поточно, дали досега си сретнал такво радио и дали си успеал да го исчиташ и да видиш што код е и слично ?
Jас не сум себичен, помагам. Помагај и ти !

Секоја куќа си има свои куќни правила.Почитувај ги куќните правила!

Offline GigaWatt

  • Администратор
  • Топ Експерт
  • *****
  • Posts: 12890
  • Gender: Male
  • Не фалширам
Одг: Начин на декодирање на авторадио касетофон или цд (тут.)
« Reply #10 on 19.09.2012, Wednesday, 17:47:51 (Edited 19.09.2012, Wednesday, 18:09:37) »
А и она што го спомна со тоа да нема код, да се нули или било кој друг број е интересно па може да се развие и некоја дискусија на таа тема :))

Па, се разбира дека може ;). Причината зошто за некои модели нема калкулатор е тоа што кодот им е „хардверски запишан“ (imprinted) во EEPROM-от или MCU-то и кога ќе се внесе кодот преку тастатурата на радиото, само се споредува внесениот код со оној кој е во меморијата и радиото одлучува дали се пушти или не ;). А кодот, можно е и да е некоја секвенца на бројки кои се калкулираат со некој калкулатор, но од страна на самиот производител (на пример, се калкулираат на обичен PC, цела серија, и само се вметнуваат во EEPROM мемориите, а во исто време, производителот има база на податоци во која е запишано кој barcode на која серија и модел кој код го користи). Во вакви ситуации, не може да се напраи калкулатор за „таа и таа“ серија или модел на радио-касетофон бидејќи не ни достапен алгоритмот по кој се пресметува кодот, тој го има само производителот, а не е вметнат во самиот радио-касетофон. А инаку, има модели и кои го калкулираат својот код врз база на серијата (barcode, дел од barcode или нешто трето), па затоа може за нив да се направи калкулатор.

На пример, има модели во кои во EEPROM меморијата (или во MCU-то, ако има EEPROM меморија самото MCU) е зачуван само barcode-от или дел од barcode-от и има и алгоритам за калкулација напишано во истиот EEPROM, така да, они само проверуваат дали со внесување на кодот преку тастатурата, ќе се добие оригиналниот barcode (или, како што спомнав, дел од него) кој е веќе ставен во меморијата. Кај овие радио касетофони, генерално земено, има три пристапи на решавање на проблемот:

1) Може да го исчитате алгоритмот од EEPROM меморијата или MCU-от, заедно со уште еден куп други податоци (значи, во принцип, ќе ви треба debuger или disassembler за тој тип на MCU, за да знаете каде во кодот да го барате она што ви треба ;)) и ќе треба да го reverse-увате алгоритмот, односно да видите како се пресметува кодот за отклучување на радиото врз база на barcode-от ;). Алгоритмите за пресметка не се прекомплицирани (помножи го barcode-от со некоја константа, потоа одземи или додади на тој број некоја константа, направи XOR на ова со некоја друга константа или некоја претходна пресметка, земи ја првата, третата, петтата и седмата цифра од тој број и го добиваш кодот за отклучување... или нешто слично на ова ;)), но сепак, треба да се најдат ;). Во таков случај, можете да направите калкулатор за „тој и тој“ радио-касетофон ;).

2) Да го „натерате“ радиото да „мисли“ дека сте му го погодиле кодот ;). Не мора да му правите reversing на алгоритмот. Програмот се „симулиура“ дека работи во некој debugger, или (уште поедоставно) гледате (преку алгоритмот) што им „прави“ алгоритмот на цифрите од кодот откако ќе се внесат ;). Повторно, ова бара малку reversing, но не мора да знаете како алгоритмот работи, доволно е само да видите што им се случува на цифрите ;). Ако веќе го симулирате програмот, само ќе видите кој код програмот го споредува со barcode-от и ќе ги смените вредностите на barcode-от (во самиот EEPROM) да бидат токму оние кои ги искалкулирал програмот ;). На пример, внесувате 1234 на дисплејот (виртуелно е се ова, најверојатно, во самиот симулатор, ќе треба да го најдете местото во кодот во кој се впишуваат овие четири цифри и да ги внесете „мануелно“, односно, да ги внесете преку некој hex едитор во EEPROM-от), да видите што ќе искалкулира пограмата со stepping низ debugger-от, и да го смените кодот кој сте го добиле со оној со кој се споредува (бидејќи во овој случај, искалкулираниот код нема да биде ист со, на пример, barcode-от со кој се споредува), односно, да испадне на крајот дека „сте го добиле правилниот код“, односно програмот да не го бара веќе кодот ;).

3) Да го преправите кодот во EEPROM-от воопшто да не бара код за отклучување ;). Ова се вика patching и се прави и кај обични софтвери за PC (попознато како crack ;D). Значи, што всушност прави кодот (програмата во EEPROM-от, бидејќи и тоа е програма, само е наменета за друг процесор/MCU, не за Intel-ов ;D, и е многу поедноставна од програмите наменети за PC), во некој дел од програмот, софтверот проверува некој регистер во кој е запишано дали радиото се пушта за прв пат (бидејќи, ако снема струја, односно ако го исклучите радиото од акумулатор, тоа е за него „прв пат“, целата меморија е избришана, clock, date (ако има), па треба се да се подесува од почеток), па при иницијализација на програмата (за „прв пат“) истата проверува некаде (најверојатно прво овие податоци се исчитуваат од некој дел во dump-от, па се запишуваат во некој регистер, привремено, колку за проверка, а можно е проверката да се прави и директно со некоја мемориска адреса во dump-от) дали „е прво пуштање“. Ако радиото се пушта „за прв пат“, препрати ја програмата до дел во кој треба да се внесе кодот, па повторно врати се назад кон извршување на програмата (ова е најчеста „структура“, иако и оваа „структура“ варира од модел до модел). Пред да „рпине“ програмата до некој друг дел од кодот, се врши проверката „дали се пуштам за прв пат“ (споредба, најчесто со некоја константа) и ако оваа споредба е „точна“ (некој flag од регистрите во MCU-то/процесорот ќе ја смени својата вредност), „рипни“ (ова се изведува со асемблерски команди наменети за „тоа и тоа“ MCU) до делот од кодот на програмата во кој се бара внесување на „кодот“. Ова „рипање“ (оваа команда) едноставно може да се пополни со код за „не извршувај никакви операции“ (под Intel-овите процесори, врендоста која означува No Operation, односно NOP, е 90, односно 0x90 хексадецимално, но за различни структури, различен е и кодот ;)), и програмата едноставно ќе си продолжи со нејзиното извршување, односно, пуштање на радиото во употреба ;). Можни се и варијации на оваа структура. На пример, програмата никаде не рипа, едноставно си извршува инструкција по инструкција при првото пуштање и „нормално“ си го извршува и делот од кодот во кој се бара „внеси код“. Во тој случај, треба да го најдете делот од кодот на прграмата во кој се врши проверка на внесениот код и истиот се споредува со некој вантершно внесен, некој пресметан според некој алгоритам или нешто слично, и да ја препратите програмата да „рипне“, од местото во кое се бара внесување на кодот, до некое место (најчесто, наредната инструкција) по кое се извршува верификацијата на кодот ;). На овој начин, делот од кодот во кој се врши верификација на кодот сте го рипнале и програмата си продолжува со нејзиното извршување, односно со пуштањето на радиото во употреба ;).

Знам дека се ова изгледа многу чудно... „хмммм... како може се ова да се случува... мене радиото ми се пушта веднаш, не му треба ни секунда да се пушти“. Епа, во таа една секунда (или половина, колку и да е), може да се извршат милиони инструкции, а на алгоритмот за проверка на код, да не му требаат ни неколку милисекунди за да се изврши. „Темпото“ со кое работат програмите ние не можеме да го видиме ;). Но, за среќа, постојат алатки со кои можеме „да го успориме темпото“ на извршување на програмата на темпо кое нас ни одговара, за да можеме полесно да видиме „што точно се случува тука“ ;).
It's not schizophrenia... It's just a voice in my head...

"This is really a generic concept about human thinking - when faced with large tasks we're naturally inclined to try to break them down into a bunch of smaller tasks that together make up the whole."

"Newton's third law: The only way humans have ever figured out of getting somewhere is to leave something behind."

Offline SaleSk

  • Стручњак
  • ***
  • Posts: 434
  • Gender: Male
На почетокот најгоре спомна дека кодот може да е во MCU- то, доколку бил таму дали има начин да се прочита ?
поточно, дали досега си сретнал такво радио и дали си успеал да го исчиташ и да видиш што код е и слично ?

Да...Има еден куп радија на кои кодот им е во МЦУ-то...Најчесто тие знаат да се Блаупункт или Грундиг..На времето додека го имав сервисот имав и таква опција, да исчитувам од моторолите, најчесто таму беа информациите, но одкако го затворив, програматорот остана кај другиот дечко и така. Сеа го имам само понито...

@Giga
Секоја чест :)
Душевно болниот човек никогаш не напаѓа без причина. По тоа се разликува од нормалните луѓе.
Keyboard not found...Press F1 to continue...

Offline GigaWatt

  • Администратор
  • Топ Експерт
  • *****
  • Posts: 12890
  • Gender: Male
  • Не фалширам
@Giga
Секоја чест :)

Се што имам пишано погоре, во претходниот пост, е бааги голема зезанција ;D. Ама па, може многу работи да се научат од тоа ;). Некој ќе рече „абе не се исплати“... финансиски, да, ама па не би го правел ова па баш за секого ;D.
It's not schizophrenia... It's just a voice in my head...

"This is really a generic concept about human thinking - when faced with large tasks we're naturally inclined to try to break them down into a bunch of smaller tasks that together make up the whole."

"Newton's third law: The only way humans have ever figured out of getting somewhere is to leave something behind."

Offline SaleSk

  • Стручњак
  • ***
  • Posts: 434
  • Gender: Male
Ама па, може многу работи да се научат од тоа ;). Некој ќе рече „абе не се исплати“... финансиски, да, ама па не би го правел ова па баш за секого ;D.

Па тоа е многу изгубено време, практично за ич пари...Ова е мое радио, поточно на женами, па и затоа си поиграв, а и споделив на форумов...Ми се виде интересно...
А и во право си...Некогаш работите не се прават за секого..
:)
Или па се прават од чиста љубопитност :))
Душевно болниот човек никогаш не напаѓа без причина. По тоа се разликува од нормалните луѓе.
Keyboard not found...Press F1 to continue...

Offline GigaWatt

  • Администратор
  • Топ Експерт
  • *****
  • Posts: 12890
  • Gender: Male
  • Не фалширам
Па тоа е многу изгубено време, практично за ич пари...Ова е мое радио, поточно на женами, па и затоа си поиграв, а и споделив на форумов...Ми се виде интересно...
А и во право си...Некогаш работите не се прават за секого..
:)
Или па се прават од чиста љубопитност :))

Да да, се разбира ;). Можеби и би го направил за „било кого“, ама само првиот пат ;D, како што рече, од чиста љубопитност ;).

Убаво што си го споделил ;). Сигурно ќе му се најде на некого ;).
It's not schizophrenia... It's just a voice in my head...

"This is really a generic concept about human thinking - when faced with large tasks we're naturally inclined to try to break them down into a bunch of smaller tasks that together make up the whole."

"Newton's third law: The only way humans have ever figured out of getting somewhere is to leave something behind."