PDA

مشاهده نسخه کامل : فایل های resource و چگونگی مخفی کردن فایل ها در فایل exe



Security
10-12-06, 21:46
یکی از دوستان یه سوال پرسیدند که
"چطوری می تونم توی برنامم اهنگ بذارم که ادرس نخواد و با فایل exe باشه؟"

در جواب ایشون باید بگم که در ویژوال بیسیک یه سری فایل هست به نام فایل های resource و یه برنامه هست به نام resource editor

با استفاده از resource editor می توان انواع و اقسام فایل ها مانند آیکون،تصویر،متن و ...... هرنوع فایل دیگه رو درون فایل اجرایی برنامه مخفی کرد و بعد اون رو فراخوانی کرد.
حالا ویژوال بیسیک رو باز کنید و یه پروژه ی جدید بیارید.
در منوی Add-Ins روی Add-Ins Manager کلیک کنید.یه پنجره با نام Add-Ins Manager باز میشه که یه لیست داره از این لیست VB 6 Resource Editor
رو روش دوبار کلیک کنید تا جلوی اون بنویسه Loaded و بعد ok کنید تا به محیط اصلی ویژوال بیسیک برگرده حالا همون منوی Add-Ins رو کلیک کنید،می بینید که یه گزینه ی جدید اومده به نام VB Resource Editor اونو کلیک کنید تا یه برنامه به نام VB Resource Editor باز بشه
در پنجره ی باز شده در قسمت تولبار اون بالا میبینید که چندتا ایکون هست که اولی روش نوشته abc ، از طریق این گزینه می تونید متن رو ذخیره کنید اگه روش کلیک کنید می بینید که یه پنجره با نام Edit String Tables باز میشه و در اون یه محل برای ذخیره ی متن هست که می تونید شروع به تایپ متن کنید

در کنار اون ایکون یه ایکون دیگه هست که عکس ساعت شنی روشه ،از طریق این گزینه می تونید شکلک های موس یا همون Cursor با پسوند cur رو ذخیره کنید اگه روش کلیک کنید یه پنجره باز میشه که محل شکلک موس رو از شما می پرسه

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

ایکون بعدی یه عکس هست که از طریق این گزینه می تونید عکس ها رو ذخیره کنید، البته فقط عکسها با پسوند bmp ، اونم مثل بقیه اگه روش کلیک کنید یه پنجره باز میشه که ارس عکس رو میپرسه

و اخرین ایکون که به صورت مربع چهار خونه هست مربوط میشه به بقیه ی فایل ها یا همون *.* و اونم مثل بقیه در صورتی که روش کلیک کنید یه پنجر باز میشه که ادرس فایل مرود نظرتون رو می پرسه خوب بعد از اینکه فایل های مورد نظرتون رو اضافه کردید نوبت می رسه به استفاده از اونا
حتما متوجه شدید که وقتی یه فایل رو اضافه می کردید بهش یه شماره تعلق می گرفت که معمولا این شماره هاست 101,102,103,104,.... به این شماره ها ID فابل میگند که برای تغییر اون می تونید روش دابل کلیک کنید و در پنجره ی باز شده در قسمت id هرچی خواستید بنویسید
طریقه ی استفاده از این فایل ها بستگی به نوع اون داره که تک تک اونا رو میگم

1-اگه شما یه متن رو اضافه کرده باشید(ایکون اولی که روش نوشته abc ) باید این دستو ر رو براش بنویسید

LoadResString(id)

که به جای id باید ایدی ی اون متن رو بنویسید. مثلا

Form1.caption = LoadResString(101)
2-اگه شما یه شکلک موس رو ذخیره کرده باشید (ایکون دوم که عکس ساعت شنی داشت) باید این دستور رو براش بنویسید

LoadResPicture( id , ResType )

در این دستور باید به جای id ای دی فایل رو بنویسیدو به جای ResType نوع فایل که در اینجا چون شکلک موس رو می خواید لود کنید باید عدد 2 رو به جاش بنویسید مثلا

Form1.Mouseicon = LoadResPicture (101 , 2)

3-اگه شما یک ایکون رو ذخیره کرده باشید می تونید اونو از این طریق فراخوانی کنید
LoadResPicture ( id , ResType )

اینم مثل قبل باید به جای id ای دی فایل رو بذارید و به جای ResType نوع فایل که اینجا چون فایل ما ایکون هست از عدد 1 به جای اون استفاده کنید. مثلا

Form1.Icon = LoadResPicture ( 101 , 1 )

4-اگه شما یه فایل تصویری (با پسوند bmp چهارمین ایکون که توضیح دادم)ذخیره کرده باشید از طریق این کد اونو فراخوانی کنید

LoadResPicture ( id , ResType )

اینم مثل قبل باید به جای id ای دی فایل و به جای ResType نوع فایل که چون فایل تصویری هست از از عدد 0 به جای اون استفاده می کنیم .مثال

Picture1.Picture = LoadResPicture ( 101 , 0)

5- و در آخر فایل با هر پسوندی که خواستید(ایکون با مربع چهار خونه که توضیح دادم)

این یکی با بقیه فرق داره

اول از همه شما باید اونو لود کنید و بعدش اونو داخل یه فایل خارج از برنامتون بذارید تا بتونید از اون استفاده کنید

دستور اولیه ی لود کردن اینه

LoadResData( id , ResType)

حالا یه نمونه کد می ذارم و خط به خط توضیح میدم

Dim SoundBuffer As String

Buffer = StrConv(LoadResData(101, "CUSTOM"), vbUnicode)

Open "c:custom.*" For Output As #1

Print #1, Buffer

Close #1

در خط اول ما یه متغیر از نوع string تعریف کردیم

درخط دوم فایلی که در resource گذاشتیم رو تبدیل و در buffer لود کردیم

در خط سوم یه فایل درست کردیم با پسوند * که شما باید به جای * نوع فایلتون رو بنویسید مثلا فایل mp3 (توجه کنید نوع فایل باید با نوع فایلی که قبلا به resource اضافه کردید یکی باشه )

در خط چهارم محتویات buffer که قبلا فایل مورد نظرمون رو توش لود کردیم به داخل فایلی که در خط سوم درست کردیم میریزه
و در خط پنجم فایلی که در خط سه درست و باز کردیم رو می بنده
امیدوارم به دردتون خورده باشه
ققط شرمنده اگر جای پرانتز ها یه ذره عقب جلو شد .
با تشکر سعید

00110
05-05-07, 10:22
عزیز ممنون اگه تونستی بیشتر توضیح بده درباره اینکه چطور میشه فایلهای Exe رو بدون اینکه رو هارد ذخیره کرد از ریسورس خوند و اجرا کرد ...