پیدا کردن پسورد وای فای با پایتون
![پیدا کردن پسورد وای فای با پایتون](https://jetamooz.com/wp-content/uploads/2021/04/wifi.jpg)
پیدا کردن پسورد وای فای با پایتون
هنگام اتصال به وای فای، باید برخی رمزها را برای دسترسی به شبکه وارد کنیم، اما مستقیماً نمی توانیم رمز عبوری را که قبلاً وارد کرده ایم (رمز شبکه ذخیره شده) را ببینیم. در این مقاله نحوه پیدا کردن پسورد وای فای با پایتون و ماژول subprocess را بررسی خواهیم کرد که میتواند اطلاعات تمام وای فای های ذخیره شده را ائم از نام وای فای و پسورد آن به ما نشان دهد.
وای فای یک فناوری شبکه بی سیم است که اجازه می دهد دستگاه هایی مانند رایانه، تلفن همراه و سایر تجهیزات با اینترنت ارتباط برقرار کنند.
کد ابزار پیدا کردن پسورد وای فای با پایتون
![پیدا کردن پسورد وای فای با پایتون](https://jetamooz.com/wp-content/uploads/2021/04/wifi.png)
در محله اول باید ماژول subprocess را فراخوانی کنیم.
import subprocess
متغییری با نام data تعریف میکنیم و با استفاده از ماژول subprocess و متد check_output دستورات مورد نیاز برای دریافت نام شبکه هایی که قبلا به آن ها متصل شده ایم را دریافت میکنیم. بعد از دریافت آن ما نیاز داریم تا آن ها را به صورت رمزگشایی (decode) شده به کاربر نشان دهیم.
در خط بعد با تعریف کردن لیست و با استفاده از حلقه for دستور شرطی می گوییم اگر All User Profile درون متغیر data یافت شد آیتم های آن را در i ذخیره کند و i را با کمک متد split() به لیست تبدیل کرده و ایندکس اول آن را نشان دهد و در متغییر profiles قرار دهد.
All User Profile نام شبکه های متصل شده در متغییر data به صورت لیست است و در All User Profile ذخیره شده است و برای دریافت نام ها از حلقه for و دستور شرطی استفاده می کنیم.
دریافت نام های شبکه
data = subprocess.check_output(['netsh', 'wlan', 'show', 'profiles']).decode('utf-8', errors="backslashreplace").split('\n') profiles = [i.split(":")[1][1:-1] for i in data if "All User Profile" in i]
در ادامه با کمک حلقه for مقادیر متغیر profiles را در i قرار میدهیم. در بدنه حلقه for بلوک try را تعریف میکنم و دو متغیر برای دریافت رمزها تعریف می کنیم. متغییری با نام results تعریف میکنیم و با استفاده از ماژول subprocess و متد check_output دستورات مورد نیاز برای دریافت رمز عبور شبکه هایی که قبلا به آن ها متصل شده ایم را دریافت میکنیم تا به صورت رمزگشایی(decode) شده به کاربر نشان دهیم.
در خط بعد با تعریف کردن لیست و با استفاده از حلقه for دستور شرطی می گوییم اگر Key Content درون متغیر results یافت شد آیتم های آن را در b ذخیره کند و b را با کمک متد split() به لیست تبدیل کند و می گوییم ایندکس اول آن را نشان دهد و در متغییر results قرار دهد.
results نام شبکه های متصل شده در متغییر data به صورت لیست است و در results ذخیره شده است و برای دریافت نام ها از حلقه for و دستور شرطی استفاده می کنیم.
دریافت پسورد های وای فای
for i in profiles: try: results = subprocess.check_output(['netsh', 'wlan', 'show', 'profile', i, 'key=clear']).decode('utf-8', errors="backslashreplace").split('\n') results = [b.split(":")[1][1:-1] for b in results if "Key Content" in b]
یک بلوک try برای مدیریت خطاها ها و نشان دادن خروجی به کاربر تعریف می کنیم و از Fstring برای نشان دادن نام و پسورد شبکه ها استفاده می کنیم و با استفاده از except IndexError ارورهای Index را مدیریت می کنیم تا ارور دلخواه ما نشان داده شود.
try: results = subprocess.check_output(['netsh', 'wlan', 'show', 'profile', i, 'key=clear']).decode('utf-8', errors="backslashreplace").split('\n') results = [b.split(":")[1][1:-1] for b in results if "Key Content" in b] try: print ("{:<30}| {:<}".format(i, results[0])) except IndexError: print ("{:<30}| {:<}".format(i, ""))
except اخر برای مدیریت خطا هنگام پردازش روی شبکه است.
except subprocess.CalledProcessError: print ("{:<30}| {:<}".format(i, "ENCODING ERROR"))
خیلی ممنون که تا به اینجا همراه بودید.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.