PDA

View Full Version : انکریپت درایو



daniyaltjm
سه شنبه 11 شهریور 1399, 13:51 عصر
سلام توی سی شارپ چطور میشه خود یک درایو یا یک پارتیشن رو اینکریپت کرد؟ حالا یا مثلا فلش یا هارد دیسک... اصلا توی سی شارپ شدنیه؟ چون دسترسی سطح پایین میخواد.:متفکر:

daniyaltjm
چهارشنبه 02 مهر 1399, 21:21 عصر
سلام کسی ایده ایی ندارد؟ :چشمک:

the king
چهارشنبه 02 مهر 1399, 21:58 عصر
سلام توی سی شارپ چطور میشه خود یک درایو یا یک پارتیشن رو اینکریپت کرد؟ حالا یا مثلا فلش یا هارد دیسک... اصلا توی سی شارپ شدنیه؟ چون دسترسی سطح پایین میخواد.:متفکر:

در #C صرفا می توانید به ابزار هایی مثل VeraCrypt (https://www.veracrypt.fr/code/VeraCrypt/plain/doc/html/Command%20Line%20Usage.html?id=4a7ed6926b276cf88c2 485ea2a5e95b7f91e4ac1) فرمان بدهید که پارتیشن بسازه، Mount و Unmount کنه و ... اما مستقلا در #C نمی توانید روتین های سیستمی رو انجام بدهید.
البته یک کار دیگه هم می توانید در #C انجام بدهید، می توانید سیستم فایل ویندوز رو بذارید کنار و یک سیستم فایل مجازی اختصاصی طراحی کنید که برای خودش مفاهیم فایل و پوشه داشته باشه و بعد برای مدیریت این سیستم فایل مجازی یک Explorer اختصاصی طراحی کنید (نه Explorer خود ویندوز)، کنترل ListView هم که هست و برای ساختن Explorer اختصاصی بدردتون میخوره.

daniyaltjm
پنج شنبه 03 مهر 1399, 19:22 عصر
سپاس بابت پاسخ دادنتون،



