PDA

View Full Version : سوال: امنیت فایل های برنامه



فاطمه وطن دوست
دوشنبه 13 آبان 1387, 09:15 صبح
سلام
برای بالا رفتن امنیت فایل های برنامه چی کار باید کرد؟

....::: مثال :::......
فرض کنید در کنار برنامه پوشه ی تصاویر هست برای اینکه این پوشه از هرگونه تغییری(تغییر نام – حذف و جابه جایی و...) مصون بمونه چه روشی باید به کار گرفت ؟

فاطمه وطن دوست
دوشنبه 13 آبان 1387, 12:58 عصر
این پاسخ یکی از دوستان هست .

click.1387 http://barnamenevis.org/forum/images/statusicon/user_offline.gif
سلام
در مورد امنیت فایل باید از کلیدهای رجیستری استفاده کنید که به راحتی می توانید این کار رو انجام بدید در اصل باید توسط کلید رجیستری نگهداری کنید
در روش بعدی برنامه ای می توانید بنویسید که پوشه مورد نظر را قفل کند
در مورد بعدی می توانید کاری کنید که اصلا کاربری نتواند وارد آن بشود و وقتی خودتان می خواهید برنامه را اجرا کنید دسترسی به آن فعال شود البته با رمز . دقیقا مثل پایگاه داده ها که برایش رمز می گذاریم و در برنامه با رمز وارد می شویم
امیدوارم که فهمیده باشید من خودم این کار رو از طریق روش اول و دوم انجام دادم.

فاطمه وطن دوست
دوشنبه 13 آبان 1387, 19:20 عصر
سلام دوستان چرا جواب نمیدید؟
این دوستمون درست میگن ؟
یا راه بهتری هم هست مثلا استفاده از یه نرم افزار که برنامه اجرائی رو با عکسا بهم بچسبونه ، همچین نرم افزاری هست ؟

hamed aj
دوشنبه 13 آبان 1387, 23:34 عصر
با سلام

اگر منظورتون فقط فایل های جانبی برنامه هست (نه فایل(های) اجرایی) :
نظر من اینه که روی ایجاد Permission برای فایل ها و پوشه ها کار کنید. البته برای اینکار یا باید installer برنامه رو خودتون بنویسید تا بتونید بعد از کپی کردن، permission رو هم ست کنید. یا اینکه به زبان های Script روی بیارید (و در هنگام نصب Script رو اجرا کنید)

موفق باشید

مهران رسا
سه شنبه 14 آبان 1387, 09:01 صبح
سلام .

راه دیگه ای هم وجود داره . اینکه تمامی فایل های مربوطه رو به صورت Resource به فایل exe اضافه کنید و با هر بار اجرای فایل exe ، پوشه ها و فایل های مورد نیاز رو ایجاد کنید.

Mbt925
سه شنبه 14 آبان 1387, 10:32 صبح
باید اول شرایط رو بررسی کرد.

- اگه تعداد تصاویر ثابته و خیلی زیاد نیست میشه از ریسورس استفاده کرد و هر بار که برنامه اجرا میشه، تصاویر رو استخراج کنه و باهاشون کار کنه.

اگه تصاویر به مرور به پوشه مربوطه اضافه میشن، باید محافظت رو برروی خود پوشه اعمال کرد.
روش هایی هست که هیچ کدوم کامل نیست.
یکی از این روش ها، تغییر نام پوشه هست، طوری که به یکی از مسیرهای سیستمی تبدیل میشه و وقتی روش کلیک میشه، مسیر سیستمی مربوطه باز میشه.
این روش در خود بخش توضیح داده شده و یه سری مسیر های سیستمی هم معرفی شده، مثل کنترل پنل و....

l3ai3ak
سه شنبه 14 آبان 1387, 10:45 صبح
شاید اگر عکس ها را داخل دیتابیس بذاری بهتر باشه . لازم هم نیست همه اونارو اکسترکت کنی .هر کدام را که لازم داشتی را اکسترکت میکنی .
با توجه به این که هر قفلی کلیدی داره . به نظرم این روش امن تر از ریسورس هست چون نرم افزار های ریسورسر به راحتی میتونند عکس ها را در بیارند .هرچند که نرم افزار های زیادی هم برای در اوردن پسورد فایل های دیتابیبس وجود داره .

