সুচিপত্র:

আলেক্সা, আমার চাবি কোথায় ?: 4 টি ধাপ
আলেক্সা, আমার চাবি কোথায় ?: 4 টি ধাপ

ভিডিও: আলেক্সা, আমার চাবি কোথায় ?: 4 টি ধাপ

ভিডিও: আলেক্সা, আমার চাবি কোথায় ?: 4 টি ধাপ
ভিডিও: ৫৬ বছর পর পবিত্র আল আকসার চাবি ফেরত দিলেন ইসরাইলি সেনা|Israeli Soldier Returns Key to Al Aqsa Mosque 2024, জুলাই
Anonim
Image
Image
ব্লুটুথ বীকন হ্যাকিং
ব্লুটুথ বীকন হ্যাকিং

অ্যালেক্সা বিশেষ করে তথ্য পুনরুদ্ধারের কাজ এবং বেতার হোম নেটওয়ার্ক ব্যবহার করে সম্পদ পর্যবেক্ষণের জন্য উপযুক্ত। দ্রুত পুনরুদ্ধারের জন্য গ্রিডে মূল্যবান জিনিস রাখার বিষয়টি বিবেচনা করা স্বাভাবিক। আমরা নেটওয়ার্ক পরিসীমা এবং ব্যাটারি দীর্ঘায়ুর জন্য সস্তা ব্লুটুথ কম শক্তির বীকন হ্যাক করি এবং একটি স্মার্ট অ্যাপ্লিকেশন তৈরি করি যাতে অ্যালেক্সা জানে যে আমরা কীগুলি রেখেছি।

এটা কিভাবে করতে হবে…

ধাপ 1: ব্লুটুথ বীকন হ্যাকিং

3 টি বীকনের একটি সেট 15 ডলারেরও কম দামে কেনা যায় এবং এন্ড্রয়েড/আইওএস অ্যাপ্লিকেশনের সাথে সমর্থিত কিন্তু আমরা গোপনীয়তার জন্য অপ্ট আউট করব। তাছাড়া, আমাদের চাবি খোঁজা আমাদের ফোন খুঁজে বের করা উচিত নয়।

রিভার্স ইঞ্জিনিয়ারিং স্মার্ট লাইটের এই অ্যাডাফ্রুট টিউটোরিয়াল আমাদের বীকন নিয়ন্ত্রণ করতে সাহায্য করেছে। চালানোর মাধ্যমে ডিভাইসের ঠিকানার জন্য বীকন স্ক্যান চালু করে শুরু করুন:

sudo hcitool lescan

'ITag' নামের লেবেল করা ঠিকানাটি খুঁজুন এবং অনুলিপি করুন, তারপর চালান:

sudo gatttool -I

চলমান দ্বারা ইন্টারেক্টিভভাবে ডিভাইসের সাথে সংযুক্ত করুন:

AA: BB: CC: DD: EE: FF সংযোগ করুন

বিকল্পগুলি দেখতে 'সাহায্য' চালানোর চেষ্টা করুন বা পরিষেবাগুলি দেখতে 'প্রাথমিক':

'চার-ডেস্ক' চালানোর পরে পরিষেবা হ্যান্ডেল অনুসরণ করে, আমরা UUIDs খুঁজে পাই যা আমরা গ্যাটের বৈশিষ্ট্যগত বৈশিষ্ট্য এবং পরিষেবার স্পেসিফিকেশন উল্লেখ করে দেখি। এই পরিষেবাগুলির আরও তথ্যের জন্য, এটি পরীক্ষা করে দেখুন। এখন আমাদের সহজ পাইথন ফাংশন আছে:

pexpectdef sound_alarm আমদানি করুন ('char-write-cmd 0x000b 0100111000000001')

পরবর্তীতে, আমরা যখন চাবি খুঁজছি তখন বীকন ট্রিগার করার জন্য আলেক্সা দক্ষতা তৈরিতে মনোনিবেশ করি।

