Archive for 2010/01

JavaScript Deobfuscator

۱۳۸۸/۱۱/۱۰ ۱۲:۴۶ Salar https://www.blogger.com/profile/08261083424775464146 منتشر شده در تاریخ : ۱۳۸۸/۱۱/۱۰ دسته بندی : ، ، ، 0

Obfuscation اصطلاحی هست که برای در هم و ناخوانا کردن کد ها به کار می رود. این کار با کوتاه کردن نام توابع، حذف فاصله ها و خط شکن ها و همچنین کوتاه کردن پارامترهای ورودی انجام میشه.

استفاده از Obfuscation برای زمانهایی است که مجبور هستید کد برنامه را همراه با برنامه عرضه کنید ولی نمی خواهید که کد خوانا بوده و قابل استفاده باشد. علاوه بر این یکی از مزیت های این کار کاهش حجم کد می باشد. این عمل برای خیلی از زبانها قابل انجام است ولی در این نوشته در مورد JavaScript صحبت میکنم.

فرض کنید که کد Obfuscate شده ای رو دارید. خواندن یا دیباگ کردن چنین کدهایی بسیار مشکل است. در این حالت هست که نیاز به ابزاری وجود خواهد داشت که این کد ها رو برایتان رمزگشایی و خوانا بکند.

در زمینه رمزگشایی کدهای Obfuscate شده چندین وبسایت و حتی یک افزونه برای فایرفاکس وجود دارد. افزونه فایرفاکس با نام JavaScript Deobfuscator بیشتر شبیه یک profiler هست که کد های اجرا شده توسط مرورگر رو شناسایی می کنه و سپس به ترتیب آنها رو رمز گشایی میکنه. شیوه عمل این افزونه اصلا برام جالب نبود ولی با این حال نتیجه بدست امده مطمئن هست.

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

در این آدرس: http://www.gosu.pl/decoder

ابزار بسیار کارآمدی هست با توجه به اینکه کدها رو رنگی هم می کند.

برای روشن تر شدن کاربرد چنین ابزارهایی مثالی رو می زنم. فرض کنید که تابعی مانند زیر برای معاسبه فاکتوریل دارید:
fact = function (fact) {
var i,result=1;
for (i = 1; i <= fact; i++) {
result = result * i;
}
return result;
}

این کد رو با استفاده از ابزاری مانند Closure Compiler فشرده می کنیم و نتیجه مانند این خواهد بود:
fact=function(c){var a,b=1;for(a=1;a<=c;a++)b*=a;return b};

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

پس با استفاده از JavaScript Decoder که در بالا لینک داده شده کد مزبور رو رمز گشایی می کنیم:
fact = function (c)
{
var a, b = 1;
for (a = 1; a <= c; a++) {
b *= a;
}
return b;
};

همانطور که می بینید، کد رمز گشایی شده همانند کد اولیه نیست ولی خوانایی به مراتب بهتری داره و می توان کاربرد آن رو با زحمت کمتری تشخیص داد.

 

Sourceforge.net هم برای ایران تحریم شد

۱۳۸۸/۱۱/۰۴ ۱۰:۴۴ Salar https://www.blogger.com/profile/08261083424775464146 منتشر شده در تاریخ : ۱۳۸۸/۱۱/۰۴ دسته بندی : ، ، ، ، 10

SF.net

Sourceforge.net از معدود سرویس های پروژه های باز برای ایران بسته شد! بخوانید

Users residing in countries on the United States Office of Foreign Assets Control sanction list, including Cuba, Iran, North Korea, Sudan and Syria, may not post Content to, or access Content available through, SourceForge.net.



البته فعلا فقط امکان دانلود فایل ها بسته شده و بقیه سایت فعال است و کار مکنه. به هر حال عمل ناجوانمردانه ای هست که داره تو اینترنت رواج پیدا میکنه! البته خود سایت sourceforge.net تنها اجرا کننده قوانین آمریکا هست، و از اونجایی که دولت ایران جزو همایت کنندگان تروریست هست جزو لیست تحریمی ها قرار داره و باقی قضایا.

آنچه که مسلمه ضربه این تحریم رو برنامه نویسان خواهند خورد و نه کسی دیگه! باید به فکر انتقال پروژم به جای دیگه باشم.

ایمان در این پست سایتهای مختلف میزبانی پروژه های باز رو معرفی کرده. البته مدتی قبل برای یه کار گروهی با xp-dev.com کار کرده بودم و جالب بود.

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


شاید ندونید ولی سایت SourceForge یک نسخه ژاپنی مخصوص هم دارد. این نسخه دقیقا کپی تمامی پروژه ها رو در خودش داره و این یعنی این که پروژه مورد نظر شما هم در اون موجود هست. خوشبختانه این سایت یه نسخه انگلیسی هم داره و به همین خاطر میتونید با خیال راحت پروزه مورد نظرتون رو از اونجا پیدا و دانلود رو انجام بدید.

تنها کاری که لازمه رفتن به این آدرس و جستجو برای پروژه مورد نظرتون هست. برای مثال پروژه ++Notepad در این آدرس قرار داره و صفحه دانلودش اینجا هست.

 

ادامه...

۲:۰۳ Salar https://www.blogger.com/profile/08261083424775464146 دسته بندی : 6

با سلام مجدد
کم کم می خوام دوباره بنویسم. از همه کسانی که هنوز فید من رو دنبال می کنند تشکر میکنم و اینکه هنوز من رو رها نکردن لطف دارن!

دلیلی که باعث شد تصمیم بگیریم مدتی ننویسم، همزمانی چند مشکل کمر شکن بود که واقعا دمار از روزگارم درآورد. در این میان آغاز امتحانات دانشگاه هم مزید بر علت شد. اونقدر فشار روم زیاد بود که اگه الان سنم بالای 50 بود حتما تا حالا سکته رو زده بودم. همین الان تو کتف سمت چپم احساس درد میکنم. یکی از دوستان میگفت از فشار عصبیه. در هر صورت هرچه بود مطمئنن این ترم مشروط می شم و تا بماند برا ترم بعد! حالا هم که یکی دو تا از مسائل بر طرف شده می خوام که وبلاگ نویسی رو دوباره ادامه بدم. هر چند که مشکل اصلی سرجاشه و خیلی اذیتم میکنه.

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

جدای از مسئله سیساسی، امیدوارم که کم لطفی به وبلاگهای فنی با همین سرعت ادامه پیدا نکنه.

(نمی خوام وارد بحث سیاسی بشم، اما هرچه هست امیدوارم که این جریان اجتماعی و سیاسی که پدید امده مانند سال 57 نشه که همانند اون مثل که میخواستند ابرو رو درست کنند زدند چشمش رو هم درآوردند.)

موفق باشید