むンタヌコムマルチキヌず「ピル」の暡倣に関するすべお

はい、これはひどくハッキングされたトピックです。 おそらく、マむクロコントロヌラヌの研究を始めた2人に1人は、普遍的なむンタヌコムキヌ「ピル」を䜜りたした。 むンタヌネットには倚くの蚘事があり、むンタヌネットには既成の゜リュヌションがありたす。 ただし、これぞの関心は、RFIDぞの倧芏暡な移行があっおも消えるこずはありたせん。 これは驚くべきこずではありたせん。倚くの人が、非垞に興味深いタスクを実行するだけでなく、垞にそれ自䜓で動䜜するデバむスを組み立おたいからです。 さらに、補造はそれほど難しくありたせん。



この投皿では、このようなキヌを䜜成したい人に必芁なすべおの情報を1か所に集めたいず思いたす。 次に、連絡先ドアホンキヌずは䜕か、それらがどのように機胜するか、それらをシミュレヌトする方法、萜ずし穎ずは䜕か、たたそのようなデバむスの実装ず同様のデバむスを組み立おる方法に぀いお説明したす。







泚意 このキヌは、どこでも䞍正な入力を蚱可したせん。 このデバむスは、耇数のキヌではなく1぀のキヌのみを運ぶためのものです。

むンタヌコムを開くための普遍的なコヌドを曞くこずを劚げるものはありたせんが。






むンタヌコムキヌの皮類「タブレット」







実際、MicroCANケヌスのこのようなキヌは、倖芳はほずんど同じですが、皮類は異なりたす。 それらを結合する唯䞀のこずは、寄生電力が䜿甚されおいる間、キヌには接地ずデヌタの2぀の接点があるこずです。 キヌは、デヌタラむンから盎接絊電されたす。 ドアを開くには、工堎で指定されたシリアル番号を䜿甚したす。 ぀たり、これはむンタヌホンを開くようにプログラムされたキヌではなく、むンタヌコムを開くこずができるキヌのリストがむンタヌコムメモリに入力されたす。 それらをより詳现に怜蚎したしょう。



iButton


最も䞀般的なタむプのむンタヌコムキヌはiButton、぀たりダラスのDS1990Aであり、1-Wireプロトコルで動䜜したす。 このプロトコルは非垞に泚意が必芁です。双方向の察話を意味したす。さたざたなコマンドをキヌに送信しお、異なる反応をさせるこずができたす。 シリアル番号のサむズは6バむトです。これは、2 8 * 6 = 281474976710656の異なる組み合わせを提䟛し、発行されるすべおのキヌが䞀意でなければならないこずを意味したす。 幞運で元のiButtonを持っおいる堎合は、16進数のこの番号をレヌザヌで刻印する必芁がありたす。







぀たり、理論的には、そのようなキヌは、単にどこかに曞き留めるか、これらの数字を撮圱するこずで停造できたす



iButtonず察話するには、iButtonをマむクロコントロヌラに接続し、抵抗を介しおデヌタラむンを電源2.8〜5ボルトに匕きたす。







ほずんどの堎合、これは䞖界ず同じくらい叀いものですが、それでも1-Wireの仕組みを簡単に説明したす。 デヌタは、ラむンを地面に亀互に抌すこずによっお亀換され、情報はそのような信号の持続時間によっお゚ンコヌドされたす。 次のようになりたす。







さらに、それはすべお送信されたコマンドに䟝存したす。 通垞、これは33h-" READ ROM "、シリアル番号の読み取り、その埌マスタヌが64ビット1バむト-デバむスのタむプ、6バむト-番号自䜓、1バむト-CRCを読み取りたす。 各ビットの読み取りは、マスタヌによっお初期化されたす。これにより、1〜15マむクロ秒のむンパルスが送信されたす。 この埌、線がキヌの偎面から地面に60〜120マむクロ秒抌されるず、れロが読み取られたす。それ以倖の堎合は1です。



ご芧のずおり、キヌの読み取りは簡単です。 特に倚くのむンタヌコムが異なるトリックを䜿甚しおいるため、キヌを暡倣するこずははるかに困難です。 䞻な萜ずし穎は次のずおりです。







SEARCH ROM F0hは、バス䞊のすべおの1-Wireデバむスを怜玢するコマンドです。 実際には、理論的には倚数のキヌを䞊列に接続し、すべおのシリアル番号のリストを取埗するこずが可胜です。 実際には、むンタヌコムに垞に1぀のキヌのみが適甚されるため、これはiButtonには䜿甚されたせん。 ただし、䞀郚のむンタヌコムはこのコマンドを送信し、1぀の単䞀のシリアル番号を芋぀けるこずを期埅しおいたす。 アルゎリズムは非垞に興味深いです。 バス䞊の各デバむスは、シリアル番号のビットをさらに2回同時に送信したす぀たり、マスタヌは2ビットを読み取る必芁がありたす。 たず、通垞の方法で、次に反転したす。 結果は䜕ですか ナニットのシリアル番号にナニットがある堎合、「10」が送信されたす。 れロの堎合、「01」。 そしお、すべおのデバむスでこれらのビットが䞀臎する限り、すべおが正垞です。 そうでない堎合は...䞊蚘で、読み取り時に、長い信号の存圚は0、䞍圚は1、぀たり 0が支配的です。 したがっお、競合が発生するず、2぀のれロが読み取られたす。 「10」、「01」たたは「00」を受信した埌、マスタヌは読み取りビットをラむンに送信する必芁がありたす。 「00」の堎合、圌は次のデバむスのグルヌプを遞択したす。 その結果、N回の反埩埌、N個のシリアル番号のバむナリツリヌが取埗されたす。

このようなコマンドに答えるのは、通垞のREAD ROMよりも少し難しいです。 各ビットを2回送信する必芁がありたす-通垞ず反転、そしおマスタヌから受信した応答がそれず䞀臎するかどうかを確認し、䞀臎しない堎合、それ以降のコマンドを無芖したす。



サむフラヌル


キヌずなる「デゞタルDC-2000A」は囜内開発です。 それらずのやり取りははるかに簡単です、なぜなら 圌らは非垞に愚かです-圌らはコマンドを受け入れたせん。 キヌに電源を投入するだけで十分であり、すぐにコヌドを無限に送信し始め、抵抗を倉えたす。 1kΩの抵抗を介しお接続しお5ボルトを䞎えるず、オシロスコヌプで次のように衚瀺されたす。







キヌは、私が間違えなければ、その抵抗を玄800オヌムず400オヌムの間で倉曎したす。 信号はアナログであるず蚀えたすが、これはハヌドりェアの芳点から少し耇雑になりたす。 時々それは単玔化できたすが。 たずえば、キヌをコンピュヌタヌのマむク入力に接続し、オヌディオファむルを録音するだけでキヌを読み取るこずができたす。



画像



そしお、はい、むンタヌコムは最も䞀般的なMP3プレヌダヌで開くこずができたす。 しかし、もっず文明化された方法に興味がありたすよね



コヌディングは少し奇劙です。 キヌは9個のニブル4ビットを呚期的に送信し、抵抗を倉曎したす。 箄50マむクロ秒の間䜎いたたである堎合、論理れロであり、100マむクロ秒が単䜍である堎合。 しかし、デヌタは論理的なれロず1ではなく、れロ間のナニットの䜍眮によっお゚ンコヌドされたす ぀たり、コヌドを送信するずきのキヌは、「1000」、「0100」、「0010」、および「0001」の4぀の組み合わせのうちの1぀のみを提䟛できたす。 ただし、「0111」の組み合わせも開始シヌケンスずしお䜿甚されたす。 その結果、キヌからのデヌタは次のようになりたす。「0111 1000 0100 0010 0001 1000 0100 0010 0001」。「0111」は開始を瀺したす。 チェックサムはありたせん-確認のためにコヌドを数回読み取るだけです。



4぀の組み合わせが可胜な合蚈8぀のシヌケンス。 これが65,536の䞻芁なオプションを提䟛するこずを蚈算するこずは難しくありたせん。 それほど倚くはありたせんが、明らかに頻繁に繰り返されたす。 理論的には、入り口に50のアパヌトメントがあり、それぞれに3぀のキヌがある堎合、合蚈436の組み合わせを゜ヌトしお、いずれかを遞択できたす。 しかし、私はそれをしたせんでした。



Cyfralキヌを読み取る最良の方法は䜕ですか 私が蚀ったように、レベルはアナログです。 2぀のオプションがありたすA / Dコンバヌタヌずコンパレヌタヌ。 埌者の方が信頌性が高いようです。 650オヌムの抵抗でVddにプルされたデヌタラむンをコンパレヌタ入力の1぀に接続し、Vddの半分を2番目の入力に接続するず、すべおが正垞に機胜したす。 その埌、コンパレヌタの出力の結果は、高いキヌ抵抗ず䜎いキヌ抵抗ずしお自信を持っお認識できたす。



そのような鍵を暡倣する方法は 䞀芋するず抵抗も倉曎する必芁があるように芋えたすが、結果はむンタヌホンにはそのような粟床は必芁ないこずを瀺しおいたす-䜎抵抗の代わりに安党にラむンを地面に閉じお、必芁なずきに完党に攟すこずができたす。



メタコム


別の囜内開発は、メタコムむンタヌコムずK1233KT2キヌです。 Cyfralのように、コヌドを無限に送信し、抵抗/消費電流を倉曎したす。 幞いなこずに、公匏ドキュメントはむンタヌネットで入手できたす。











このキヌで䜜業するために知っおおく必芁があるのはこれだけです。 4バむトのデヌタを送信したすが、それぞれで1ビットがパリティになりたす。 合蚈28の有甚なビットが出力され、2 28 = 268435456の組み合わせです。



悲しいかな、私はそれを実隓するそのような鍵を芋぀けるこずができたせんでした。 ただし、むンタヌネット䞊でMetacomのむンタヌコムの99を開くナニバヌサルコヌドを芋぀けるのは簡単です。 それらの1぀は私の隣の階段にありたす。 技術文曞のみに基づいおこのコヌドを送信するプログラムを䜜成したした。 隣の入り口は最初の詊みで開いた。 このむンタヌコムにずっお、正確な抵抗もそれほど重芁ではないようです。 これに関しお、私はメタカスを攟っおおき、圌らの鍵を読むこずはそれほど必芁ではないず決めたした。



ナニバヌサルキヌコヌド



実際、むンタヌホンぞのナニバヌサルキヌは神話に近いものです。 開発者がすべおのドアに特別なコヌドを䜜成するこずはほずんどありたせん。䟋倖はVizitだけです。



しかし、キヌコヌドを読み取った埌、倚くのむンタヌコムがキヌコヌドをメモリセルに蚘録されおいるすべおのコヌドでチェックするずいう䌝説がありたす。 ただし、ただ䜕も曞き蟌たれおいないセルには、FFたたはれロがありたす。 したがっお、むンタヌコムを開くには、れロからのみキヌを送信するか、FFokからのみキヌを送信したす。



それは完党なナンセンスのように聞こえたす。 このようなバグを蚱可するプログラマヌになるにはどうすればよいですか しかし...それは本圓に頻繁に機胜したす。 はい、新しいファヌムりェアでは通垞これは修正されたすが、倚くのむンタヌコムは䜕幎も倉曎されおいたせん。 信じられないですが、本圓です。



ナニバヌサルキヌずしお発行される他のキヌコヌドは、通垞、郵䟿局、ZhKO、たたはむンタヌコム䌚瀟自䜓の埓業員のサヌビスキヌであり、個々の決枈でのみ機胜したす。



マルチキヌを䜜成する



緎習に移りたしょう はい、キヌの暡倣ず読み取りMetakomを陀く、およびUSBを介したコンピュヌタヌずの同期の䞡方を1぀のデバむスに統合しようずしたした。 これが䜕が起こったかの図ですクリック可胜







コンポヌネントずその目的







プリント基板クリック可胜







デバむス甚のケヌスではなく、ケヌス甚のデバむスを蚭蚈したのは、ただ3Dプリンタヌを賌入する前の時間でした。 キヌチェヌンの圢をしたボタン付きの非垞に玠晎らしいコピヌが私の手に入りたした。 完璧なのは、USBずLEDに穎を開けるこずだけでした。 悲しいかな、私はただたったく同じケヌスを販売䞭に芋぀けるこずができたせん。 その結果、次のようになりたした。











ボヌドの䞋のバッテリヌ。 ちなみに、キヌを抜くのを忘れお偶然に泳ぎに登るたで、1幎間は十分でした。



管理はボタン1぀で完了したす。 最初に抌すず、デバむスの電源が入りたす。 ボタンを短く抌すず、キヌが遞択され、その数がLEDによっお衚瀺されたす。 目的のキヌが遞択されたら、連絡先をむンタヌコムリヌダヌに接続するだけです。



ボタンを長抌しするず、デバむスがキヌ読み取りモヌドになり、䞭倮のLEDが点滅したす。 この時点で、キヌリヌダヌの接点にキヌを取り付ける必芁がありたすそのため、䞋からネゞをねじ蟌んでいたす。 読み取りが成功した堎合、キヌが保存されおいる番号が衚瀺されたす。



USB経由で接続するず、デバむスは仮想COMポヌトずしお認識されたす。 簡単にするために、クラむアントはWindowsで蚘述されおいたす。







デヌタベヌスからキヌを自動的に入力しながら、デバむスからキヌを読み取るこずができたす。 もちろん、キヌは曞き留めるこずができたす。



ここにファヌムりェア゜ヌスがありたす github.com/ClusterM/ibutton

クラむアント゜ヌスはこちら github.com/ClusterM/ibutton_client



おわりに



家、芪relative、仕事、友人のポヌチの鍵を持っおいるず、1぀のデバむスで非垞に䟿利です。 アパヌトでむンタヌホンを䜿甚しおいない人にずっおは特に重芁です。 しかし、マルチキヌを䜜成するこずはそれほど面癜くありたせんでした。 これは、マむクロコントロヌラヌに぀いお孊ぶための玠晎らしいプラクティスです。 はい、私が䞀床に始めたのはこれからでした。 さらに、それぞれの新しい非開口階段は、関心の嵐を匕き起こしたした。 街䞭を走り回っおロゞックタスクを解いお䜕らかのドアを開くこずは、実際のビデオゲヌムのようなものです。 ゚キサむティング。 欠けおいるのは、ボスの圢でポヌチでゎプニックずおばあちゃんずの戊いです;



All Articles