ধাপ 2: একটি আলেক্সা দক্ষতা এবং অ্যাপ তৈরি করা

একটি অ্যালেক্সা স্কিল এবং অ্যাপ তৈরি করা
একটি অ্যালেক্সা স্কিল এবং অ্যাপ তৈরি করা
একটি অ্যালেক্সা স্কিল এবং অ্যাপ তৈরি করা
একটি অ্যালেক্সা স্কিল এবং অ্যাপ তৈরি করা

আমরা একটি দক্ষতা তৈরি করি যা একটি স্থানীয় সার্ভারের সাথে যুক্ত হবে। তারপরে আমরা আমাদের সার্ভারকে কনফিগার করি যেটি আমরা করতে চাই, এই ক্ষেত্রে, কীগুলি কোথায় থাকতে পারে তার জন্য একটি আনুমানিকতা প্রদান করুন এবং ব্লুটুথ বীকন বীপ তৈরি করুন। ফ্লাস্ক একটি অ্যাপ্লিকেশন পরিবেশন করার জন্য একটি সহজ এবং সহজে ব্যবহার করা যায় পাইথন লাইব্রেরি প্রদান করে। ফ্লাস্ক-জিজ্ঞাসা ব্যবহার করে, আমরা আমাদের অ্যালেক্সা দক্ষতার সাথে যোগাযোগ করার জন্য সার্ভার কনফিগার করতে পারি যা আমরা পরে তৈরি করব। Ngrok এর সাথে অ্যাপ্লিকেশনটি ভালভাবে পরিবেশন করুন, যা আমাদের একটি https লিঙ্ক দেবে যা আমাদের আলেক্সা দক্ষতার জন্য প্রয়োজন। প্রথমে আমরা সহজ কার্যকারিতা সহ অ্যাপ্লিকেশনটি তৈরি করেছি: ট্রিগার করার সময় আমাদের BLE বীকন বীপ তৈরি করতে।

#! ' #আপনার ব্লুটুথ বীকন আইডি এখানে @ask.intent (' findkeys ') def retrievr (): sound_alarm () speech_text = "আপনার চাবি এখানে কোথাও আছে।" return statement (speech_text) def sound_alarm (): child = pexpect.spawn ('gatttool -I') child.sendline ('connect {}'। format (BD_ADDR)) child.expect ('সংযোগ সফল', সময়সীমা = 60) child.sendline ('char-write-cmd 0x000b 0100111000000001') যদি _name_ == "_main_": app.run (host = '127.0.0.1', port = '5000')

আমরা ফাংশন sound_alarm () ব্যবহার করেছি যা আমরা আগে লিখেছিলাম BLE বীপ করতে। যে ফাংশনটি ইন্টেন্টের জন্য ব্যবহার করা হবে তার জন্য, আমরা আমাদের অভিপ্রায় "findkeys" এর সাথে Ask decorator যোগ করি। যখন আমরা অ্যামাজন ডেভেলপার ড্যাশবোর্ডে অ্যালেক্সা দক্ষতা তৈরি করব তখন আমরা আমাদের অভিপ্রায়ের জন্য এই নামটি ব্যবহার করব। App.py নামের একটি ফাইলে এই স্ক্রিপ্টটি লিখুন এবং চালান

পাইথন app.py

এটি https:// localhost: 5000 এ আপনার আবেদন পরিবেশন করবে। একটি এনগ্রোক সার্ভার চালান এবং উত্পন্ন https লিঙ্কটি অনুলিপি করুন। যখন আপনি আলেক্সা দক্ষতা কনফিগার করবেন তখন আপনার এটির প্রয়োজন হবে। আরো বিস্তারিত জানার জন্য, এই পোস্টটি দেখুন। আমরা সফলভাবে একটি সহজ অ্যাপ্লিকেশন সেট আপ করেছি, এখন আমরা Alexa দক্ষতা লিখব। আমাজন ডেভেলপার ড্যাশবোর্ডে নেভিগেট করুন এবং লগ ইন করুন। অ্যালেক্সায় ক্লিক করুন এবং আলেক্সা স্কিল কিট দিয়ে শুরু করুন