در #C صرفا می توانید به ابزار هایی مثل
VeraCrypt (https://www.veracrypt.fr/code/VeraCrypt/plain/doc/html/Command%20Line%20Usage.html?id=4a7ed6926b276cf88c2 485ea2a5e95b7f91e4ac1)
فرمان بدهید که پارتیشن بسازه، Mount و Unmount کنه و ...

ممنون میشم یکم بیشتر در موردش صحبت کنید و در مورد اینکریپت درایو ازش مثال بزنید .



اما مستقلا در #C نمی توانید روتین های سیستمی رو انجام بدهید.

میشه بگین سیشارپ چرا این ضعف ها رو داره؟ و اینکه با ++C میشه این کارو کرد؟



البته یک کار دیگه هم می توانید در #C انجام بدهید، می توانید سیستم فایل ویندوز رو بذارید کنار و یک سیستم فایل مجازی اختصاصی طراحی کنید که برای خودش مفاهیم فایل و پوشه داشته باشه و بعد برای مدیریت این سیستم فایل مجازی یک Explorer اختصاصی طراحی کنید (نه Explorer خود ویندوز)، کنترل ListView هم که هست و برای ساختن Explorer اختصاصی بدردتون میخوره.



ببخشید ولی مگه سیستم فایل ساختن به این سادگیه؟ یکم بیشتر توضیح بدین لطفا.

با سپاس

the king
پنج شنبه 03 مهر 1399, 21:01 عصر
ممنون میشم یکم بیشتر در موردش صحبت کنید و در مورد اینکریپت درایو ازش مثال بزنید .

موضوع سوال تون برنامه نویسی نیست، صرفا معرفی یک نرم افزار ئه. پیشنهاد می کنم ابزار VeraCrypt رو نصب کنید و باهاش آشنا شوید.
از اونجایی که VeraCrypt دستورات Command Line مشخصی رو قبول می کنه می توانید با #C و اغلب زبان های برنامه نویسی دیگه بهش دستور بدهید تا اغلب کارهایی که در محیط نرم افزارش قابل انجامه رو در با دستور دادن برنامه خودتون هم انجام بدهید.



میشه بگین سیشارپ چرا این ضعف ها رو داره؟ و اینکه با ++C میشه این کارو کرد؟

هر زبانی و هر کامپایلری یکسری ویژگی هایی داره، این ویژگی ها برای بعضی کاربرد ها مزیت ئه و برای بعضی کاربرد ها عیب.
برای همین هر زبانی و هر کامپایلری برای یکسری کاربرد هایی خیلی مناسبه و برای یکسری کاربردهایی مناسب نیست.
#C یک زبان برنامه نویسی سطح بالا است، برنامه هاش در سطح کاربری اجرا میشه، ارتباط مستقیمی با سخت افزار برقرار نمی کنه، کامپایلرش کد میانی تولید می کنه، اجراش تحت ماشین مجازی انجام میشه، مدیریت منابع اش خودکار ئه و ...

اما برنامه نویسی برای روتین های اساسی سیستم عامل و هسته سیستم عامل و درایور نویسی و ... نیاز به زبان ها و کامپایلر هایی داره که یکسری ویژگی هایی رو داشته باشند.
مثلا خروجی کامپایلر شون کد ماشین پردازنده واقعی باشه، برنامه نویس بتونه منابع رو خودش مدیریت کنه، خروجی کامپایلر شون برای اجرا شدن در سطح سیستمی مناسب باشه، زبان برنامه نویسی شون سطح پایین باشه، با سخت افزار بتوانند ارتباط مستقیم برقرار کنند و ... دقیقا ویژگی هایی که C++‎‎‎‎‎‎/C و کامپایلر های این زبان ها دارند.



ببخشید ولی مگه سیستم فایل ساختن به این سادگیه؟ یکم بیشتر توضیح بدین لطفا.

اتفاقا یکی از موضوعات عمومی که در دانشگاه به عنوان پروژه پایانی درس آزمایشگاه سیستم عامل از دانشجو ها میخواهند همین طراحی یک سیستم فایل ئه. اگر خیلی سخت یا زمانبر بود که از تک تک دانشجو های یک کلاس همچین پروژه ای رو نمیخواستند.
سیستم فایل واقعی با سخت افزار واقعی و سکتور و کلاستر و دیسک سر و کار داره، در نتیجه بخاطر پیچیدگی های ارتباط با سخت افزار و مدیریت درخواست های همزمان و ... طراحی اش پیچیده است.

اما در سیستم فایل مجازی، شما بخش عمده کار رو آماده از سیستم فایل واقعی تحویل میگیرید، نه مستقیما از دیسک. یک منبع فرضا یک فایل C:\My Folder\disk.dat رو بستر سیستم فایل مجازی خودتون قرار می دهید و تمامی ساختار این سیستم فایل رو در همین تک فایل disk.dat پیاده سازی می کنید، دقیقا شبیه یک فایل غیر فشرده iso که تصویری از محتویات یک CD / DVD ئه، وقتی یک فایل iso رو با UltraISO یا PowerISO و ... باز می کنید و ویرایش می کنید، عملا یک سیستم فایل مجازی رو در Explorer مخصوصش مدیریت کرده اید.
شما هم یک سیستم فایل مجازی طراحی می کنید که با Explorer اختصاصی شما قابل ویرایش ئه و اطلاعاتش هم بصورت کد گذاری شده ذخیره میشه، مثل فایل rar که password داره و داخلش یکسری فایل و پوشه است.

daniyaltjm
پنج شنبه 03 مهر 1399, 21:31 عصر
یک منبع فرضا یک فایل C:\My Folder\disk.dat رو بستر سیستم فایل مجازی خودتون قرار می دهید و تمامی ساختار این سیستم فایل رو در همین تک فایل disk.dat پیاده سازی می کنید، دقیقا شبیه یک فایل غیر فشرده iso که تصویری از محتویات یک CD / DVD ئه، وقتی یک فایل iso رو با UltraISO یا PowerISO و ... باز می کنید و ویرایش می کنید، عملا یک سیستم فایل مجازی رو در Explorer مخصوصش مدیریت کرده اید.
شما هم یک سیستم فایل مجازی طراحی می کنید که با Explorer اختصاصی شما قابل ویرایش ئه و اطلاعاتش هم بصورت کد گذاری شده ذخیره میشه، مثل فایل rar که password داره و داخلش یکسری فایل و پوشه است.
پس در واقع با این کار پارتیشن رو نمیشه اینکریپت کرد و یک فایل میسازیم که مثل یک دیتابیس پرتابل عمل میکنه درسته؟ حالا توی این فایل dat فقط اطلاعات فایل ها و پوشه ها ذخیره میشن یا خود فایل ها و پوشه ها؟ حالا اگه مثلا بخوایم یک فلش رو اینکریپت کنیم که اصلا نشه بازش کرد چی؟! فکر کنم اینجا به مشکل بخوره سیستم فایل مجازی.

the king
جمعه 04 مهر 1399, 00:09 صبح
پس در واقع با این کار پارتیشن رو نمیشه اینکریپت کرد و یک فایل میسازیم که مثل یک دیتابیس پرتابل عمل میکنه درسته؟

بله.


حالا توی این فایل dat فقط اطلاعات فایل ها و پوشه ها ذخیره میشن یا خود فایل ها و پوشه ها؟

هر دو، هم مشخصات فایل ها و پوشه ها و هم داده های داخلشون.



حالا اگه مثلا بخوایم یک فلش رو اینکریپت کنیم که اصلا نشه بازش کرد چی؟! فکر کنم اینجا به مشکل بخوره سیستم فایل مجازی.
کاری است که VeraCrypt میکنه.

daniyaltjm
جمعه 04 مهر 1399, 10:06 صبح
میشه یک نمونه از سیستم فایل مجازی (اگه به زبان سی شارپ هست) رو قرار بدین؟



موضوع سوال تون برنامه نویسی نیست، صرفا معرفی یک نرم افزار ئه. پیشنهاد می کنم ابزار VeraCrypt رو نصب کنید و باهاش آشنا شوید.
از اونجایی که VeraCrypt دستورات Command Line مشخصی رو قبول می کنه می توانید با #C و اغلب زبان های برنامه نویسی دیگه بهش دستور بدهید تا اغلب کارهایی که در محیط نرم افزارش قابل انجامه رو در با دستور دادن برنامه خودتون هم انجام بدهید.


و اگر میشه به برنامه دستور داد باید یک واسطی باشه مثل یک API چون این VeraCrypt خودش یک برنامه جدا هست؟!

the king
جمعه 04 مهر 1399, 14:44 عصر
میشه یک نمونه از سیستم فایل مجازی (اگه به زبان سی شارپ هست) رو قرار بدین؟

خیر.



و اگر میشه به برنامه دستور داد باید یک واسطی باشه مثل یک API چون این VeraCrypt خودش یک برنامه جدا هست؟!
یک برنامه جدا است، برای ارتباط هم همانطور که قبلا گفتم از فرمان های Command Line استفاده می کنید.
لینک فرمان های Command Line (https://www.veracrypt.fr/code/VeraCrypt/plain/doc/html/Command%20Line%20Usage.html?id=4a7ed6926b276cf88c2 485ea2a5e95b7f91e4ac1) اش رو در همون پست اولم قرار داده بودم. اگه اون صفحه رو ببینید، مشخص کرده که فرمان ها چیه، فلان فرمان سوئیچ هاش چیه و اجرا بشه چیکار میکنه.