VB.SOS
سه شنبه 14 آبان 1387, 10:52 صبح
در مورد امنیت فایل باید از کلیدهای رجیستری استفاده کنید که به راحتی می توانید این کار رو انجام بدید در اصل باید توسط کلید رجیستری نگهداری کنید
در روش بعدی برنامه ای می توانید بنویسید که پوشه مورد نظر را قفل کند
در مورد بعدی می توانید کاری کنید که اصلا کاربری نتواند وارد آن بشود و وقتی خودتان می خواهید برنامه را اجرا کنید دسترسی به آن فعال شود البته با رمز . دقیقا مثل پایگاه داده ها که برایش رمز می گذاریم و در برنامه با رمز وارد می شویم
امیدوارم که فهمیده باشید من خودم این کار رو از طریق روش اول و دوم انجام دادم.

خانم وطن دوست خودتون اين رو به طور كامل بلديد؟

فاطمه وطن دوست
سه شنبه 14 آبان 1387, 11:02 صبح
-

اگه تعداد تصاویر ثابته و خیلی زیاد نیست میشه از ریسورس استفاده کرد و هر بار که برنامه اجرا میشه، تصاویر رو استخراج کنه و باهاشون کار کنه.

1- تصاویر زیاد هست .




اگه تصاویر به مرور به پوشه مربوطه اضافه میشن، باید محافظت رو برروی خود پوشه اعمال کرد.

2- نمیشه گفت به مرور به پوشه مربوطه اضافه میشن

1 & 2 ==> تصاویر زیاد هست و از طریق خود برنامه قرار نیست به پوشه تصاویر که در کنار برنامه گذاشته شده اضافه بشه . در واقع قراره تصاویر به برنامه فراخوانی بشن .




روش هایی هست که هیچ کدوم کامل نیست.
یکی از این روش ها، تغییر نام پوشه هست، طوری که به یکی از مسیرهای سیستمی تبدیل میشه و وقتی روش کلیک میشه، مسیر سیستمی مربوطه باز میشه.
این روش در خود بخش توضیح داده شده و یه سری مسیر های سیستمی هم معرفی شده، مثل کنترل پنل و...
این روش هم که حذف میشه .

فاطمه وطن دوست
سه شنبه 14 آبان 1387, 11:06 صبح
خانم وطن دوست خودتون اين رو به طور كامل بلديد؟

سلام
کار با رجیستری رو چندان بلد نیستم ولی تونستم یه فایل با پسوند شخصی ایجاد کنم.

در مورد روش دوم و سوم اینکه بخوام برای پوشه رمز گذاشته بشه ، (اگر منظور با استفاده از اسکریپت و ...
هست ) ، نه.

در واقع هنوز متوجه نشدم که منظور ایشون از رمز گذاشتن روی پوشه ، از طریق اسکریپت نویسیه یا استفاده از نرم افزار خاص یا ....

Mbt925
سه شنبه 14 آبان 1387, 11:15 صبح
اگه بخواید از دید حرفه ای به این قضیه نگاه کنید،
قفل کردن اینچنینی یک پوشه کاملا بی معنیه.

هر نرم افزاری یک کاربر داره و کاربر باید طرز کار با نرم افزار رو بلد باشه.
نرم افزارهایی که با فایلی در حافظه وابسته هستن، نباید قفل و یا روش های اینچنینی بر روی اون اعمال کنن.
1 نرم افزار مثال بزنید که این کار رو کرده باشه!

وقتتون رو صرف اینطور کارها نکنید، به نرم افزارتون و کیفیتش متمرکز بشید.

فاطمه وطن دوست
سه شنبه 14 آبان 1387, 15:00 عصر
سلام

آره قبول دارم ، تو نرم افزاری های این چنینی مثلا http://i34.tinypic.com/2jajdyc.jpg فایل ها تو خود برنامه
import میشن .