গুই দ্বারা প্রদত্ত নির্দেশাবলী অনুসরণ করুন।

ইন্টিগ্রেশন মডেল ট্যাবের অধীনে আপনি নিম্নলিখিতগুলির সাথে ইন্টেন্ট স্কিমা বক্সটি পূরণ করতে চান:

} }]}

নমুনা উক্তি বাক্সে, আপনি কিছু নমুনা কমান্ড লিখতে চান যা একজন ব্যক্তি দক্ষতা আহ্বান করতে ব্যবহার করতে পারে। আমরা এগুলি লিখেছি:

findkeys আমার চাবি খুঁজে পাওয়া যায়

  • কনফিগারেশন ট্যাবে, পরিষেবার শেষ বিন্দু HTTPS এ চয়ন করতে ভুলবেন না। আপনার https লিংকটি কপি করে নিচের ডিফল্ট বক্সে পেস্ট করুন। একাউন্ট লিঙ্ক করা যেতে পারে।
  • SSL সার্টিফিকেটে মধ্যম বিকল্পটি বেছে নিন, "আমার ডেভেলপমেন্ট এন্ডপয়েন্ট হল একটি ডোমেইনের একটি সাব-ডোমেইন যার একটি সার্টিফিকেট কর্তৃপক্ষের কাছ থেকে ওয়াইল্ডকার্ড সার্টিফিকেট আছে"।
  • টেস্ট ট্যাব আপনাকে আপনার একটি নমুনা কমান্ড টাইপ করে নতুন দক্ষতা পরীক্ষা করার অনুমতি দেবে।

সমস্ত চেক চিহ্ন সবুজ না হওয়া পর্যন্ত শেষ দুটি ট্যাব পূরণ করা শেষ করুন। তারপর বিটা টেস্টিং ফিচার দিয়ে আপনার দক্ষতা চালু করুন। এটি আপনাকে প্রকাশ করার আগে আপনার ইকো ডিভাইসে আপনার দক্ষতা হোস্ট করতে দেয়। আপনার ইকো ডিভাইসে দক্ষতা ইনস্টল করার জন্য ইমেল লিঙ্কের নির্দেশাবলী অনুসরণ করুন।

ধাপ 3: আমাদের দক্ষতা স্মার্ট করা

আমাদের দক্ষতা তৈরি করা
আমাদের দক্ষতা তৈরি করা
আমাদের দক্ষতা তৈরি করা
আমাদের দক্ষতা তৈরি করা
আমাদের দক্ষতা তৈরি করা
আমাদের দক্ষতা তৈরি করা

আমরা আরএসএসআই সিগন্যাল স্ট্রেন্থ রিপোর্ট করার জন্য ব্লুটুথ বীকন খোঁজার কাজে সারা বাড়িতে ছড়িয়ে থাকা নিষ্ক্রিয় কম্পিউটারগুলিকে রাখি।

একাধিক মেশিন থেকে রিডিং গ্রহণ করে, আমরা সিগন্যাল শক্তিকে দূরত্বের প্রক্সি হিসাবে ব্যবহার করতে পারি। ঘরের সর্বাধিক সম্ভাব্য অংশটি গণনা করার জন্য এটি কীভাবে ব্যবহার করা যায় তা আমাদের খুঁজে বের করতে হবে।

আমরা মেশিন লার্নিং এর দিকে ফিরে যাই। প্রতি 2 মিনিটে একটি ক্রোনটাব কাজ, আরএসএসআই টুপলের একটি ডেটাসেট তৈরি করে। বিভিন্ন স্পটে বীকন রাখা যেমন: 'বেডরুম', 'বাথরুম', 'কিচেন', 'লিভিং এরিয়া' আমরা আরএসএসআই লগগুলিকে লেবেল করি। একবার আমরা বাড়ির ম্যাপিং করার পরে, আমরা xgboost এর XGBClassifier- এর মত গাছ ভিত্তিক মডেল ব্যবহার করতে পারি।

