واضح آرشیو وب فارسی:سایت ریسک: tajrobenik22-01-2009, 12:46 PMمن ميخوام بدونم فايلي رو ميشه در حدي قفل كرد كه تو ويندوز در حالت ادمين هيچ كاري روش نشه انجام داد.... حتي نشه از اون كپي گرفت. چه برسه به دليت اين كار شدنيه؟؟؟؟ tajrobenik22-01-2009, 12:47 PMراستي اگه تايپيك رو نبايد اين جا ميزاشتم لطفا مكان درستش كه اونجا بزارم رو بگين... tajrobenik30-01-2009, 12:43 AMميبينم كه تا حالا چهل چهار نفر اين تايپيك رو ديدن اما هيچ كي جواب نداده..... خوب يه مثال ميزنم مثله فايله سم تو دايركتوري سيستم سيو دو!!!!! __________________ tajrobenik.mihanblog.com _H2_30-01-2009, 01:16 AMسلام در واقع هیچ راه حتمی و قطعی برای اینکار وجود ندارد و فوقش میتوانید جلوی فضولی ها را بگیرد و نمیتوانید مانعی مستحکم برای کاربری حرفه ای ایجاد کنید. در ایمن خصوص سه مطلب وجود دارد که در دو در صورت داشتن یک برنامه (مثلاً یک exe در حال اجرا) معنی پیدا میکند. 1- شما میتوانید کد هشی بنویسید و به راحتی متوجه شوید که فایل دیتای برنامه تغییر کرده و برنامه اجرا نشود. یعنی میتوان کاری کرد که اگر فایل تغییر کرد برنامه اجرا نشود. 2- شما میتوانید فایل دیتا را به صورت انحصاری Open کنید اینکار میتواند مانع خواندن و نوشتن و کپی برداری فایل توسط سایر پروسه ها شود (مثل همان SAM) ولی طبیعی خواهد بود که کاربر میتوان exe شما را از RAM به بیرون شوت کند و هر کاری که میخواهد بکند. البته در نهایت اگر چینین کاری را با خود exe هم انجام دهید، طبیعی خواهد بود که دیگر در خود exe هم نمیتوانید به صورت معمول از فایل دیتای مذکور استفاده کنید و آن را تحویل ابزارآلات دیگر دهید. (مثلاً اگر یک فایل صوتی باشد و بخواهید مسیرش را به کامپونتی بدهید تا آن را پخش کند، طبیعتاً آن کامپونت هم در دسترسی ناکام خواهد ماند و صوت شما پخش نخواهد شد.) 3- شما میتوانید فایل مذکور را رمزنگاری و کدینگ کنید تا کپی برداری از آن فایده ای نداشته باشد. (ولی اینکار هم استفاده از فایل را با دادن مسیر و استفاده در سایر ابزارآلات غیر ممکن میکند و باید از آن به صورت بافری و جریانگرا درRAM استفاده کرد.) *Batman*30-01-2009, 01:18 AMسلام. این کارها با پرمیشن های خود ویندوز انجام میشه. مثلا امکان Full Control را از کاربر سلب می کنید. اون SAM File هم همینجوریه. تو Safe Mode کپی و حذف هم میشه.:27: تازه تو حالت نرمل فکر کنم ReadOnly باشه.چون Hash Code رو ازش میکشن بیرون.(زیاد مطمئن نیستم.اگر اشتباه میکنم عذر میخوام) tajrobenik30-01-2009, 04:12 PMراهمايي هاتون عالي بود.... اين جوري كه من فهميدم اگه چنين كاري بكني ديگه نميتوني از فايل مربوطه استفاده كني مگه اين كه exe در حال اجرا رو بايكد كني. خوب ايول اين رو كه كسي خبر نداره! يه exe ميچسبونيم به فايل تا كسي نتونه كپي كنه.... . شما میتوانید فایل دیتا را به صورت انحصاری Open کنید اینکار میتواند مانع خواندن و نوشتن و کپی برداری فایل توسط سایر پروسه ها شود در اين مورد بيشتر توضيح بدين! كه چه طوري؟ __________________ tajrobenik.mihanblog.com _H2_01-02-2009, 01:17 PMسلام در اين مورد بيشتر توضيح بدين! كه چه طوري؟ مثلاً با کدهای زیر: !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! تا اجرا نشدن کد Dispose هر گونه دسترسی به فایل file.txt به غیر از شی file غیر ممکن است. نه میتوانید محتویاتش را باز کنید ومشاهده کنید و نه میتوانید کپی اش کنید و نه حذف و... ( چه خود شما و برنامه شما و چه کاربر، تنها کانال ارتباطی منحصر به فرد شی file موجود خواهد بود. یکسری از برنامه ها که بسیار دیتاگرا هستند به همچین قفلهای انحصاری روی فایلهایشان نیاز دارند. ) ضمناً تاپیک زیر هم سوالات و مباحثی مطرح کرده که فکر کنم کمی شبیه مشکل شما باشد. forum.p30world.com/showthread.php?t=289044 tajrobenik02-02-2009, 02:35 PMاستاد خيلي ممنون....اما ميشه بگين اين كد ها رو بايد كجا بريزم؟؟؟؟ _H2_03-02-2009, 10:06 AMسلام بگين اين كد ها رو بايد كجا بريزم؟؟؟؟ کد خام است میتوانید هر کجایی استفاده کنید، میتوانید تعریف file را در سطح کلاس انجام دهید و سپس ... در شروع برنامه کد new را اجرا کنید و در پایان و زمان بسته شدن برنامه کد dispose یا یک دکمه اولی داشته باشید که فایل را قفل کند و کد new را اجرا کند و یک دکمه دومی داشته باشید که فایل را آزاد کند و کد dispose را اجرا کنید و... *Batman*04-02-2009, 01:37 AMسلام. جناب _h2_منم یه سوال داشتم: با توجه به کدهای بالا اگه برنامه ما به هر نحوی بسته بشه، فایل ما قابل حذف،کپی،جابجایی و . . . هست؟ _H2_04-02-2009, 02:18 AMسلام با توجه به کدهای بالا اگه برنامه ما به هر نحوی بسته بشه، فایل ما قابل حذف،کپی،جابجایی و . . . هست؟ با اطمینان نمیتوانم جواب قطعی دهم. ولی در دات نت با توجه به حافظه مدیریت شده و جمع آوری کننده حافظه هرز بسیار بعید است فایل همچنان قفل بماند. یعنی حتی با هنگ کردن و عدم اجرای دستور close یا dspose هم بالاخره برنامه جاری از RAM خارج میشود و نهایتاً جمع آوری کننده حافظه هرز اشیای باقی مانده را پاک سازی میکند و قفل فایل باز میشود. ( البته این مطلب اصلاً توجیح خوبی برای یک برنامه قانونی و مجاز نیست که برنامه نویس تنبلی کند و تضمینی بر اجرای Dispose ارائه ندهد. در یک برنامه عادی و به توسیه مایکروسافت شی ای که واسط IDisposable را دارد، برنامه نویس باید تضمین کند Dispose اجرا شود. ) ولی در مورد کدهای Native با توجه به اینکه بازکردن یک فایل فقط یک اشاره گر عددی 32 بیتی باز میگرداند، احتمالاً اگر خو.د برنامه اشاره گر را نبندد، اشاره گر و RAM تخصیص داده شده و قفلها و... تا ریست بعدی پابرجا میماند. که قالباً شاهد آن هم هستیم و فایلی را میخواهیم پاک کنیم ولی ویندوز میگوید دارد استفاده میشود و پاکش نمیکند! در حالی که برنامه ای که فایل را استفاده میکرده ما بسته ایم. (جالب است که این مشکل آنقدر اعصاب برخی را خرد کرده که برای رفع این مشکل یک شرکت یک برنامه سفارشی عرضه کرده تا قفل را باز کند و بتوانید فایل را بدون ریست حذف کنید!!!) ===== در مورد بخش دات نتی همین الآن چند بار چک کردم و با بسته شدن برنامه بدون اجرای Dispose و حتی EndTask برنامه، هربار قفل فایل آزاد و فایل مجدداً قابل ادیت و دستکاری بود. موفق باشید. سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 173]