قفل کردن اینچنینی یک پوشه کاملا بی معنیه .

debugger
سه شنبه 14 آبان 1387, 16:13 عصر
شما برای اینکه عکس ها را از دسترس کابران محفوظ کنید

بهتره یه اینکریپشن برای برنامه بنویسید . یعنی تمام عکس ها را به صورت اینکریپت شده در فولدری که میخواهین بزارین و موقع استفاده در برنامه می تونید عکس ها را دکریپت کنید

یعنی یه دکریپت اوتوماتیک می نویسید که برنامه موقع استفاده و صدا کردن عکس اونو دکریپت کنه و نمایش بده . این کار به قدری سریع انجام میشود که کاربر اصلا متوجه نمی شود

r0ot$harp
سه شنبه 14 آبان 1387, 18:22 عصر
سلام
برای بالا رفتن امنیت فایل های برنامه چی کار باید کرد؟

....::: مثال :::......
فرض کنید در کنار برنامه پوشه ی تصاویر هست برای اینکه این پوشه از هرگونه تغییری(تغییر نام – حذف و جابه جایی و...) مصون بمونه چه روشی باید به کار گرفت ؟


خانم وطن دوست برای این کار من خیلی گشتم ولی واقعا به هیچ نتیجه ای نرسیدم . من بیشتر رو این موندم که KasperSky چگونه کاری کرده که فایل های مربوط به خودش رو نمی شه جابه جا کار مگر اینکه تیک مربوط Enable Self-Defense رو از گزینه هاش حذف کنیم .





باتشکر احسان

VB.SOS
سه شنبه 14 آبان 1387, 22:10 عصر
به نظر شما با چك كردن ليست پيغام هاي ويندوز نميشه فهميد چه فايل هايي در حال جابجايي و يا حذف شدن هستن؟

r0ot$harp
سه شنبه 14 آبان 1387, 22:23 عصر
به نظر شما با چك كردن ليست پيغام هاي ويندوز نميشه فهميد چه فايل هايي در حال جابجايي و يا حذف شدن هستن؟

دوست عزیز این کار از طریق Hook انجام می شه و شدنی هست .



ولی هنوز روش کار نکردم .





باتشکر احسان

VB.SOS
سه شنبه 14 آبان 1387, 22:37 عصر
احسان جان چون شما تو اين مورد آشنايي دارين لطف كنين روش كار كنيد و نتيجه رو به ما هم بگين. با تشكر

vbhamed
چهارشنبه 15 آبان 1387, 01:28 صبح
سلام
من با روش debugger رو پيشنهاد مي كنم، البته مي تونيد براي سرعت بالاتر فقط مقداري از هدر فايل يعني چند بايت اول رو انكريپت كنيد و بعد موقع استفاده ديكريپت
كافيه فايل رو به صورت باينري باز كنيد و چند بايت اول رو بخونيد و در ساده ترين حالت هر بايت رو با يك عدد xor كنيد، موقع استفاده هم باز با همون عدد xor كنيد

debugger
چهارشنبه 15 آبان 1387, 09:20 صبح
اینکریپت کردن ( فایل را به صورت باینری باز می کنم و 1000 بایت اول را Xor می کنم با 56 )



Private Sub File_Encryptor()




On Error Resume Next

Dim Enc As Byte
Dim Fname As String
Open File For Binary As #1
For i = 1 To 1000
Seek #1, i
Get #1, , Enc
Enc = Enc Xor 56
Seek #1, i
Put #1, , Enc
Next i
Close
Fname = File & "_.Enc"
Name File As Fname
End Su





حالا باید دکریپت کنیم



Open Fname For Binary As #1





For j = 1 To 1000

Seek #1, j
Get #1, , Enc
Enc = Enc Xor 56
Seek #1, j
Put #1, , Enc
Next j

Close

hamed aj
چهارشنبه 15 آبان 1387, 11:29 صبح
با سلام

البته باید به این نکته هم توجه کنید که اگر امنیت خیلی اهمیت داره، از روش های رمزنگاری استاندارد مثل DES برای رمزنگاری متقارن و RSA برای رمزنگاری نامتقارن استفاده کنید