গ্রেডিয়েন্ট বুস্টিং এর xgboost বাস্তবায়ন টাইম আউট রিডিং থেকে অনুপস্থিত ডেটা পরিচালনা করবে, কয়েক সেকেন্ডের মধ্যে প্রশিক্ষণ দেবে। প্রশিক্ষিত মডেলকে টিকিয়ে রাখার জন্য পাইথন আচার ব্যবহার করুন এবং আমাদের আলেক্সা পুনরুদ্ধার অ্যাপ্লিকেশনটিতে লোড করুন। যখন দক্ষতা বলা হয়, অ্যাপ্লিকেশনটি ব্লুটুথ আরএসএসআই পড়া দেখায় এবং একটি পূর্বাভাসিত অবস্থান তৈরি করে, অ্যালেক্সা উত্তর দিতে পারে 'বাথরুমে দেখার চেষ্টা করুন'।

ধাপ 4: সব একসাথে রাখা

কীগুলির শেষ অবস্থান অনুমান করার জন্য একটি মডেল থাকার কারণে, আমরা আলেক্সা কর্তৃক প্রদত্ত বিবৃতি উন্নত করতে এটিকে অ্যাপ্লিকেশনে যুক্ত করতে পারি। আমরা পড়তে স্ক্রিপ্ট পরিবর্তন করেছি:

flask_ask আমদানি থেকে ফ্লাস্ক আমদানি ফ্লাস্ক আমদানি জিজ্ঞাসা করুন, বিবৃতি আমদানি pexpect আমদানি আচার আমদানি পান্ডা পিডি আমদানি হিসাবে npy হিসাবে np সংগ্রহ থেকে আমদানি ডিফল্ট ডিক্ট, কাউন্টার থেকে বিপরীত_পরিদ আমদানি রিভার্স_রেডলাইন অ্যাপ = ফ্লাস্ক (_ নাম_) জিজ্ঞাসা = জিজ্ঞাসা (অ্যাপ, '/') ask.intent ('findkey' line_gen = reverse_readline ('YOUR_DATA_FILE.txt') res_lst = যখন len (res_lst)! = 20: ln = next (line_gen) যদি ln.startswith ('host'): _, ip, _, reading = ln.split পড়ুন A ': np.nan})।) [0] [0] reply_str = 'যদি অনুমান == 1: উত্তর_স্ট + +' শয়নকক্ষ 'এলিফ অনুমান == 2: reply_str += 'বাথরুম' এলিফ অনুমান == 3: reply_str += 'রান্নাঘর' এলিফ অনুমান == 4: reply_str += 'লিভিং রুম' রিটার্ন উত্তর_স্ট্র যদি _name_ == "_main_": app.run (host = '127.0.0.1', পোর্ট = '5000')

আমরা guess_locate () নামে একটি নতুন ফাংশন তৈরি করেছি যা সর্বশেষ রেকর্ড করা rssi সংকেত শক্তি সহ একটি ফাইল নেয়। এটি তখন আমাদের আচারযুক্ত xgboost মডেলের বিরুদ্ধে নমুনাগুলি চালাবে এবং সম্ভাব্য অবস্থানের স্ট্রিংটি ফেরত দেবে। অ্যালেক্সাকে অনুরোধ করা হলে এই অবস্থানটি ফেরত দেওয়া হবে। যেহেতু একটি বীকনের সাথে একটি সংযোগ স্থাপন করতে কয়েক সেকেন্ড সময় লাগতে পারে, তাই আমরা sound_alarm.py এ এই ফাংশনটিকে কল করার জন্য একটি পৃথক প্রক্রিয়া চালাই।

প্রস্তাবিত: