امنیت همیشه و در همهی اعصار، مقولهی مهم و قابلتوجه ای بوده و همیشه نوع بشر به دنبال امنیت بیشتر، دست به ابداعات و اختراعات گوناگونی زده است. با فراگیر شدن اینترنت و گردش آزاد اطلاعات، امنیت بیشازپیش موردتوجه قرار گرفته و تبدیل به یک مسئلهی حساس و حیاتی شده است. تصور کنید اگر تلگرام دارای یک باگ اساسی باشد و هکرها بتوانند به اطلاعات میلیونها کاربر تلگرام دسترسی پیدا کنند، چه فاجعهای رخ میدهد یا اگر هکرها بتوانند کنترل نیروگاههای یک کشور را در دست بگیرند آن وقت است که فاجعهای در ابعاد ملی و انسانی رقم خواهد خورد (البته واضح است که منظور ما از هکر، هکرهای کلاهسیاه هستند).
شاید برای شما مفید باشد: آموزش ساخت کنترل از راه دور 4 کاناله
در این مقاله، به بررسی امنیت انواع ریموت کنترل خواهیم پرداخت. پس با سیسوگ همراه باشید.
معرفی اجمالی ریموت هاپینگ
وقتی قرار باشد برای درب ورودی منزل یا مغازه، ریموت کنترل نصب کنید، همه ریموتهای هاپینگ را پیشنهاد میدهند و استدلال میکنند که این ریموتها از امنیت بیشتری نسبت به ریموتهای کدفیکس و کدلرن برخوردار هستند. قبلاً در پست ریموت کدلرن و چگونگی دکد بررسی کردیم که ریموتهای کدلرن و یا کد فیکس چطور کار میکنند؛ مثلاً ریموتهای کدلرن دارای یک کد 20 بیتی منحصربهفرد هستند که تکتک ریموتها را از هم تفکیک میکند یا در ریموتهای کدفیکس شما میتوانید با تعیین حالت 8 عدد پایه، کد موردنظر خود را ایجاد کنید.
اما ریموتهای هاپینگ چطور کار میکنند که قادر هستند امنیت بیشتری را تامین کنند. آیا واقعاً ریموتهای هاپینگ دارای امنیت بیشتری هستند؟
متأسفانه با جستجو در وب فارسی جز اینکه ریموتهای هاپینگ دارای امنیت بیشتری هستند چیزی دستگیرتان نمیشود. حتی تولیدکنندگان این نوع ریموت کنترل در داخل کشور نیز مقالهای در خصوص امنیت آنها منتشر نکردهاند که جای تأمل دارد!
چرا این نوع ریموتها امنیت بالاتری دارند؟ سازوکار آنها به چه صورت است که امنیت بیشتری را تأمین میکنند؟ در این مقاله به این سؤالات پاسخ خواهیم داد.
شاید برای شما مفید باشد: ریموت کد لرن
چگونگی هک ریموت کدلرن یا هک دربازکن
ریموتهای کد لرن و کد فیکس هر دو دارای یک شناسهی منحصربهفرد هستند که ریموت شما را از دیگر ریموتها جدا میکند. این شناسهی منحصربهفرد در ریموتهای کدفیکس (PT2262) با تغییر وضعیتِ پایهها، قابلتغییر است (عکس زیر ). این مسئله باعث شده که این نوع ریموتها در دستهای با امنیت پایینتر، حتی نسبت به ریموتهای کدلرن قرار بگیرند.
فرض کنید شما از این مدل ریموت برای دزدگیر ماشین خود استفاده میکنید. اگر سارق بتواند نحوهی اتصال پایهها را متوجه شود (راههای مختلفی برای این مسئله وجود دارد که وارد جزئیات نمیشویم.) با خرید یک ریموت از همین مدل و تغییر پایههای موردنظر مطابق ریموت شما، بهراحتی و بدون دردسر میتواند دزدگیر ماشین شما را کنترل کند. اصلاً فرض کنیم نحوهی اتصال پایهها را نداشته باشد! آی سی PT2262 که در این ریموتها استفاده میشود، از 8 پایه برای آدرسدهی استفاده میکند که در مجموع با توجه به سه حالته بودن هر بیت (متصل به مثبت – متصل به منفی و بدون اتصال) قادر است تقریباً 6500 حالت مختلف را ایجاد کند. اگر دستگاهی بسازیم که حالتهای مختلف را ایجاد کند و هر حالت 3 ثانیه تداوم داشته باشد، بهراحتی در مدتزمان 5 ساعت می تواند کد ریموت موردنظر را پیدا کند.
به نقل از یک آشنا، در زمانهای دور که همه دزدگیرها از این نوع ریموت استفاده میکردند، چنین دستگاهی ساخته و در پارکینگ دانشگاه آژیر تمام ماشینها را به صدا در آورده است!
در گذشته از این نوع ریموت برای درب ساختمانها و مغازهها استفاده میشده که خوشبختانه دیگر استفاده نمیشود.
در مورد ریموتهای کدلرن، مسئله مقداری متفاوت است. کد منحصربهفرد توسط کارخانهی تولیدکننده، در آی سی ریموت قرار میگیرد و کاربر نمیتواند آن را تغییر دهد. همین تغییر کوچک بهخودیخود باعث میشود که امنیت بهمراتب بالاتر برود؛ چرا که افراد نمیتوانند با دستکاری در مدار ریموت، آن را مثل ریموتهای دیگر تغییر دهند. همچنین کد مذکور 20 بیتی شده است که قادر است 1048576 حالت مختلف ایجاد کند.
ولی همچنان راه هک کردن آنها مسدود نشده است. هکرها می توانند پروتکل ارسال ریموت را شبیهسازی کنند و اگر بخواهند از طریق سناریو بالا (سعی و خطا) برای هک ریموت استفاده کنند، مدتزمانی در حدود 36 روز لازم است تا با تست کردن کدهای مختلف به کد موردنظر برسند. این احتمالاً در بدترین حالت است ولی خب باز امکانپذیر است. از طرفی هکر میتواند در شنود سیگنال ارسالی ریموت شما، آن را دکد کند و کد صحیح را بهدست بیاورد! این راه زیاد زمانبر نیست و فقط کافی است هکر در زمان درست در جای درست باشد. این ریموت نیز از امنیت بالایی برخوردار نیست و متأسفانه بخش بزرگی از ریموتهای درب منازل، از این نوع استفاده میکنند.
هک کردن همیشه نیاز به خلاقیت دارد. اینکه بتوانیم راهی که توسط سازنده دیده نشده را پیدا کنیم و با استفاده از آن سیستم را دور بزنیم، علاوه بر دانش کافی در خصوص نحوهی کارکرد و عملکرد سیستم، نیاز به خلاقیت نیز دارد. هکر واقعی انسان خلاقی است و در خصوص امنیت هیچوقت نمیتوان با اطمینان صحبت کرد.
خوشبختانه بیشتر افراد که خود را هکر مینامند هکر واقعی نیستند و از نرمافزارها و ابزارهایی که توسط افراد دیگر ایجاد شدهاند و از راههای کشفشده توسط هکران واقعی استفاده میکنند و به سیستمهای مختلف نفوذ میکنند و خود را هکر مینامند. این توضیحات برای این ارائه شد که بگوییم قطعاً کسی با این توضیحاتِ مختصر هکر نمیشود و قادر به هک سیستمهای کنترلی شما نخواهد بود، مگر اینکه از قبل هکر بوده باشد.
ریموتهای هاپینگ
سؤالی که مطرح میشود، این است که ریموتهای هاپینگ چه قابلیتی دارند که باعث میشود امنیت بیشتری در پروتکل آن وجود داشته باشد؟
قبل از هر اقدامی، برای اینکه بررسیها بر اساس واقعیت باشد، تعدادی ریموت هاپینگ از بازار تهیه کردیم. دو عدد از آنها را باز کردیم و چیپست و مدار آنها را موردبررسی قرار دادیم:
چیپ مورداستفاده در هر دو مدل ریموت، hcs301 بود که تولید شرکت Microchip است. آی سی مذکور داری یک EEPROM داخلی است (در ادامه کاربرد آن را توضیح میدهیم) که قابلیت پروگرام شدن توسط کاربر را دارا است. یکی از ریموتها درگاه مناسبی برای پروگرام شدن دارد (عکس زیر) و دیگری متأسفانه فاقد چنین درگاهی است که واقعاً امیدوارم که چیپ، قبل از استفاده، پروگرام شده باشد.
امنیت در ریموتهای هاپینگ
رولینگ کد یا (آنطور که در بازار شناخته میشود) هاپینگ کد، از الگوریتمی استفاده میکند که در مقابل حملات تکرار (Replay attack) مقاوم است. نوع حملاتی که در موارد قبلی ذکر کردیم از این نوع حمله بودند؛ یعنی یا با شنود و یا با سعی و خطا، تلاش میکردیم کد صحیح را بدست آوریم، ولی این نوع ریموت در مقابل این نوع حملات مقاوم است. اما چطور؟
چیپست HCS301، یک انکدر KeeLoQ میباشد که قابلیت کدگذاری دادههای ارسالی را با استفاده از پروتکل KeeLoQ دارد.
سیستم کدگذاری KeeloQ، از یک کلید 64 بیتی برای رمزگذاری داده استفاده میکند. در واقع پروگرام شدن آی سی به خاطر تنظیم همین کلید است. کاربر میتواند کلید موردنظر خود را برای دادههای ارسالی توسط ریموت تنظیم کند، به صورتی که فقط گیرندهی موردنظر ما که کلید را دارد، قادر به دکد دادههای دریافتی از ریموت باشد. اما این رمزگذاری چطور به بالا رفتن امنیت کمک میکند؟ برای روشن شدن قضیه به عکس زیر دقت کنید:
همانطور که در عکس میبینید، کدهای ارسالی از سمت ریموت، دارای سه بخش مجزا هستند:
- بخش ابتدایی که طبق دیتاشیت 6 بیت است و حاوی 4 بیت وضعیت کلیدهای فشرده است و 2 بیت هم وضعیت ریموت را گزارش میکنند (مثل ضعیف شدن باطری).
- 28 بیت ادامه، سریال ریموت است. این بخشها کدگذاری نشده است و بهراحتی میتوان آنها را شبیهسازی کرد.
- 32 بیت بعد حاوی اطلاعات کدگذاری شده است. این 32 بیت باعث ایجاد تفاوت چشمگیری در امنیت این نوع ریموتها شده است. کدگذاری با استفاده از 64 بیت دادهی ذخیرهشده در EEPROM صورت میگیرد.
همانطور که در عکس فوق مشخص است، دادههای کدگذاری شده، حاوی 16 بیت شمارنده و 10 بیت DISC (که خود شامل بیتهای دیگری است) و 4 بیت هم وضعیت کلیدهای ریموت هستند. اما این دادهها چطور به امنیت کمک خواهند کرد؟
شاید مهمترین بخش وجود شمارنده در دادههای ارسالی از ریموت است. شمارنده با هر بار فشرده شدن کلید، یک واحد اضافه میشود. اگر کلید کدگذاری تنظیم شده باشد، هر گیرندهای که دادهها را دریافت میکند، قادر به رمزگشایی بخش کدگذاری شده نیست و نمیتواند دادههای آن را استخراج کند. برای روشنتر شدن موضوع سعی میکنیم مثال فوق در خصوص ریموتهای کدلرن را با استفاده از این نوع ریموت تشریح کنیم:
فرض کنید یک هکر با دستگاه مناسب مشغول شنود سیگنالهای ارسالی از ریموت شما است و باز فرض کنید کانتر ریموت شما، مقدار 10 را دارد. دادههای ارسالی توسط گیرنده دریافت میشود و دزدگیر غیرفعال میشود. هنگام پیاده شدن، کلید ریموت را برای فعال کردن دزدگیر فشار میدهید، مقدار کانتر 11 میشود، کد ارسال و دزدگیر فعال میشود. هکر برای غیرفعال کردن دزدگیر ماشین، کد اول را دوباره شبیهسازی و ارسال میکند. اگر ماشین شما از تکنولوژی ریموتهای کدلرن و کدفیکس استفاده میکرد ، دزدگیر غیرفعال میشد اما در مورد ریموتهای هاپینگ این اتفاق نمیافتد. ریموت، سیگنال ارسالی هکر را دریافت، قسمت کد شده را دکد و مقدار کانتر را از آن استخراج میکند. بله مقدار آن 10 است. آخرین کدی که دریافت شده 11 بوده، پس مقدار 10 را غیرواقعی شناسایی میکند و به آن اهمیتی نمیدهد. هکر اگر بخواهد دزدگیر را غیرفعال کند باید کدی را ارسال کند که مقدار کانتر آن 12 باشد ولی چنین کاری مقدور نیست؛ چرا که کلید رمزگذاری را ندارد و نمیتواند دادهها را استخراج کند.
این چنین است که این نوع ریموتها در مقابل هک شدن مقاومت بیشتری دارند ولی یادتان باشد: هیچ کاری غیرممکن نیست، حتی غیرممکن! 😉
هشدار جدی
متأسفانه مشاهده شده که برخی از تولیدکنندگان، ریموت کنترل هاپینگ را بدون تعیین کلیدِ کدگذاری مورداستفاده و فروش قرار میدهند که باعث میشود با وجود تکنولوژی بالا، بهسادگی قابل هک شدن باشند و هیچ گونه امنیتی را برای شما تأمین نمیکنند. خرید یک گاوصندوق با تکنولوژی روز دنیا برای محافظت از اسناد کافی نیست. باید درب گاوصندوق را نیز قفل کنید تا کارایی داشته باشد!
ممنون از توضیحاتت
تو بحث ریموت هاپینگ یه هکر روش جالبی داشت ، اول یه جمر فعال میکنه ،
معمولا آدم ها وقتی ریموت کار نکنه دو سه بار پشت هم دکمه رو میزنن و هکر کد هایی آینده به همراه عددشون که قرار بود به گیرنده برسه رو میگیره ، میتونه براساس اون الگوریتم رو پیدا کنه و تمام
ولی تو ایران اکثر ماشین ها ریموت کد فیکس و کد لرن دارن که یه دانشجو الکترونیک با چند تا پروژه گیت هاب
میتونه ابزارش رو بسازه
دقیقاً! 👌😊
نکتهای که گفتید دربارهی استفاده از جمر برای دستکاری ریموتها در سیستمهای هاپینگ کدینگ کاملاً درسته و نشاندهندهی ضعف در برخی سیستمهای امنیتی است.
سلام ضمن تشکر از اطلاعات مفید شما سوالی در خصوص ریموت هاپینگ پیش میاد اون هم اینه که با توجه به کانتر موجود چطور چندین ریموت و حتی تلفن رو به یک دستگاه ارتباط میدن و با اینکه کانتر یکی بالا رفته و کانتر بقیه ثابت بوده باز مشکلی پیش نمیاد
سلام
وبسایت ioelectro برنامه ای جهت پروگرام کردن hcs301 منتشر کرده که واقعا کارآمده تقریبا شبیه برنامه پروگرام خود میکروچیپه
https://github.com/ioelectro/arduino-hcs-programmer
کد پروگرامر
https://github.com/ioelectro/hcs-programmer-soft
برنامه دات نت گرافیکی
ویدیو https://www.aparat.com/v/dLGJP
این پروژه عالیه ولی متن باز نیست
اگر مقدور هست سورس کدی انتشار بدهید که قابلیت های یک گیرنده رو داشته باشه در وبسایت های داخلی فقط سه نفر طراحی کردند و همگی کلوز سورس هستتند
در وبسایت های خارجی هم اصلا پروژه ای وجود ندارد و همه از HCS5xx یا MCS3142 استفاده میکنند و کسی سراغ میکروکنترلر avr stm32 stm8 msp حتی pic16 یا pic18 نمی رود
بنده چند سورس کد که تست کردم رو معرفی میکنم
https://github.com/franksmicro/Arduino/tree/master/libraries/Keeloq
باید #include “WProgram.h” با #include “Arduino.h” جایگزین شود کتابخانه خیلی قدیمی هست
https://github.com/alex-hhh/Arduino_433Mhz
مربوط به hcs200 دریافت خوبی داره ولی نمیدونم چجوری باید کد رمزگشارو تشخیص بدم و استفاده کنم
https://github.com/leech001/HCS301
لطفا در یک پست به طور مفصل توضیح بدهید که چطوری میشه دیکد کرد و در سمت میکروکنترلر ریموت لرن کرد
مشکل الان نبود یک سورس متن باز هست که بشه بر اساس اون پروژه طراحی کرد
ریموت کدلرن امنیت پایینی داره و دیگه نمیشه ازشون حتی برای در پارکینگ استفاده کرد
و کسی هم حاضر نیست یک سورس مثلا تحت پلتفرم آردوینو و نه متمرکز بر روی یک نوع میکرو کنترلر ارایه کنه
لطفا به این نوع آموزش ها و پروژه ها هم گوشه چشمی داشته باشید
سلام دوست عزیز
خقیقتا مدت زیادی است که قصد دارم کدی برای این موضوع بنویسم و منتشر کنم
ولی متاسفانه هنوز فرصت نشده
سلام
عزیز من هم دارم روی ریموت هاپینگ کار میکنم.
شما نوشتی در سایت های داخلی 3 نفر کد رو گذاشتن ولی باز نیست. امکانش هست سایتشون رو معرفی کنی. شاید من بتونم از اونها برای کارم استفاده کنم.
اگر نتیجه داد حتماً برای شما هم میفرستم.
سلام. ممنونم از اطلاعات مفیدتون
چند تا سوال داشتم
واسه طراحی ریموت هاپینگ، واسه قسمت فرستنده و گیرنده از چه نوع IC ای باید استفاده کرد؟ شما غیر از HCS ها، IC دیگه ای سراغ ندارین؟ حتما نیازه که توی گیرنده میکروکنترلر هم داشته باشیم؟
در خصوص این مدل گیرنده ها کار تجاری نکردم متاسفانه
awsoem
سلام یک سوالی که دارم چه راهکاری هست که بتوان در برابر حملات جمینگ مقابله کرد که در برابر این نوع نفوذ مجددا ایمن سازی پیش بینی گردد یا اینکه سیستم هایی با ضریب ایمنی بالاتر که در برابر این تحدید ها مقاوم شده اند را اگر اطلاعاتی دارید ممنون می شوم معرفی کنید
سلام دوست عزیز در مقابل جمینگ که عملا شما کاری نمی توانید انجام بدید ولی میدونم ریموت ها و پروتکل هایی هستند که مقاومت خیلی بیشتری دارند اما الان اسمش رو به خاطر ندارم و میدونم خودتان با گوگل کردن به سادگی بهشون میرسید
سلام،
مطلب مفیدی بود.
آیا این امکان وجود دارد که یک رسیور را با تغییراتی به صورت رسیور اختصاصی تغییر داد به طوری که تنها ریموت های تغییر داده شده را بتوان به آن رسیور متصل کرد؟ تا نتوان ریموت های یدک قابل تهیه در بازار به سادگی به این رسیور متصل نشوند.
سپاس
سلام دوست عزیز
بله این سنارسو قابل اجرا است و در نظر داشته باشید که ریموت های یدک در مورد پروتکل هاپینگ اگر درست پیاده سازی شده باشد زیاد کاربرد ندارند
سلام جناب زئوس،
چطور میتوانم برای انجام این کار مزاحم شما شد؟
سلام دوست عزیز
من خیلی وقته قصد دارم اینو بسازم ولی واقعا وقت انجامش رو ندارم متاسفانه 🙂
سلام وقت بخیر
ممنون از سایت و مطالب خوبتون، در خصوص ریموت های هاپینگ، اینکه ریموت درگاه یا پین پرگرام ندارد دلیلی بر این نمی شود که کدگذاری نشده، به طور مثال اون ریموت بتا به همین صورت هستش ولی مودنم که کد گذاری داره، همچنین اگر گیرنده دستگاه لرنینگ معمولی باشه ممکنه فقط 24 بیت اول رو ذخیره کنه و با ریموت هاپینگ مثل ریموت لرنینگ معمولی برخورد کنه، معمولا دیده شده مشتری ها ریموت رو روی دستگاه معمولی کد میدن و میگن ریموت کد گرفته و مشکل داره… یا بعضی وقتا با ریموت بلوتوثی 24 بیت رو کپی می کنن… همچنین اگر ریموتی که از بازار تهیه کردین بدون هماهنگی شرکت سازنده هستش!! ممکنه پیگرد قانونی داشته باشه!!!! چون بدون اجازه سازنده از تصاویر استفاده کردین
سلام دوست عزیز
این که پروگرام نشدن ربطی به پایه پروگرام داشتن یا نداشتن نداره چون در خیلی از تولیدات چیپ رو قبل از مونتاژ پروگرام میکنند و بعد وارد فرایند مونتاژ میشه
پس من این مساله رو چک کردم و البته برای حفظ حقوق خریداران نام شرکت رو نبردم، چرا که در انتها اونها هستن که با ندانم کاری شرکت های این چنینی دچار هزینه میشن
بله خیلی از تولید کننده ها فقط اسم هاپینگ رو یدک میکشن و از این مساله خیلی هم خوب درامد زایی میکنند متاسفانه
سلام وقت شما هم بخیر
متوجه فقط جمله اخرتون نشدم از کی تا حالا انتشار تصویر یه محصول عام و جنرال خلاف قوانین شده؟
آیا ریموت های هاپینگ را می شود به صورت ریموت به ریموت کد دهی کرد ؟ مثل ریموت های V2 یا Sommer
سلام دوست عزیز
من توی ریموت هایی نمونه ای که تهیه کردم متاسفانه این قابلیت وجود نداشت
سلام و خسته نباشین.ممنون از توضیحاتتون .
ممنون میشم در صورت امکان نحوه دیکد کردن و پروگرام کردن ریموت های هاپینگ را بیان کنین و یا نمونه کدی برای این موضوع قرار بدین
سلام و درود دوست عزیز
مدت زیادی هست که میخوام این کار رو بکنم ولی نشده تا الان
با درود
مقاله بسیار مفید و خوبی بود. یک سوال برایم پیش اومد وقتی که کانتر مثلا عدد ۱۰ را میفرستد سیستم مادر برای سری بعد منتظر عدد ۱۱میباشد که از طرف ریموت ارسال شود حالا سوالم اینه که اگر دگمه ریموت جایی دور از سیستم مادر مثلا توسط بچه ای ۱۰۰ بار فشرده شود حالا عدد ۱۱۱ توسط کانتر ریموت برای سیستم مادر ارسال میشود این خطا چگونه اصلاح میشود ؟؟؟
سلام و درود به دو شکل میشه هندلش کرد
عدد بزرگتر از عدد حال حاضر باشه مورد قبول هست
یا این که عدد بزرگتر باشه و توالی داشته باشه، یعنی بار اول که ۱۰۰ شد صرفا کانترش رو آپدیت کنه و بار بعد که شد ۱۰۱ درب رو باز کنه که فکر میکنم توی بیشتر سیستم ها همون حالت اول عمل میکنه
کاش میگفتین روش لرن کد هاپینک برای گیرنده جه طوری هست ؟
هدف حرفم اینه وقتی شما میگید کلید کدگزاری نداریم نمیتونیم پیدا کنیم و… پس موقع لرن کردن ریموت جدید این کلید و کانتر چگونه در اختیار گیرنده قرار میگیره ؟
پی نوشت اطلاعاتی مبنی بر فشردن همزمان 4 کلید به دست اوردم
Secure Learn
The transmitter is activated through a special
button combination to transmit a stored 60-bit
seed value used to generate the transmitter’s
crypt key. The receiver uses this seed value
to derive the same crypt key and decrypt the
received code word’s encrypted portion.
ریموت ها رو خودتون کلید روش مینویسید – گیرنده هم دست خودتون هست دیگه
مطمينتا ریموت فلان شرکت رو نمیشه به گیرنده بهمان شرکت جوین کرد
سلام
البته من گیرنده رو فرصت نشده بنویسم ولی کاری نداره
باید کد مشترک بین ریموت گیرنده داشته باشید – و یه کانتر هر ریموت رو مجزا ذخیره کنید.
تونسته بودم ریموت code learning رو خونده و شبیه سازی کنم تا دری رو باز کنه. خیلی کیف کرده بودم.
در فرصتی دیگر مایلم که کدهای ریموت هاپکینگ رو بشکونم. کلا قفل شکوندن و رفع محدودیت ، مورد علاقه منه
حدود ده سال پیش از روی کنجکاوی ریموت های دزگیر ماشین رو هک کردم و فرقی نمیکرد کد ریموت چی باشد باز میشد در بازه زمانی یک ساعته بدون شنود فرستنده
بدون شنود فرستنده؟!
واووو جالب بود
عین این دستگاه opensesameکار میکرد؟ برای samy kamkar
من اینکار را در عرض 30 ثانیه موفق شدم بدون شنود از طریق کد دهی در بیت های ادرس دکمه ها نفوذ کنم.
جالب، فکر میکنم در این صورت گیرنده درست برنامه ریزی نشده بوده است 🙂
سلام.لطفا سورس کد هاپینگ کد رو هم قرار بدین و نحوه ساخت پروگرامر و پروگرام کردن Ic hcs301
با تشکر
با سلام . مطالب فوق العاده علمی و سطح بالا با چینش مناسب و شرح سیستم ها به صورت کاملا قابل فهم .
عالی بود …
ممنون بخاطر همه زحمات
یک گیرنده دزدگیر هاپینگ هست،
به راحتی داره کار میکنه وبا ریموتش هم ست هست
هیچ ریموت کد لرن یا فیکس دیگه ای هم قبول نمیکنه وفقط ریموتهای هاپینگ خودش
یک ماژول ساده گیرنده روی بردش بود که در آوردم وبه آردوینو متصل کردم.هدفم خواندن وکدهای دریافتی ریموت های هاپینگ بود
ولی عجیبه که هیچ کدی رو از ریموتهای خودش دریافت نمیکنه ولی کد ریموت های لرن وفیکس رو میگیره ونمایش میده!
چطور ممکنه؟چون فکر کردم گیرنده اش باید متفاوت باشد واین گیرنده است که کدها رو از ریموت میگیره درصورتی که اینطور نبود
واینکه میخواهم کدهای ریموت هاپینگ رو با آردوینو دریافت کنم راه حل چیه؟کلا اری با قسمت دیکد وکد ورمز وکلیدش ندارم وفقط میخواهم کدهای یک ریموت هاپینگ رو در آردوینو بگیرم.چطور؟
سلام و درود
من درمورد ریموت های هاپینگ کد دارم تحقیق میکنم دیتاشیت ایسی hcs300 یک بخشی توضیح داده درمورد seed value که زمانی که هر 4 کلید ریموت را همزمان فشار بدیم این کد جایگزین بخش رمزگذاری شده میشه که یک کد ثابت و تغییری نمیکنه که امتحان کردم درست بود با یک ریسیوری که درست کرده بودم تو توضیحات این بخش گفته شده برای طراح های سیستم هست که یک ویژگی برای لرن کردن هست و توضحیات بیشتری نداره میخواستم بدونم شما اطلاعاتی در مورد این بخش دارید و همچنین الگوریتم keeloq؟
سلام من میخوام مدار یک فرستنده و گیرنده ساده 2 کانال با Hopping code بدون استفاده از میکرو طراحی کنم. از HCS300 , HCS301 به عنوان فرستنده میشه استفاده کرد ولی برای گیرنده از چه IC باید استفاده کنم؟ HCS500 مناسبه واسه اینکار؟
عجیبه این آیسی رو که معرفی کردید ندیده بودم ولی خوب بله درست انتخاب کردید ولی باز فکر میکنم برای دریافت اطلاعات این آیسی هم نیاز به میکروکنترلر دارید همچنان
ممنون از اطلاعاتی که به اشتراک میذاری برام خیلی هیجان انگیز بود, به عنوان یه برنامه نویس و یه علاقه مند به الکترونیک باید بگیم که سیستم هاپینگ به نظرم اصلا ایمن نیست درسته در برابر حملات تکرار مقاوم هست اما در برابر دیگر حملات که نمیخوام نام ببرم کاملا آسیب پذیر هست و با شنود یک یا چند نمونه از دیتا شنود شده و با توجه به طول کوتاه کلید اصلی میشه کلید رمزنگاری رو به دست آورد
سلام دوست عزیز
باعث خوشحالی ما است که دوستان برنامه نویسی رو توی جمع خودمون ببینیم
بله کاملا حق با شماست و فکر کنم آخر مقاله اشاره ای کوچک به این موضوع کردم ولی خوب باید بگم در مقابل دیگر انواع ریموت ها که به شدت در دزدگیرها و درب ها مورد استفاده قرار میگره ایمن تر هست و کار رو برای شکستن کد سخت تر کرده و نیاز به تجهیزات پیشرفته تری داره (مثلا باید بتونید جمینگ کنید و …)
ولی فکر نمیکنم هیچ چیزی رو بشه پیدا کرد که امنیت کامل داشته باشه
سلام
بسیار ممنون بابت مطلب خوبی که قرار دادید.
امکانش هست یک مطلب هم در بارهی ساختن فرستنده و گیرنده رولینگ کد قرار بدید که طریقه پیاده سازی الگوریتم کد کردن در فرستنده و دیکد کردن دیتا در گیرنده رو توضیح بده.
هر الگوریتمی برای تولید کد های یک بار مصرف که نیاز به کلید برای رمز گشایی داشته باشه …
مدتی هست دنبال همچین چیزی هستم ولی متاسفانه چیزی توی اینترنت دستگیرم نشد.
سلام دوست عزیز
مدتی است توی فکرش هستم ولی متاسفانه فرصت نشده – تا اونجا پیش رفتم که حتی ریموت ها رو هم خریداری کردم ولی باید فرصت بکنم و برنامه رو بنویسیم و بعد هم مطلبش رو آماده کنم
بله متاسفانه توی اینترنت چیز بدرد بخوری در این خصوص خودم هم ندیدم که معرفی کنم
سلام
برای ست کردن یک ریموت به گیرنده ش، باید گیرنده در حالت مود لرن قرار داد
حالا اگر ما یک گیرنده داشتیم که کلیدی روش برای قرار دادن در حالت مود لرن تعیبه نشده بود چطور میشه اون پایه میکرو رو که برای این کار هست رو پیدا کرد؟
سلام معمولا اینجا ست کردن خیلی معنی پیدا نمیکنه چون داده ها کد میشن – در واقع میشه گفت فرستنده (ریموت) باید با گیرنده ست بشه و کلید رمزگذاری گیرنده داخلش تنظیم بشه
بسیار جامع و صحیح توضییح داده اید.زنده باشید.
سلامت باشید
با سلام و احترام
مقاله بسيار جالب و مفيدي بود. زئوس عزيز. يك سوالي داشتم. من يك گيرنده RXb433 دارم كه با آون ريموتهاي كد لرن رو ديكد ميكنم. و در پروژه هام استفاده نميكنم. اخيرا يك ريموت هاپينگ 433 خريدم ولي دستگاه كدي رو نميخونه. نميدونم مشكل از گيرنذده هست يا ريموت program نشده.
با شركت برند ريموت صحبت كردم گفته ريموتها براي گيرنده هاشون برنامه ريزي شده و طبيعتا بايد كدي رو ارسال كنه مگر اينكه براي خوندن كد الزاما بايد ديكدر هم مال همون شركت باشه؟
ممنون ميشم راهنمايي بفرماييد.
سلام دوست عزیز من منظور شما از عدم دریافت کد رو متوجه نشدم
یعنی سیگنالی رو دریافت نمی کند یا قادر به دیکد آن نیستد ؟
سلام و عرض ادب
اساتید بزرگوار در خصوص ریموت های تصویری برد بالا ( بخش پیجر ) سوالاتی دارم ، ممنون می شم اگر راهنمایی بفرمایید:
در پروژه ای نیاز است که داده ها برای کاربر به شعاع یک کیلومتر ارسال شود ، قبلا این کار توسط برد های طراحی شده و ماژول های nrf انجام شده است. اما شکل و اندازه ریموت های تصویری برای پروژه ما بسیار مناسب است .
به نظر استاید آیا می توانیم از گیرنده و فرستنده پیجر ریموت های تصویری برای اینکار استفاده کنیم ؟
ممنون
ببخشید متوجه سوال شما نشدم
با درود خدمت اساتید بزرگوار.
سوالی که برام پیش اومده اینه که شمارنده باید در هر دو دستگاه گیرنده و فرستنده یک عدد باشه تا دستگاه گیرنده ،دستور دریافتی رو اعمال کنه.
حالا فرض میکنیم در اخرین ارتباط بین ریموت و گیرنده،عدد ۱۰ بوده و بنا به هر دلیلی ۲ یا چند بار کلید ریموت فشار داده شده و گیرنده ،دستور رو نگرفته و هر بار شمارنده ریموت عدد بالاتری رو جایگذین کرده و مثلا شمارنده ریموت شده ۱۵ و گیرنده هنوز منتظر عدد ۱۱ هست در این صورت چه اتفاقی میوفته؟؟
درود دوست عزیز
خوب این سوالی است که برای خیلی از دوستان پیش میآد، توی گیرنده میتونیم فرض کنیم عدد بزرگتر از کانتر خودش قابل قبوله 🙂
سلام مجدد.
اینجوری اگه کسی بتونه کد رو رمز گشایی کنه میتونه یه عدد بالا رو جایگذین کنه و بفرسته اینجوری ریموت اصلی رو هم از کار میندازه چون عدد رفته بالا و ریموت مثلا ۱۰۰ تا عقبه
سلام بله – خوب ایده اینه که کسی نمیتونه تا خوتون کلید اصلی رو لو ندید کلید رو پیدا کنه دیگه 🙂
وقتی کلید رو داشته باشه هر کار دیگه ای میتونه انجام بده
سلام
من ریموت کدهاپینگ رو دیتای خروجیش رو خوندم و دیکد کردم
کلا 66 بیت دیتا هست :
32 بیت رولینگ کد(با هر بار فشرده شده تغییر میکند)
28بیت سریال نامبر(نمیدونم چرا همه بیت ها یک ها هستن در ریموت هایی که خریدم و تست کردم؟!)
4 بیت دکمه ها
2 بیت استاتوس(باتری و تکرار)
حالا من گرفتار شدم سر استفادش و لرن کردنش چوننن : هر ریموتی میخرم خب اون کی و یا کلیدشو نمیدونم که بخش یونیک رو دیکریپت کنم و اون هیچی کاریش ندارم چون باید خوده ic رو پروگرام کنم که قصد این کار رو ندارم . حالا میخوام از بخش فیکس کد یا همون سریال نامبرش بیام اون ریموت رو تمایز بدم با ریموت های دیگه که بازم نمیشه چون کل 28 بیت سریال نامبر همشون یک هستن و عملا دستم بستست…
میشه لطف کنید راهنمایی کنید که برای دیکد دیتای بدست امده چی کار میکنید و راه حلتون برای تمایز ریموت ها از هم چیه تا بشه لرنش کرد؟!
تشکر
من مجددا دیتاشیت رو نگاه کردم این سریال نامبر که ارسال میشه توی eeprom ذخیره میشه و قابل برنامه ریزی است
• Programmable 28-bit serial number
سلام بابت مطلب جالب و نسبتاً کاملی که گذاشتین تشکر می کنم. واقعاً عالی بود
سلام خواهش میکنم دوست عزیز
سلام.از کجا بفهمیم.که.کد هپینگ فعال وتعیین است یا نه؟
راهی که من میشناسم اینه دیتای ارسالی ماژول رو بخونید و انالیز کنید
سلام
من یه چنتا ریموت دارم با ماژول سوپرهیترودین تستشون کردم اون ریموت هایی که مخصوص ماشین بود رو ماژول نتونست بخونه اما یه ریموت که فک کنم کد فیکس باشه رو خوند
مشکل از کجاست؟ اگه از ماژول های لورا استفاده کنم درست میشه؟ شما چی پیشنهاد میدید؟ فقط اگه امکان داره یکم دقیق تر توضیح بدید یا مدل ماژولی چیزی پیشنهاد بدید ?
سلام جناب سامورایی 🙂
اولین چیزی که به ذهنم میرسه مچ نبودن فرکانس ریموت ها با گیرنده شما است – تست ساده اش اینه که یه led به خروجی ماژول گیرنده وصل کنید وقتی که دکمه ای رو روی ریموت فشار بدید led باید شروع کنه با نظم چشمک زدن (دقت کنید با نظم یکسان چون تا قبل از فشردن دکمه هم چشمک میزنه) اگر اینطور شد یعنی فرکانس ها مچ هستند و احتمالا پروتکل ها متفاوت هستند.
سلام خسته نباشید
میخواستم بدونم برای اجرای حملات تکرار به چه ماژولی نیاز داریم؟ میشه از فرستنده گیرنده سوپر هترودین استفاده کرد؟ ماژول های لورا چطور ؟ چه فرقی تو استفاده دارن؟
ی سوال دیگه ای که داشتم این بود که حدودا اکثر ماشین های شرکت های رایج داخل کشور مثل پراید از ریموت های کد لرن استفاده میکنن یا هاپینگ؟؟
سلام
شما برای حملات تکرار نیاز به تجهیزات rf دارید برای بحث ایجاد نویز روی باند مورد نظر و از اون طرف باز پخش سیگنال ….
تا اونجا که من دیدم بیشتر کدلرن هستن 😐
ممنون
میشه یکم دقیقتر در مورد تجهیزات rf بگید؟ من یه ریموت 4 کانال معمولی و 2 3 تا ریموت ماشین رو روی ماژول rf سوپرهترودین 433 تست کردم ریموت های ماشین رو نشناخت ولی ریموت عادی که فک کنم کد فیکس باشه رو فقط شناخت.مشکل از کجاست؟
خوب شاید فرکانس ریموت های ماشین ۳۱۵ مگاهرتز باشه – مثلا دزگیر ماشین خودم فرکانس ۳۱۵ است – البته متاسفانه معمولا ریموت های دزگیر ماشین از نوع هاپینگ نیستند
با گیرنده ۳۱۵ هم تست کنید
تو چند خط اخر مبحث در مورد کانتر گیرنده صحبت کردید،باید خدمتتون عرض کنم این برای حالتی هست که ارتباط فرستنده و گیرنده دو طرفه باشه تا مقدار افزایش کانتر توسط گیرنده به فرستنده اعلام بشه،یه مثال میزنم.
مثلا فرستنده طبق گفته شما عدد ده رو ارسال میکنه و گیرنده مقدار کانتر رو افزایش میده تا دفعه بعد مقدار یازده براش ارسال بشه،حالا فرستنده از کجا باید بدونه که کانتر گیرنده رو چه کدی منتظر دریافت دیتا یا عدد هست??ممکنه شما از محدوده گیرنده خارج باشید مثلا فاصله دریافت و ارسال صد متر باشه و شما یک کیلومتر فاصله داشته باشید و با هربار فشار دادن در فرستنده یه مقدار به کانتر فرستنده اضافه بشه و گیرنده از مقدار عدد فرستنده اطلاع نداشته باشه اونوقت چطوری میتونن تبادل و هماهنگی دیتا داشته باشن،برای مثال شما از ماشینتون زیاد فاصله گرفتید و دکمه باز شدن درب ماشین رو چندین بار فشار میدید و کانتر فرستنده افزایش پیدا میکنه و با کانتر گیرنده ناهماهنگ میشه،تو این حالت وقتی شما به ماشینتون نزدیک میشین اختلاف کانترها باید مانع باز شدن درب ماشین بشه که با توضیحات شما مطابقت نداره.
در مورد پروگرام شدن بعضی ریموت ها خود کمپانی این قابلیت رو میذاره تا در اثر مفقودی ریموت بشه با ریموت جدید مچ کرد
🙂
اگر کمی وقت میذاشتید حتی عکس های یوزمنوال آیسی hcs301 رو که تنها فرستنده است نگاه میکردید ، متوجه می شدید که فضیه از چه قراره – این کاتنر وجود داره و وجودش دلایل مختلفی داره!
این تناقض که شما میگید بله پیش میاد – ولی حل شدنی است به سادگی یک شرط این که کانتر فرستنده فرضا بزرگتر از کانتر گیرنده باشه و آورفلو نشده باشه – اون موقع مشکل حل میشه
البته غالبا این جور مواقع با فشار دادن دکمه برای بار اول گیرنده عمل نمیکنه و منتظر میشه دوباره شما دکمه را فشار بدید , یعنی گیرنده دقیقا غیر از شرط بالا دو عدد متوالی را هم دریافت کرده و بعد عمل میکنه
آیا برای تست ریموت هایی به جز ریموت هاپینگ لزوما باید از دستگاه هایی مثل hackrf یا rtl استفاده کرد یا میشه با ماژول هایی که تو بازار وجود دارن هم کار کرد و با اردینو راه اندازیشون کرد. آیا ماژولی هست که بتونیم از طریق پورت سریال و مستقیم ازش استفاده کنیم؟
میتونید از آردوینو و ماژول های rf موجود در بازار استفاده کنید.
این که ماژولی وجود داشته باشه که خروجی سریال بده رو اطلاعی ندارم ولی به سادگی قابل ساخت هست این ساله :/
سلام ممنون بابت مطالب
آیا حتما برای تست این حملات replay attack نیاز به دستگاه های hack rf یا rtl هست ؟
برای ریموت هایی به جز رولینگ میشه از ماژولی چیزی استفاده کرد؟
خوب اون تجهیزات آزمایشگاهیی هست و کار رو ساده تر میکنه و ساخت اون احتمالا هزینه و زمان زیادی لازم داره
اگه رولینگ نباشه از ماژول های فرستنده توی بازار میشه استفاده کرد.
امکانش هست یه نمونه با برد مناسب که توی بازار هم باشه معرفی کنید؟
من درست متوجه نشدم شما میخواید فرستنده بسازید یا گیرنده ؟
برای گیرنده توی مقاله ریموت کدلرن و چکونگی دکد کردن آن به همراه سورس برنامه نمونه خوب گیرنده رو گفتم.
اگر برای فرستنده و ساخت ریموت لازم دارید – باید بگم نمونه های موجود توی بازار نهایتا کیفیت متوسط دارند.
بابت مطلب و پاسختون متشکرم ?
با سلام مجدد
تو ویکی پدیا قشنگ نوشته باید چی کار کرد :)) ایده اش خیلی جالب بود دم کامکار گرم.
با سلام و تشکر از مطلب خوبتون
یه راه ساده و شایدم سخت اینه که بتونیم به طریقی فرمان باز شدن رو در زمانی که ریسیور قادر به شنیدن این فرمان نیست (مثلا در فاصله دوری قرار داره) ضبط کنیم و دوباره براش پخش کنیم :))
راه ساده اش جمینگ روی ناروباند هست – حتی وقتی نزدیک گیرنده هستید قادر نخواهد بود سیگنال درست رو تشخیص بده و شما میتونید کد رو بخونید.
سلام
من بیرون یک ریموت خریدم ک میخواستم با ریموت دزدگیر ماشینم اونو ست کنم. بعد از خریدن متوجه شدم ک نمیشه این ریموتو خام کرد و بهش کد داد یعنی بلوتوثی نیست. الان باید چیکار کنم؟ آیا راهی هست ک بشه با ریموت ماشینم اونو یکی کنم؟
سلام نه متاسفانه
پس الان چیکار میتونم بکنم با این ریموت؟
والله بهترین گزینه پس دادنش هست 🙂
سلام مرسی از اطلاعات مفیدی که در اختیار ما گذاشتین..
من خیلی وقته تو کار دزدگیر… دستگاه شنود امواج تمامی ریموت های دزدگیر هارو درست کردم غیر از تصویری esycar.
الان داشتم رو شنود ریموت های فابریک سمند و… کار میکردم. این چیزی که شما گفتین درسته ولی برای ریموت های دوطرفه هستش مثلا ریموت سمند با ای سی hcs301یک طرفست و نمیتونه بین گیرنده و فرستنده تبادل کد کنه. چون اگه شما در فاصله دور از ماشین ریموت رو بزنین طبق گفته شما باید یک واحد افزایش بده ولی ماشین که متوجه نشده چون خارج از محدوده فرستندس اونوقت چی میشه از کد باید خارج بشه.. حالا نمیدونم این نظر منه هنوز دارم روش کار میکنم.
سلام نه دوست عزیز اینها هم یک طرفه هستند
فرض کنید شما ریموت را میزنید و به گیرنده نمیرسه
خب دفعه بعد که میزنید گیرنده منتظر عددی هست ولی اون را دریافت نمیکنه گیرنده عمل نمیکنه ولی چون عدد براش شناسایی شده اون را ست میکنه و اگر دوباره بزنید اون را معتیر در نظر میگیره
با سلام و تشکر از مطلب خوبتون
خوب اگر اینجوریه ما به جای این که اول فریم باز شدن و سپس بسته شدن در رو ذخیره کنیم، فریم بسته شدن (مثلا با کانتر 11) و سپس باز شدن (با کانتر 12) رو ذخیره می کنیم. حالا اول فریم بسته شدن رو میدیم. ریموت عمل نمی کنه ولی طبق گفته شما عدد 11 رو ست می کنه. حالا فریم باز شدن رو میدیم و رسیور قبولش می کنه چون منتظر عدد 12 بود به همین سادگی. مگر این که بیاد و بگه عددی که ست میشه باید از عددی قبلیه رو ریسیور بیشتر باشه.
مهندس عزیز سلام
الان رسیورهای تو بازار هستند که باتمام ریموتهای هاپینگ در بازار لرن میشن
این دو دلیل میتونه داشته باشه یا اینکه تمام کلیدهای شرکتهای مختلف رو نشستن و استخراج کردن که بنظرم بعیده یا اینکه فقط ازون ۲۸بیت سریال نامبر استفاده میکنن بدون درنظر گرفتن ۳۲بیت کدگذاری شده،درسته؟
بله کاملا درسته این دقیقا به این دلیله که رسیور مذکور تنها از قسمت کد نشده استفاده میکنه و این بسیار خطرناک است !!!
سلام و عرض تشکر بابت انتشار علومتون
دو عدد مسئله
من اینطور متوجه شدم که برای اضافه کردن ریموت هاپینگ کد حتما باید به رسیور دسترسی داشت و نمیشه ریموت رو با ی ریموت دیگه ست کرد. درسته؟
دوم اینکه فرمودید “متأسفانه مشاهده شده که برخی از تولیدکنندگان، ریموت کنترل هاپینگ را بدون تعیین کلیدِ کدگذاری مورداستفاده و فروش قرار میدهند” لطفا معرفی کنید تولیدهای خوب و بد رو
سلام دوست عزیز – خواهش میکنم
بله کاملا درسته – البته اگر گیرنده اصولی طراحی شده باشه !
برای این که لطمه ای خریداران این برند وارد نشه و مورد سوء استفاده قرار نگیره متاسفانه نمیتونم اسم برند رو بگم.
البته مساله رو بهشون گفتم و امیدوارم که مرتفع کرده باشند
سلام
با تشکر از مطلب خوبتون
چجوری میتونم چیپ hcd301 رو پروگرم کنم؟ من یک کد آردوینو پیدا کردم و با استفاده از اون واسه stm32 کد نوشتم. ولی کار نمیکنه. من فکر میکنم به خاطر سطح ولتاژ باشه. چون من مستقیم چیپ رو به میکرو وصل کردم. اگر مشکل اینه چجوری میتونم درستش کنم. و اینکه آیا شما سورس خوبی میتونید بهم معرفی کنید یا نه.
با تشکر
سلام دوست من – والا من برای این کار تاحالا تلاشی انجام ندادم ولی فکر هم نمیکنم که به خاطر سطح ولتاژ چنین مشکلی به وجود بیاد
چرا از خود آردوینو برای پروگرام کردن استفاده نمی کنید ؟ راحت تر نیست ؟
در حال حاضر ندارم آردوینو،
داخل دیتا شیت hcs301 نوشته از 3.5 تا 15 ولت، ولی میکرو 3.3 کار میکنه ، به این خاطر گفتم.
یه چیز دیگه، شما داخل متن گفتید که به خاطر کامتر امکان هک کردن نیست و اگر پاکت رو دوباره بفرستیم چون کانتر رسیور رفته جلوتر قبول نمیکنه، خوب کانتر 16 بیتیه و هر 65535 بار صفر میشه، پس میشه هک کرد و زیاد سخت نیست که.
چطور زیاد سخت نیست ؟ اولا این که شما از کجا میدونی رقم کانتر چنده ؟ همونطور که فبلا گفتیم رمز میشه
بعدش چطور ۶۵۵۳۶ حالت رو میخواید ترک کنید که سر به زنگاه همون موقع کد رو ریپیت کنید 😐
با فرض این که طرف روزی ده بار از ریموتش استفاده کنه ۶۵۰۰ روز ید صبر کنید
ممکنه دقیقا به همین دلیل بوده باشه به سادگی با استفاده از آیسی 74hc244 یا آیسی 74hc125 منطق خروجی stm32 رو به ۵ ولت تبدیل کنید و آیسی رو با ۵ ولت روشن کنید.
من اینتور فکر کردم که کانتر رسیور همیشه که پاکت دریفت میکنه میره جلو. اگه این اتفاق بیافته و هر سری رسیور بره جلو راحت میشه هک کرد به اسن صورت که فرستنده مدام پاکت رو میفرسته و رسیور هی میره جلو تا پر بشه بعد که از اول بر میگرده قبول میکنه پاکت رو. (البته بستگی داره رسیور چجوری نوشته شده باشه.)
بدون تغییر سطح ولتاژ کار کرد.
هم تونستم ریموت رو پروگرم و verify کنم هم گیرنده و الگوریتم رمزگشاییش رو نوشتم.
ممنون از راهنمایی
اوهوم
تا وقتی که کد منطق نباشه که مقدار کانتر تغییر نمی کنه قائدتا و منطقا
خواهش میکنم خوشحالم که تونستید جواب بگیرد.
سلام
می خواستم بپرسم که چجوری میتونم ریموت کد هاپینگ تهیه کنم؟ من سایت های ایرانی رو گشتم ولی چیزی پیدا نکردم.
و اینکه من میتونم با خرید ریموت از بازار و رسیور معمولی و با استفاده از logic analyzer پاکت های ارسالی رو تحلیل کنم؟
پروژه من ساخت رسیور کد هاپینگ و انجام عملیات با توجه به دکمه زده شده است. در مرحله بعد هم ساخت ریموت کد هاپینگ.
با تشکر از شما
این که چطور میتونید تهیه کنید رو اطلاع ندارم ولی یه مدل ریموت توی بازار هست که معروفه به ریموت بتا – مربوط به شرکت بتا است که برای گیرنده های خودش میزنه
میتونید از این مدل ریموت ها تهیه کنید و آیسی روش برنامه ریزی کنید که رمز دلخواهتون رو داشته باشه
خیلی ممنون
خواهش میکنم
سلام.تشکر بابت سایت عالی و اطلاعاتی که به اشتراک میذارید
یک سوال داشتم در مورد این نوع ریموتها
همینطور که گفتید هر فرستنده و گیرنده دارای یک کلید مشترک هستند که طبق اون اطلاعات دریافتی رو دیکد میشه
حالا اگر ریموت جدیدی نیاز باشه که به گیرنده اضافه شه برای پروگرم کردن این کلید چه روشی وجود داره که نیاز به تجهیزات خاصی نداشته باشه؟یعنی مثل ریموتهای لرن به سادگی توسط شخص میشه ست کرد یا نه به غیر از ریموتهایی که از ابتدا در گیرنده ذخیره شده دیگه نمیشه ریموت جدید اضافه کرد؟
سلام دوست عزیز
ببینید باید کلید ریموت جدید در گیرنده درج بشه اگر گیرنده امکانش رو داشته باشه که معمولا ندارند پس منطقی ترین راه اینه که کلید گیرنده در ریموت دخیره بشه که نیاز به پروگرامر داره – توی عکس های پست محل پروگرام یک مدل ریموت هاپینگ رو مشخص کرده ایم
این که گیرنده قادره چند تا ریموت رو پشتیبانی کنه متغییره و باید به منوال گیرنده مراجعه کنید یا با شرکت سازنده در ارتباط باشد.
تشکر از پاسختون
پس اگر گیرنده ای با ریموت جدید ست شد میشه نتیجه گرفت که کلا همه ریموتها و گیرنده های دارای یک کلید واحد هستن؟که این کلید میتونه مقدار خام و پروگرم نشده ای سی که از ابتدا در ای سی وجود داره باشه (یعنی عملا تولید کننده هیچ مقداری رو پروگرم نکرده) و یا تولید کننده دستگاه، تمامی فرستنده و گیرنده ها رو با مقدار واحدی پروگرم کرده؟
خواهش میکنم دوست عزیز
بله به احتمال خیلی زیاد مساله یکی از مواردی هست که فرمودید و در واقع خارج از این مورد نمیتونه باشه !!
البته توجه داشته باشید لزوما نیاز به رمز واحد نیست 🙂 – ممکنه بپرسید چطور و چرا ؟!
استفاده از یک رمز برای تمام فرستنده ها مقداری احمقانه است – چرا که با لو رفتن یک کلید واحد تمام گیرنده ها و فرستند های در حال حاظر و در آینده هک شده اند و این یعنی امنیت کشک!
اما راه حل چیه ؟ همونطور که توی مقاله گفتیم تمام ریموت ها قسمتی بدون کد دارند (سریال نامبر) که بدون کد هم ارسال می شنود و اتفاق منحصر بفرد هستند ، شما فرض کنید کلید رمزگذاری با یک رابطه ریاضی (یا یک معادله خیلی پیچیده) از این سریال نامر تولید بشه!! اینطوری هر ریموت کلید منحصر بفردی خواهد داشت 🙂 گیرنده هم قادره بر اساس سریال نامر ریموت – کلید اونو رو تولید کنه !! بدین وسیله حتی هک شدن یک ریموت نمیتونه منجر به هک شدن کل سیستم در سطح کشور یا جهان بشه !!!!!!
امیدوارم تولید کننده های داخلی از این الگو استفاده کرده باشند – واقعا امیدوارم
خیلی ممنون پاسخ شفاف و عالی که ارایه کردید.نکته بسیار ظریف و مهم و کاربردی بود.من هم امیدوارم تولید کننده ها،از راهنمایی های افرادی چون شما و گروه سیسوگ بهره مند باشن و استفاده ببرن.
خواهش میکنم دوست عزیز
مواردی که به نظرم اومد رو گفتم و واقعا امیدوارم تولید کننده های این مدل سخت افزار تاجای ممکن مسائل امنیتی رو رعایت کنن 🙂
نظر لطف شماست 🙂
سلام ودرود
لطفا درمورد این کد که به عنوان کلید هست توضیح بفرمایید در کجای کدهای ارسالی قرار میگیرد؟یا اصلا ارسال نمیشود وروی این 26 بیت اثر میکند؟
شماره کانتر روی این 26 بیت چه اثری دارد؟
من نتونستم این را درک کنم!
ببینید هر ریموت یه شناسه منحصر بفرد داره که اونو از باقی ریموت ها جدا میکنه ؛ اون شناسه توی این مدل ریموت ها یه عدد 28 بیتی است ؛ این عدد 28 بیتی طبق گفته یوزر منوال کد نمیشه و ارسال میشه
شماره کانتر این هیچ تاثیری نداره ؛ اما چرا این شناسه مهمه ؛ چون توی گیرنده باید شماره کانتر ریموت های مختلف رو جدا ثبت کنید تا تداخل براشون ایجاد نشه ؛ با استفاده از این شناسه این کار رو میتونید انجام بدید
سلام . ممنون بابت مطالب خوبتان .
فرض کنید مقدار کانتر یک عدد یک بایتی هست ، اگر کاربر ریموت رو در غیاب گیرنده انقد فشار بده تا مقدار کانتر دوباره صفر بشه ، در این صورت گیرنده درخواست های ریموت را باید نادیده بگیره چون کانتر کاهش پیدا کرده ؟
سلام دوست عزیز
اینجا فکر کنم با چک کردن آورفلو بشه مشکل رو حل کرد :/
سلام مهندس.وقت بخیر.نمیدونستم این سوالو کجا مطرح کنم.
میخواستم بدونم ایا راهیی برای ارسال متن حدود 100 کاراکتر بدونه استفاده از ماژول های مخابراتی و سیم کارت هست؟؟
اونم تا فاصله ی 2 کیلومتر همین حدودا…
سلام دوست عزیز ؛ منظور شما از ماژول های مخابراتی اگر چیز هایی مثل محصولات SimCom و QuecTel باشه
باید بگم که شما میتونید از ماژول های رادیویی استفاده کنید ؛ ماژول هایی مثل nef24l01 یا ماژول های دورجی ؛ یا nef12pb و امثالهم
سلام
میخواستم بدونم چجوری میشه میکرو داخل فرستنده رو خودمون برنامه ریزی کنیم
یا یه مدل دیگ از فرستنده ریموت کنترل که قابلیت برنامه ریزی داشته باشه رو لطفا بگید اگ میدونید
با تشکر
سلام دوست عزیز
معمولا فرستنده ها از میکروکنترلر استفاده نمیکنند که بشه کدش رو عوض کرد جز در موارد خاص که باید ببینید پروتکل ارتباطی چی هست.
سلام
من یک دستگاه درب اتوماتیک نسبتا قدیمی دارم که ریموتهاش دو تاش کلا خراب شده و آخری هم به بدبختی کار میکنه، برای کپی ریموت رفتم گفتند این هاپینگ هست و دیگه هم از این نوع ریموت نمیاد و باید رسیورش رو قطع کنی رسیور جدید بزاری براش! چون دستگاه قدیمی و اورجینال هست و حتی رسیور هم درون قطعه موتور و آب بند هست ترجیح میدهم به نحوی ریموت براش تهیه کنم…
روشی داره که ریموت دیگه به این دستگاه بخوره یا نه؟؟
سلام دوست عزیز ؛ اگر ریموت شما هاپینگ باشه در واقع هیچ راهی ندارید که ریموت دیگری رو بر روی در ست کنید چرا که ریموت های هاپینگ داری کلیدی هستند که به شکل نرم افزاری داخل ریموت تنظیم میشه ؛ اگر هر ریموت هاپینگ دیگری تهیه کنید تا زمانی که کلید مورد نظر روی آن تنظیم نشه ؛ امکان کار با گیرنده رو نخواهد داشت .
با سلام ممنون بابت اموزش خوبتان در مورد ریموت های
هاپینگ اگر حالا ریموت دور ازگیرنده بود مقدارش را ایا یکی اضافه می کند روی ریموت در حالی که گیرنده اون کد را نگرفته است و عملا یه نتاقض پیش می ایید در سیستم ممکن است این را روشن و شفاف کنید ممنون
خوب با یک شرط ساده میشه این تناقض رو رفع کرد ؛ به این شکل که اگر شماره کانتر بزرگتر از شمارنده موجود در گیرنده باشه ؛ شماره بزرگتر ست بشه توی گیرنده و با فشار دوباره کلید افزایش کانتر ثابت میکنه که ریموت واقعی در دسترس است به همین سادگی
زحمته یه کم بیشتر برای این مورد توضیح بدین
خوب ببینید فرض کنید در جایی که گیرنده در دید فرستنده نیست ؛ چند بار دکمه فشرده میشه ؛ گیرنده به فرض شماره کانتر 100 رو داره الان فرستنده شماره کانترش شده 110 بدون این که گیرنده متوجه بشه ؛ خوب حالا گیرنده و فرستنده در برد هم قرار می گیرند ؛ فرستنده عدد کانتر 111 رو ارسال میکنه ولی گیرنده انتظار 101 رو داره ؛ قائدتا نباید درب باز بشه و چون عدد 111 از عدد 101 بزرگتر هست مقدار 111 روی گیرنده ذخیره میشه ؛ حالا کاربر کلید رو که فشار بده ؛ عدد 112 ارسال میشه که گیرنده انتظارش رو داره و درب هم باز میشه
به همین سادگی
حالا اگه کسی که میخواد سیستم رو هک کنه خب میتونه برای کانتر یه عدد بزرگ رو بفرسته. اینجوری برای گیرنده هم با دو بار فشردن کلید مجاز میشه.درسته؟
مساله اینه که کلید رمزگذاری رو هم داشته باشه که بتونه اطلاعاتش رو رمز کنه !!!!! که خوب نشدنی هست
مگر این که کلید لو رفته باشه که در این صورت هر کاری میشه کرد 🙂
سلام مجدد خوب با این کار اگر چند تا از این کد ها دریافت شوند این سیستم هم مثلا ریموت های RF دیگر می شود چون به هر حال کانتر با یک الگویی بنا است افزایش یابد
ببخشید متوجه منظورتون نشدم ؛ میشه با جزییات بیشتری توضیح بدید
در مورد افزایش عدد کانتر هر بار که کلید فشرده بشه این عدد افزایش پیدا میکنه – دقیقا چیزی است که توی منوال چیپ توضیح داده مساله رو
سلام سخت افزار مناسب دریافت این ریموت ها مثل کدلرن هست؟ فرکانس کاریش چنده؟
بله دقیقا از همون سخت افزار میتونید که استفاده کنید !
فرکانس های کاری معمولا یا 315 هستند یا 433
سلام.آقا اگه ما دوتا ریموت برای یک گیرنده،داشته،باشیم و بیشتر از یکی از اون ها استفاده کنیم،وقتی می خوایم از اون یکی استفاده کنیم به مشکل بر نمی خوریم؟
سلام
نه قائدتا چنین اتفاقی نباید بیفته چرا که هر ریموت کد منحصر بفردی داره و کانتر مورد نظر با توجه کدیونیک ریموت افزایش پیدا خواهد کرد
پس هیچ مشکلی ایجاد نخواهد شد.
لطفا آدرس ومحل فروش وتلفن فروشگاه تان را برای ما ارسال کنید ممنون
با آیدی تلگرام سیسوگ در ارتباط باشید دوست عزیز
سلام. ممنون از مطلب مفیدتون. بسیار عالی و کامل بود.
یه سوالی داشتم. شما نوشتید که برای دیکد کردن و هک ریموتهای هاپینگ کد هم روشهایی هست. میشه بنده رو راهنمایی کنید که چجوری میتونم این کار رو انجام بدم؟
خواهش میکنم دوست عزیز ؛ بله همیشه راهی هست
اما متاسفانه به دلیل امنیتی بودن ؛ نمیتونیم این اطلاعات رو منتشر کنیم ؛ اول این که یک جور هک به حساب میآد و بسیار قابلیت اینو داره که مورد سوء استفاده قرار بگیره و از طرفی متاسفانه آموزش هک جرم به حساب می آد
یا ابوالفضل!!!
یعنی شما بلدین?!
خوب همونطور که گفتم همیشه راهی هست ^_^
عالی بود ممنون
با سلام.
اخیرا یک هکر ایرانی ساکن خارج با ساختن دستگاهی ارزان و قطعات در دسترس، توانسته این نوع قفل ها را نیز براحتی هک کرده درب تقریبا تمامی خودروهای خارجی مانند بنز و ب.ام.و ، فولکس واگن، و …. را باز کند.
بله – هیچ کاری نشد ندارد ، قبلا این کار را نیز ما انجام داده ایم 🙂
ولی خوب مقداری روند کار پیچیده تر از ریموت های معمولی است.
مطالب عالی بود تشکر از زحمتی که کشیدید
اگر درموردروش کار الگوریت که اطلاعات را دیکد میکند ونحوتایین کلیدکه باید چگونه باشد ونحوه پرو گرام کردن ایسی واینکه ایا میشود حافظه ای سی را خواند وکلید را بدست اورد بیشتر توضیح بدهید ممنون میشم من دیتاشیت را مطالعه کردم اما خیلی پیچیده بود
درکل ازمطالب مفیدی که گذاشتید بسیار تشکر میکنم
خواهش میکنم دوست عزیز
احتمالا در مورد نحوه دکد داده های ارسالی پستی خواهیم نوشت و آموزش خواهیم داد که چطور می توانیم از این نوع ریموت ها استفاده کنیم
پروگرام کردن آیسی هم کار بسیار ساده ای است و از پروتکل سریال برای پروگرام استفاده کنید و نمونه کد های زیادی براش موجود هست ، خوشبختانه به دلایل امنیتی امکان خواندن کی نوشته شده نیست و آیسی این اجازه رو نمی ده
سلام
ممنون از اطلاعات نابی که منتشر میکنید
سوال: اگر فرستنده چندین بار کد را ارسال کند و گیرنده در خارج برد (رنج) سیگنال باشد و ترتیب شماره سریال از دست برود چه اتفاقی میافتد؟
سلام و درود
به دو صورت میشه مساله رو حل کرد ، اول این که اصلا بیایم و بگیم اگر کانتر ارسالی از آخرین کانتر دریافتی بزرگتر باشه
یا این که بیایم و تعریف کنیم در این چنین شرایطی کاربر باید دوبار ریموت رو فشار بده ، بار اول کانتر خودمون آپدیت میشه و بار دوم درب عمل میکنه.
زئوس جان در ویکی پدیا و چند وب سایت دیگر آمده است که:
A typical implementation compares within the next 256 codes in case receiver missed some transmitted keypresses
یعنی گیرنده 256 حالت کد معتبری که فرستنده طبق کلید مشترک باید تولید و ارسال کند را ایجاد میکند
که اگر فرستنده و گیرنده در محدوده پوشش یکدیگر نبودند باز هم کد معتبر وجود داشته باشد.
سلام. ببخشید یه سوال داشتم.
از کجا می تونیم بفهمیم که ریموت ما از چه روشی استفاده می کنه؟ مثلا کدلرن هست یا هاپینگ؟
ممنونم.
سلام دوست عزیز
دو راه وجود داره ، اول این که دیتای ارسالی از ریموت رو آنالیز کنیدکه قطعا کار ساده ای نیست
راه دوم اینه که درب ریموت رو باز کنید ، شماره چیپست رو در اینترنت جستجو کنید ببینید نوع کدینگ داده چی هست 🙂
سلام
مطلب مفید و جالب گذاشتین
ممنون
خواهش میکنم دوست عزیز
خوشحالم که مطلب مورد توجه تون قرار گرفته