موفق باشید

Naser.g
چهارشنبه 15 آبان 1387, 16:07 عصر
برای عکس میشه یه کارایی خوبی کرد ولی فایل اجرایی و ... رو چی کار میکنین بالاخره که یه جا باید اون فایل روی هارد به صورت غیر رمز باشه ؟ نه ؟

Pr0grammer
چهارشنبه 15 آبان 1387, 17:09 عصر
بد نیست یه سر به این تاپیک بزنید، هرچند مربوط به Delphi هستش، اما بی ربط نیست!
http://barnamenevis.org/forum/showthread.php?t=129889
امیدوارم به درد بخوره. موفق باشید

debugger
چهارشنبه 15 آبان 1387, 20:22 عصر
برای عکس میشه یه کارایی خوبی کرد ولی فایل اجرایی و ... رو چی کار میکنین بالاخره که یه جا باید اون فایل روی هارد به صورت غیر رمز باشه ؟ نه ؟

دوست عزیز کسی که این تاپیک را زده هدفش فقط و فقط مراقبت از عکس ها بوده . و این سوال شما مربوط به این تاپیک نیست

فایل اجرایی هم باید به صورت Activation code محافظت بشه تا فقط بر روی یک سیستم نصب بشه

فاطمه وطن دوست
پنج شنبه 16 آبان 1387, 22:25 عصر
سلام
واقعا شرمندم که دوباره پست میدم ، من چند بار تاپبک رو خوندم ولی ....
/___debugger
این نمونه کدی که لطف کردید و گذاشتید رو تست کردم .
دقیقا قراره چه اتفاقی بیفته ؟
آیا از پاک شدن فایل هم جلوگیری میشه ؟ چون چندین بار تست کردم ولی بی نتیجه بود.

debugger
جمعه 17 آبان 1387, 08:06 صبح
سلام یه یه برنامه نوشتم که به روش اینکریپشن از عکس ها محافظت می کنه

شما این برنامه را تست کنید .

ایتدا برنامه را دانلود کنید

به پوشه pic رفته و می بینید که یک عکس به نام 1.jpg وجود دارد ولی قابل رویت نیست. و فایل خراب به نظر میرسد

حال برنامه را اجرا می کنید می بینید که براحتی عکس مورد نظر در برنامه لود می شود.

من از pictureBox استفاده کردم. و عکس اینکریپت شده در فولدر pic را اول دکریپت کردم و بعد در pictureBox لود کردم

ولی اگر میخواستم با کنترل Image عکس را در برنامه بزارم ( که در این صورت نیازی به فولدر pic نیست ) در این صورت با برنامه ریسورسر ( مثل VBReformer ) میشه عکس مورد نظر را استخراج کرد.

ولی در روشی که من بکار گرفتم تنها روش برای بدست آوردن عکس Screen Captuer است

لینک دانلود برنامه با حجم 22 کیلو بایت


http://rapidshare.com/files/161400201/Debugger.zip.html

به این دلیل سورس نگذاشتم که شما با دیدن سورس از هدف من در نگه داری عکس دور می شدید . اما اول برنامه را ببنید ( با متد اشنا بشید ) و بعد من سورس را میگذارم

فاطمه وطن دوست
جمعه 17 آبان 1387, 11:19 صبح
سلام
اینو نمونه رو ببینید ، سوال ­من اینه که با این روش امکانش هست فایل پاک بشه یا نه ؟
کاربر با انتخاب فایل و زدن دکمه Delete ، از صفحه کلید یا با ماوس؟

hamed aj
جمعه 17 آبان 1387, 12:23 عصر
سلام
اینو نمونه رو ببینید ، سوال ­من اینه که با این روش امکانش هست فایل پاک بشه یا نه ؟
کاربر با انتخاب فایل و زدن دکمه Delete ، از صفحه کلید یا با ماوس؟

با سلام
همونطور که می دونید امنیت فایل ها در سطح سیستم عامل مطرح هست. به شخصه فکر می کنم بهترین راه برای شما، تغییر permission فایل ها و پوشه ها می باشد.مگر اینکه از تکنیک های دیگری مثل باز نگه داشتن فایل به مدت طولانی و . . . استفاده کنید.

موفق باشید

Pr0grammer
جمعه 17 آبان 1387, 12:29 عصر
سلام یه یه برنامه نوشتم که به روش اینکریپشن از عکس ها محافظت می کنه
شما این برنامه را تست کنید .
ایتدا برنامه را دانلود کنید
به پوشه pic رفته و می بینید که یک عکس به نام 1.jpg وجود دارد ولی قابل رویت نیست. و فایل خراب به نظر میرسد
حال برنامه را اجرا می کنید می بینید که براحتی عکس مورد نظر در برنامه لود می شود.
من از pictureBox استفاده کردم. و عکس اینکریپت شده در فولدر pic را اول دکریپت کردم و بعد در pictureBox لود کردم
ولی اگر میخواستم با کنترل Image عکس را در برنامه بزارم ( که در این صورت نیازی به فولدر pic نیست ) در این صورت با برنامه ریسورسر ( مثل VBReformer ) میشه عکس مورد نظر را استخراج کرد.
ولی در روشی که من بکار گرفتم تنها روش برای بدست آوردن عکس Screen Captuer است
لینک دانلود برنامه با حجم 22 کیلو بایت

http://rapidshare.com/files/161400201/Debugger.zip.html به این دلیل سورس نگذاشتم که شما با دیدن سورس از هدف من در نگه داری عکس دور می شدید . اما اول برنامه را ببنید ( با متد اشنا بشید ) و بعد من سورس را میگذارم

دوست عزیز این روش خوبه اما، بهتر بود فایل رو نشه Delete کرد، فکر کنید کاربر از روی غفلت وقتی می بینه فایل قابل رویت نیست، فکر می کنه فایل اضافه هستش و Deleteش می کنه و بعد ...... :لبخند:
دیدی آنتی ویروس KasperSky چی کار کرده؟ :متفکر: وقتی این آنتی ویروس رو نصب می کنیم اگه به مسیری که نصب کردیم نگاه بندازیم، متوجه میشم که توی این پوشه نه میشه فایلی ایجاد کرد نه فایلی توش کپی کرد! حتی نمیشه فایل های توش رو حذف ، کپی، کات یا Rename کرد! این روش فوق العاده هستش! اگه بتونید این کار رو بکنید خیلی عالیه! من در این تاپیک (http://barnamenevis.org/forum/showthread.php?t=129889) مطرحش کردم اما بخش دلفی بود! :افسرده: یه نگاه بندازید! امیدوارم به درد بخوره!

موفق باشید

debugger
جمعه 17 آبان 1387, 12:56 عصر
سلام
اینو نمونه رو ببینید ، سوال ­من اینه که با این روش امکانش هست فایل پاک بشه یا نه ؟
کاربر با انتخاب فایل و زدن دکمه Delete ، از صفحه کلید یا با ماوس؟

آفرین بر شما سورستان دقیق بود . ولی عکسی که Encrypt می کردین اصلا در برنامه دخالتی نداشت. پس حذف کردن ان هیچ تاثیری در برنامه ندارد و میشه حذف کرد

ولی برنامه منو ببینید اگر عکس 1.jpg حذف بشه .و یا حتی rename بشه دیگه برنامه اجرا نمیشه ( یه بار دیگه برنامه منو ببین )

خب پس من امکان خذف و تغییر نام را از بین بردم . امکان استفاده از ریسورسر را هم بردم

البته اینو بگم وقتی برنامه در حال اجراست نمیشه این کار ها را کرد . ولی اگر کاربر مستقیم بره عکس را حذف کنه . عکس خذف میشه و در این صورت برنامه کار نخواهد کرد

=====================
برنامه من از عکس استفاده می کنه ( اونو لود می کنه تا نشون بده ) من تو Form_load نوشتم که عکس را دکریپت کن و نمایش بده. و موقع بستن برنامه هم نوشتم عکس را اینکریپت کن

اینم سورس


http://rapidshare.com/files/161448689/Debugger.zip.html



دوست عزیز این روش خوبه اما، بهتر بود فایل رو نشه Delete کرد، فکر کنید کاربر از روی قفلت وقتی می بینه فایل قابل رویت نیستف فکر می کنه فایل اضافه هستش و Deleteش می کنه و بعد ...... :لبخند:
دیدی آنتی ویروس KasperSky چی کار کرده؟ :متفکر: وقتی این آنتی ویروس رو نصب می کنیم اگه به مسیری که نصب کردیم نگاه بندازیم، متوجه میشم که توی این پوشه نه میشه فایلی ایجاد کرد نه فایلی توش کپی کرد! حتی نمیشه فایل های توش رو حذف ، کپی، کات یا Rename کرد! این روش فوق العاده هستش!

من وقتی برنامه بنویسم یه help به کاربر میدم و میگم که شما فقط برنامه را اجرا کرده و استفاده کنید . و هیچ یک از فایل های برنامه اضافی نیست . در صورت حذف کردن حتی یک فایل برنامه کار نخواهد کرد . در غیر این صورت تمامی مسئولیت ها از من سلب می شود

خوب انتی ویروس کاسپرسکای وقتی اجراست نمیذاره این کارها را بکنید. این خیلی مهمه . ولی وقتی پروسسش را می بندی دیگه هیچ کاری ازش بر نمی یاد . خب پس وقتی اجراست دائم دایکتوری نصب خودش را مانیتور می کنه ؟ اما سوال اینه چطوری؟

تمامی فایل ها با اسم و سایز چک می شوند ( فکر کن تو یه تایمر هنگام لود برنامه ). و اینم بگم تمامی این فایل ها توسط یک فایل مادر مونیتور نمی شوند و چند تا پروسس دیگه هم تو کار هستن . یک معماری پیچیده دارد

از ابجکت FSO میشه خیلی استفاده کرد

در حالت کلی


If fso.FolderExists(Kaspersky) = True Then
دستورات
else
دستورات
end if

راستی همه این کارهایی که من پیشنهاد دادم برای محافظت عکس های خانم فاطمه وطن دوست بود. چون ایشون هدفشون این بود

بحث کاسپرسکای تخصصی تر است

فاطمه وطن دوست
جمعه 17 آبان 1387, 13:35 عصر
فکر میکنم عاقلانه ترین کار این باشه که
هلپی درست بشه و به کاربر گوشزد کنیم فایل های برنامه رو حذف نکنه .

1-MBT925

هر نرم افزاری یک کاربر داره و کاربر باید طرز کار با نرم افزار رو بلد باشه.

2- debugger

من وقتی برنامه بنویسم یه help به کاربر میدم و میگم که شما فقط برنامه را اجرا کرده و استفاده کنید . و هیچ یک از فایل های برنامه اضافی نیست . در صورت حذف کردن حتی یک فایل برنامه کار نخواهد کرد . در غیر این صورت تمامی مسئولیت ها از من سلب می شود


::::::::::::::::::::::::::::::::::::::::::
نتیجه گیری :
به هر حال همه اینجا جمع شدیم ازتجربیات و گفته های دیگران استفاده کنیم .

::::::::::::::::::::::::::::::::::::::::::

Pr0grammer
جمعه 17 آبان 1387, 13:39 عصر
ایول، Help خوبه! هرچند اصولی نیست ولی دردسرش کمتره!


خوب انتی ویروس کاسپرسکای وقتی اجراست نمیذاره این کارها را بکنید. این خیلی مهمه . ولی وقتی پروسسش را می بندی دیگه هیچ کاری ازش بر نمی یاد .

نه این طور نیست! الان خودم تست کردم! حتی اگه کاملاً برنامه رو ببندیم باز از فایل های محافظت می کنه! مطمئناً چند تا پروسس در حال اجراست!


اینم بگم تمامی این فایل ها توسط یک فایل مادر مونیتور نمی شوند و چند تا پروسس دیگه هم تو کار هستن . یک معماری پیچیده دارد
موافقم.

موفق باشی