تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 6 از 6

نام تاپيک: خواندن داده ها از فضای پارتیشن بندی نشده C#

  1. #1
    پروفشنال afceaglee2013's Avatar
    تاريخ عضويت
    Jun 2009
    پست ها
    708

    پيش فرض خواندن داده ها از فضای پارتیشن بندی نشده C#

    سلام دوستان من فلش مموری رو پارتیشن بندی کردم و مقداری از از فضا رو به صورت unpartitioned خالی گذاشتم میخواستم بدونم امکان خوندن یا نوشتن اطلاعات از اون قسمت هست یا نه

    صد در صد مطمئن نیستم ولی بعضی نرم افزار ها مثل اینکه میتونن اینکارو انجام بدن اسمش دقیقا یادم نیست یکی از این hexViewer ها بودن

    با creatfile فک کنم بشه کارایی کرد ولی فقط فایل ها رو تونستم باز کنم در صورتی که پارتیشن ها و حتی خود دیسک رو هم به گمونم میشه باز کرد

  2. #2
    کاربر فعال تالار .Net Msba's Avatar
    تاريخ عضويت
    Dec 2006
    محل سكونت
    ! My Mind
    پست ها
    506

    پيش فرض

    شما با CreateFile می توانید. به جای اینکه آدرس فایل را بدهید و باز کنید آدرس درایو را بدهید. و آن را باز کنید:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    DriveLet درایوی است که پارتیشن بندی نشده اما نام دارد مثلا K:
    نباید K:\ باشد بلکه K: یعنی \ ندارد.
    حالت خواندن هم باید Read باشد

    در اختیار گیری یا همان FileShare هم باید Read باشد و هم Write

    FileMode هم Open باشد.

    فراموش نکنید که باید خواندن شما 512 بایت 512 بایت باشد.

    درصورت استفاده از uSD و یا مشابه ... :
    یکسری از حافظه های MMC آدرس Offset دارند که می توانید با استفاده از WMI مقدار Offset آن ها را بدست آورید.


    موفق باشید.

  3. این کاربر از Msba بخاطر این مطلب مفید تشکر کرده است


  4. #3
    پروفشنال afceaglee2013's Avatar
    تاريخ عضويت
    Jun 2009
    پست ها
    708

    پيش فرض

    ممنون از جوابتون



    این کلاس رو نوشتم
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


    برای خواندن دیتا هم
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    درایو پارتیشن بندی نشده ندارم .. روی یکی از درایو ها که fat 32 بود امتحان کردم فایل ها رو راحت میشه خوند ولی در خوندن اطلاعات درایو مشکل داره یکی اینکه همه اطلاعات رو نمیشه خوند چند سکتور اول رو میخونه حدودا 10 سکتور (512*10) و اینکه نمیتونم offset رو تغییر بدم همیشه باید صفر بمونه
    البته اینا خب چندان مهم نیست .. بزرگترین مشکل اینه که برای اینکه از این روش استفاده کنم باید حتما پارتیشن وجود داشته باشه (فرمت شده یا نشده) ولی مشکل اینه که ویندوز برای فلش مموری ها بیشتر از یک پارتیشن نمیشناسه و البته من هم اصراری ندارم پارتیشن رو نشون بده
    چیزی که من میخوام اینه:
    برنامه بتونه بدون در نظر گرفتن اینکه فضای فلش پارتیشن داره یا نه بتونه اطلاعات رو بنویسه و بخونه
    تا اونجایی که تو اینترنت دیدم بعضی ها گفته بودن میشه با این آدرس"\\.\PhysicalDisk0" و Createfile میشه به اطلاعات خام دیسک دسترسی داشت ولی من نتونستم اینکارو انجام بدم

  5. #4
    کاربر فعال تالار .Net Msba's Avatar
    تاريخ عضويت
    Dec 2006
    محل سكونت
    ! My Mind
    پست ها
    506

    پيش فرض

    روی یکی از درایو ها که fat 32 بود امتحان کردم
    زمانی که به صورت خام به دیسک ها متصل می شوید تفاوتی ندارد که پارتیشن چگونه فرمت شده باشد. این قالب بندی برای سیستم عامل ها معنا خواهد داشت.
    این مطلب برای همه ی دیسک های HC یکسان است و تفاوتی ندارد مگر دیسک های غیر از HC نظیر uSD 2GB که شما توانایی دسترسی به آدرس های بعد از HiddenSectors را خواهید داشت یعنی MBRبا این روش قابل دسترس نیست و شما به BSE متصل خواهید شد. و آدرس BSE صفر این تابع خواهد شد.
    در قبل هم بیان شد که برای متوجه شدن نوع دیسک Offset دیسک را از WMI در جدول win32_diskpartition بدست آورید.
    اینکه نمیتونم offset رو تغییر بدم همیشه باید صفر بمونه
    منظور از Offset اگر مانند قبل است که هیج. اما اگر می خواهید به نقطه خاصی از دیسک بروید:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    سپس با یک حلقه یا یک بافر نقطه مورد نظر خود را بخوانید.

    بعضی ها گفته بودن میشه با این آدرس"\\.\PhysicalDisk0" و Createfile میشه
    بله می شود اما به این نکته توجه داشته باشید شما با این کار دیگر دسترسی به درایو ها ندارید یعنی اگر یک هارد 5 درایو داشته باشد کل آن ها بارگذاری می شود و با اندکی تغییر در سکتور های آغازین کل دیسک مختل می شود.
    با استفاده از همان DriveLet هم می شود در فلش ها نوشت و خواند بدون مشکل. استفاده از PhysicalDisk هم کل دیسک رو به شما می دهد اما در برخی اوقات با Permission ویندوز رو به رو خواهید شد. این مجوز UAC نیست بلکه پروتکت ویندوز است. این طور که من متوجه شدم یکسری ویندوز ها مجوز می دهند و یکسری هم نمی دهند. این به Build، نسخه و حتی مدل ویندوز دارد مثلا 7،Vista و...

    من مفهوم جملات آخر شما را خوب متوجه نشدم با این حال امیدوارم که توضیحات فوق مفید باشد.

    موفق باشید.

  6. این کاربر از Msba بخاطر این مطلب مفید تشکر کرده است


  7. #5
    پروفشنال afceaglee2013's Avatar
    تاريخ عضويت
    Jun 2009
    پست ها
    708

    پيش فرض

    بله می شود اما به این نکته توجه داشته باشید شما با این کار دیگر دسترسی به درایو ها ندارید یعنی اگر یک هارد 5 درایو داشته باشد کل آن ها بارگذاری می شود و با اندکی تغییر در سکتور های آغازین کل دیسک مختل می شود.
    راستش قضیه اینه که یه نفر از من خواسته یه سری اطلاعات رو در فلش به صورتی که اصلا امکان پاک شدن نداشته باشه کپی کنم .. نمیخوام از نرمافزار هایی که محدودیت دسترسی ایجاد میکنن استفاده کنم(تا حالا استفاده نکردم ) چون در هر صورت فلش باید قابل فرمت باشه و چون در هنگام فرمت جدول فایل ها پاک میشه به نظرم هیچ راهی وجود نداره .. من هم به نظرم رسید که فلش رو پارتیشن بندی کنم(حجم پارتیشن مقداری کمتر از حجم واقعی فلشه) چون ویندوز در حالت عادی فقط پارتیشن اول رو میبینه .. بنابراین اطلاعاتی که خارج از پارتیشن قرار دارن به هیچ وجه توسط ویندوز یا نرمافزار دیگه ای نمیتونه شناخته یا خوانده و پاک بشه

    با استفاده از همان DriveLet هم می شود در فلش ها نوشت و خواند بدون مشکل. استفاده از PhysicalDisk هم کل دیسک رو به شما می دهد اما در برخی اوقات با Permission ویندوز رو به رو خواهید شد. این مجوز UAC نیست بلکه پروتکت ویندوز است. این طور که من متوجه شدم یکسری ویندوز ها مجوز می دهند و یکسری هم نمی دهند. این به Build، نسخه و حتی مدل ویندوز دارد مثلا 7،Vista و...
    پس قضیه پیچیده شد چون من اصلا نمیدونم کجا رو باید تغییر بدم .. اینطور که پیداس مثل اینکه حتی یوزر های ادمین هم شامل این قضیه میشن..

  8. #6
    کاربر فعال تالار .Net Msba's Avatar
    تاريخ عضويت
    Dec 2006
    محل سكونت
    ! My Mind
    پست ها
    506

    پيش فرض

    پس شما راهی جز خوندن MBR نداری. وقتی MBR رو بخونی آدرس پارتیشن ها رو داری. کافیه به اون نقطه بری و سپس اطلاعاتت رو قرار بدی. برای خواندن MBR می توانید:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    طول MBR رو یک جستجو بکنید پیدا می کنید.
    این [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] نیز راهنمای یافتن آدرس ها در MBR هست.

    حال که آدرس پارتیشن دوم را دارید (که درایو لتر ندارد) کافیست تا حالت نوشتن را به FileStream داده و به آن نقطه بروید و هرچه می خواهید بنویسید و هر چه می خواهید پاک کنید.
    حواستان به پروتکت ویندوز نیز باشد. خدا رو شکر الان که امتحان کردم ویندوز بهم گیر نداد ولی قبلا هیچ رقم راه نمی اومد.

    موفق باشید.

  9. این کاربر از Msba بخاطر این مطلب مفید تشکر کرده است


Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •