خیلی از شما عزیزان از برنامه Adobe Flash)
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
) برای ایجاد UI یا Splash Screen برای برنامه هاتون استفاده کردین.
خروجی کار شما SWF هست و بسته به اینکه از کدوم نسخه Action Script استفاده کرده باشید میتونید با استفاده از ارتباط مخصوصشون به فایل HTML، CSharp یا هر برنامه دیگه ای وصلش کنید.
یکی از برنامه هایی که فایل SWF شما رو به فایل اجرایی یا EXE تبدیل میکنه و امکانات خیلی خوبی هم داره
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
هست که پیشنهاد میکنم حتما استفاده کنید.
اما یکی از مشکلاتی که نسخه های قبلی این برنامه دارن اینه که روی ویندوز 10 اجرا نمیشن و اگه شما هم مثل من پروژه تون رو از دست داده باشین و فقط خروجی رو داشته باشین.
این آموزش ممکنه روی
خیلی (فکر میکنم
همه بهتر باشه
) از فایلهای SWF که EXE شدن جواب بده و میتونید فایل SWF تون رو مجددا استخراج کنید و با دیکامپایلرهای موجود به المنتهای گرافیکی و کدتون دسترسی پیدا کنید.
همیشه به این قضیه معتقدم که فایل شما هر بلایی سرش بیاد موقع اجرا روی رم بصورت کامل قابل دسترسیه.
- در قدم اول برنامه تون رو اجرا کنید و بذارید توی رم جا خوش کنه
- حالا برنامه HxD رو اجرا کنید و روی دکمه Open RAM (Shift+Ctrl+R) کلیک کنید یا از منوی Extras این گزینه رو بزنید و برنامه در حال اجراتون رو انتخاب کنید.
- حالا باید دنبال هدر فایل فلشتون بگردید.هدر فایلهای فلش در صورت فشرده بودن با CWS و در صورت غیر فشرده بودن با FWS شروع میشه، پس با زدن کلید ترکیبی Ctrl+F پنجره جستجو رو باز میکنیم و دنبال رشته CWS یا FWS (باید جفتشون رو جستجو کنید ولی قدمهای بعدی تفاوت نداره) با تنظیمات شکل زیر می گردیم:
- روی OK کلیک کنید و اولین نتیجه رو چک کنید.
- در قسمت HEX برنامه میتونید کد مبنای 16 برنامه تون رو ببینید. به احتمال زیاد شما یه فایل فلش پیدا کردید، ولی این به این معنی نیست که حتما فایل مورد نظر شماست. پس قدمهای مرحله 6 به بعد رو تا پیدا شدن فایل مورد نظرمون ادامه میدیم.
- نتیجه جستجوی شما شامل سه بخش میشه:
- بخش اول (سه بایت شروع Header) که زیرش خط قرمز کشیدم که همون نماد شروع فایل هست، که CWS یا FWS هست. توی این مثال من یه فایل SWF رو باز کردم (بجای باز کردن رم) واسه همین آدرس شروعش 00000000 هست و برای شما ممکنه هر آدرسی باشه. (درواقع آدرس شروع Header شما همون چیزیه که زیر Offset (h) و خطی که نتیجه جستجوتون توش بوده نوشته شده که باید دو کاراکتر آخرشو با دو کاراکتری که بالای شروع نتیجه جستجوتون هست جابجا کنید- اینو واسه اطلاع گفتم، برای این آموزش نیازی نیست چیزی از Hex و خوندنش بدونید)
- بخش دوم (بایت چهارم Header) که قرمز هایلایتش کردم نشونگر نسخه فلش پلیر فایل شماست که اینجا 0B هست که معادل عدد 11 توی مبنای 10 هست، پس فلش پلیر من موقع ساخت فایل، نسخه 11 بوده.
- بخش سوم (بایت پنجم تا هشتم Header یا 4 بایت با آفست 4) که سبز هایلایتش کردم نشونگر طول یا حجم فایلتونه که با سیستم ذخیره کردن Little-Endian ذخیره شده، که میتونید
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
بیشتر راجع به Endianness بخونید. توی این مثال این 4 بایت D9130000 هستن که چون Little-Endian هستن یعنی بایت کم ارزش اول اومده و بایت پر ارزش آخر، پس بایتها رو برعکس میکنیم و داریم 000013D9 که همون 13D9 هست و معادل 5081 توی مبنای 10 هست و این به این معنیه که فایل من حجمش 5081 بایت یا 4.96 کیلوبایت هست.
- حالا کاری که من باید انجام بدم اینه که 13D9 بایت از شروع Header مون رو کپی کنم توی یه فایل جدید و به اسم مثلا output.swf ذخیره کنم و تست کنم ببینم همون فایلیه که میخوام یا نه. پس روی 4 اول 43 (که زیرش خط قرمز کشیدم) کلیک میکنم و Ctrl+E رو میزنم و در قسمت Length عدد 13D9 رو وارد میکنم:
- بعد از اینکه OK رو بزنید کل فایل SWF شما رو انتخاب میکنه. با Ctrl+C کپیش میکنیم، بعد با Ctrl+N یه فایل جدید میسازیم و توی اون Ctrl+V یا پیست میکنیمش. اگر پیغامی مبتنی بر این داد که بخشهایی از فایل شما غیر قابل دسترسه جستجو رو مجددا شروع می کنید و اگر پیغامی نداد که فایل رو با Ctrl+S ذخیره و تست می کنیم.
دقت کنید که اگه با FWS جستجو می کنید شروع فایلتون بجای 53 57 43 میشه 53 57 46، یعنی فایلتون بجای C یا 43 با F یا 46 شروع میشه.
برای این آموزش نیازی نیست هیچکدوم از مطالبی که راجع به Hex یا Endianness یا مبنای 10 گفتم رو بدونید یا یاد بگیرید، تمام مطلب واضح و بدون نیاز به هیچ دانش قبلی ای هست.
اگه فایلتون رو با CWS پیدا نکردین حتما با FWS پیدا میکنید.
دقت کنید توی مرحله جستجو تمام کاراکتر هاتون باید با حروف Capital یا به اصطلاح بزرگ تایپ کنید، یعنی cWs یا cws یا هر حالت دیگه ای بجز CWS نتیجه غلط میده، همینطور FWS.
در نهایت تشکر میکنم از پی سی ورلد عزیز که منو یادش مونده و از دوستای گلم هم عذر میخوام که چند سال نبودم.
سوالات رو پاسخگو هستم