آخرین اخبار و مقالات و مطالب پیرامون برنامه نویسی در ایران آی سی تی نیوز ، پایگاه فناوری اطلاعات و ارتباطات ایران

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

سیستم مدیریت محتوا

پارس

سی ام اس

نصب شده است که نرم افزاری قوی جهت

طراحی سایت

می باشد.

طراحی وب

با استفاده از

پرتال

(

پورتال

) پارس منجر به

طراحی وب سایت

شما می شود.

طراحی وب سایت

کپی رایت

پورتال

پارس

حفظ امنیت کدهای نوشته شده به زبان جاوا

با وجود کارایی زیاد و انعطاف پذیری بالای زبان برنامه نویسی جاوا، این ابزار قدرتمند و رو به توسعه هنوز نتوانسته جایگاه مناسبی برای پیاده سازی پروژه های تجاری در مقایسه با سایر framework های موجود بیابد. از جمله دلایل اصلی عدم استفاده از جاوا در بیشتر پروژه های بزرگ تجاری، می توان به مشکل بازگشت پذیری یا decompile شدن کدهای نوشته شده، با این زبان برنامه نویسی اشاره کرد که این خود به تنهایی یک معضل بزرگ امنیتی در مسیر توسعه نرم افزارهای تجاری با استفاده از این ابزار به شمار می آید.
برنامه های نوشته شده در جاوا به دلیل استفاده از واسط زمان اجرای java runtime environment یا به طور اختصار jre برای مهیا کردن بستری مناسب برای جلوگیری از کامپایل مجدد کد منبع و همچنین حفظ قابلیت جابه جایی و استفاده در پلتفرم های مختلف، پس از کامپایل به جای تبدیل شدن به زبان ماشین یا همان «صفر» و «یک» به قالب خاصی از داده ها به نام byte code تبدیل می شود که این خروجی همان قالب قابل فهم و اجرا برای jre است.
همین موضوع باعث می شود کد برنامه های نوشته شده به زبان جاوا را با استفاده از متدهای مهندسی معکوس تا حدود زیادی بازیابی کرد. این مشکل به حدی جدی است که شرکت توسعه دهنده زبان جاوا یعنی سان میکروسیستمز، اقدام به ارائه ابزاری به نام obfuscator برای مبهم سازی کد منبع نوشته شده از طریق تزریق کدهای اضافی به زبان جاوا کرده تا پس از انجام عملیات دیکامپایل، کاربران نتوانند به راحتی قطعات مختلف کد حاصل را درک و تفسیر کنند.
اجرای این برنامه به گونه ای است که در بدنه توابع و کلاس ها در نتیجه نهایی و خروجی اصلی برنامه تغییری را در پی نخواهد داشت. البته استفاده از این متد که به صورت توکار (یا درون ساخت built-in) هم در کتابخانه های جاوا و هم توسط ide پیش فرض شرکت سان، یعنی netbeans نیز پشتیبانی می شود، نمی تواند تمام آنچه که برنامه نویسان برای ایجاد امنیت بیشتر به آن نیاز دارند را تامین کند. گذشته از این، استفاده از روش مذکور سبب افزایش حجم فایل اجرایی پس از کامپایل، کندی در بارگذاری و اجرای برنامه، سخت تر شدن انجام عملیات اشکال زدایی (دیباگ)، بالا بردن میزان استفاده از حافظه اصلی و تحمیل بار مضاعف بر دوش پردازنده به دلیل استفاده مکرر از حلقه های تکرار و تصمیم گیری می شود.
در این میان روشی کاملا ابتکاری توسط برخی برنامه نویسان برای هر چه بالاتر بردن ضریب امنیت در کدهای جاوا یا حتی دیگر زبان های برنامه نویسی که از یک قالب همسان با فریم ورک جاوا بهره می برند، ارائه شده است. این روش که به متد رمزگذاری (encryption) معروف است، هم اکنون به عنوان یکی از بهترین و موثرترین راه حل های مطرح شده برای حفاظت از کدهای جاوا شناخته می شود. تفاوت عمده این روش با دیگر متدها در این است که روش رمزگذاری از آغاز تا پایان باید توسط برنامه نویس و گروه توسعه دهنده پروژه پیاده سازی شود؛ برخلاف روش obfuscator که برای مبهم کردن کد منبع از الگوهای محدود و تکراری استفاده می کند.
شاید این موضوع در نگاه اول کمی دشوار به نظر برسد اما کارایی واقعی روش رمزگذاری به این موضوع وابسته است که منطق رمزنگاری در برنامه شما می تواند کاملا متفاوت با تصور دیگران یا به عبارت دیگر کاملا ابتکاری و شخصی باشد.
رفتار متد رمزگذاری
در این روش فرض بر این است که تمام یا تعدادی از کلاس های نوشته شده، به جز کلاس اصلی پروژه و کلاسی که قرار است عملیات کدبرداری دیگر کلاس ها را انجام دهد، با استفاده از یک برنامه واسط و یک کلید اصلی به مجموعه ای از کاراکترهای غیرقابل فهم و نامفهوم تبدیل شده است. سپس کلاس های کدشده در مسیر مناسب به پروژه افزوده می شوند.
کلاس اصلی پروژه باید بتواند با استفاده از توابعی که برای رمز گشایی کلاس های کدشده توسط برنامه نویس طراحی شده اند، کلاس های مذکور را در حافظه دیکد و بازسازی کند تا در محل و زمان مناسب فراخوانی و استفاده شوند. به این ترتیب حتی بعد از دیکامپایل شدن برنامه نیز کاربران با انبوهی از کلاس های رمزگذاری شده و کاراکترهای غیرقابل فهم روبه رو خواهند شد.
نحوه پیاده سازی
پیش از هر چیز باید گفت که بهترین حالت ممکن برای پیاده سازی روش رمزگذاری، زمانی است که تمام برنامه نویسی های مربوط به کلاس ها و متدهایشان به صورت کامل انجام شده و پروژه آماده کامپایل شدن نهایی باشد. همان طور که پیشتر نیز گفته شد، برای پیاده سازی این متد ما نیاز به یک برنامه واسط برای رمزنگاری کلاس های مورد نظرمان با استفاده از یک کلید اصلی و بر اساس الگویی که برنامه نویس مشخص کرده است داریم. برای نمونه، برنامه ساده ای بنویسید که تمام کاراکترهای یک فایل از نوع کلاس جاوا را به عنوان ورودی دریافت کرده و با یک مقدار به عنوان کلید اصلی xor کند. سپس باید کلاس یا تابع مستقلی برای کدبرداری کلاس های رمزگذاری شده با استفاده از همان کلید اصلی نوشته شود تا در هنگام اجرای برنامه بتوانیم با فراخوانی آن، کلاس های کد شده را در حافظه رمزگشایی و دوباره سازی کنیم و سرانجام برنامه بدون هیچ مشکلی بتواند اجرا شود. توجه داشته باشید که کلید اصلی به عنوان یک عنصر حیاتی برای حفظ امنیت و حتی ضامن اجرای صحیح برنامه، می تواند برای هر کلاس به صورت متفاوت تولید شود یا از مجموعه چند عملیات پیچیده ریاضی روی مقادیر گوناگون به دست آمده باشد، یا حتی روی یک قفل سخت افزاری ذخیره شود تا برنامه بدون وجود آن اصلا اجرا هم نشود.
برای پنهان ماندن الگوریتم کدبرداری کلاس ها نیز می توانید از فایل های کتابخانه ای پویا و استاندارد (برای ویندوز پسوند dll و برای گنولینوکس پسوند so) نوشته شده با زبان c استفاده کنید. البته در این حالت پیاده سازی الگوریتم رمزگشایی باید در همین کتابخانه ها انجام شود و همین طور برای حفظ قابلیت اجرا و انتقال روی سایر پلتفرم ها نیز باید کتابخانه های مورد نیاز و قابل استفاده روی سایر پلتفرم ها را هم ایجاد کرده و همراه با دیگر منابع به پروژه بیفزایید تا بتوانید با توجه به نوع سیستم عامل، فایل کتابخانه مورد نظر را بارگذاری کرده و توابع مورد نیاز برای رمزگشایی را از داخل این فایل ها فراخوانی کنید.
نتیجه گیری
روش یا متد رمزگذاری راه حل مناسبی برای حفظ امنیت کد برنامه های نوشته شده به زبان جاواست که بر خلاف دیگر روش های معمول در روند عادی اجرای برنامه خللی وارد نمی کند و در صورتی که به درستی پیاده سازی شود حتی می توان با اتکا به آن از فریم ورک جاوا، بدون ترس از دیکامپایل شدن برنامه در پروژه های تجاری بزرگ و مستقل از سکو نیز استفاده کرد و با خیال راحت از مواهب بسیار زیاد جاوا برخوردار شد.
منابع
http://java.sun.com
http://www.javaworld.com
http://www.devarticles.com
محمد جواد احمدی


ریاضیات بیتی

... قصد داریم چند مساله را که بیشتر جنبه ریاضی دارند، حل کرده و برنامه آنها را بنویسیم ... پس بد نیست کمی دید ریاضی خود را گسترش دهیم تا بتوانیم برنامه هایی بنویسیم که مسائل ریاضی را بسادگی و در کمترین زمان ممکن حل کنند ... مساله اول: برنامه ای بنویسید که 2 عدد را گرفته و بزرگ ترین مقسوم علیه مشترک آنها را چاپ کند ... خب حال مساله این است که چگونه سری را حساب کنیم؟ می دانیم که رشد عدد !x بسیار زیاد است مثلا !1000 یک عدد 154 رقمی می شود و می دانیم که متغیری به این اندازه در زبان های برنامه نویسی وجود ندارد و اگر هم وجود داشته باشد، میزان حافظه اشغالی زیادی نیاز دارد ...

منبع : جام جم آنلاین    تاریخ : 23   آبان   1389   شاخه : برنامه نویسی   


تلاش برای اتصال مغز انسان به رایانه!

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

منبع : بازیاب    تاریخ : 16   آبان   1389   شاخه : سخت افزار   


فاراتل با دو محصول جدید به الکامپ می آید

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

منبع : دنیای اقتصاد    تاریخ : 13   آبان   1389   شاخه : شرکت ها   


هوشمند ترین سیستم عامل موبایل

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

منبع : جام جم آنلاین    تاریخ : 9   آبان   1389   شاخه : موبایل   


آمارگیری خودکار

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

منبع : جام جم آنلاین    تاریخ : 9   آبان   1389   شاخه : برنامه نویسی   


پرسش و پاسخ

... من برنامه نویسی پاسکال و سی++ را یاد گرفته ام و اگر بخواهم یک نرم افزار شبیه سازی تحلیلی برای مهندسی برق (ماننده برنامه پی اسپایس) بنویسم که روی سیستم عامل کامپیوتر یا موبایل نصب شود، باید چه مراحلی را طی کنم و چه آموزشی ببینم تا بتوانم یک نرم افزار حرفه ای و کامل بسازم که جنبه تجاری هم داشته باشد؟ متاسفانه سطح و رشته تحصیلی خود را ذکر نکرده اید تا بهتر بتوانیم پاسختان را بدهیم، اما به نظر می رسد دانشجوی یکی از رشته های فنی مهندسی (مانند برق الکترونیک) باشید ... ساخت برنامه های مهندسی مانند pspice که برای طراحی های الکتریکی و الکترونیکی به کار می رود، بیش از آن که به یک زبان برنامه نویسی خاص وابسته باشد، به تحلیل و طراحی گروهی و به اصطلاح مدیریت و مهندسی نرم افزار ارتباط دارد ... در طراحی و ساخت برنامه هایی در این سطح لازم است تا گروهی از مهندسان رشته مورد نظر (مانند الکترونیک، مکانیک، معدن یا معماری و گرافیک) به همراه گروهی از مهندسان نرم افزار تحت یک مدیریت و برنامه ریزی منسجم با یکدیگر بخش های گوناگون نرم افزاری را پیش ببرند ... البته بدیهی است انجام پروژه های کوچک یا تمرینی دانشگاهی توسط دانشجویان نرم افزار یا دانش آموختگان علاقه مند دیگر رشته ها امکان پذیراست و همان زبان های پاسکال و سی++ هم برای انجام آن کفایت می کند، اما طراحی با زبان های برنامه نویسی مدرن تر مانند سی شارپ و به ویژه متلب (matlab) بسیار سودمندتر خواهد بود ...

منبع : جام جم آنلاین    تاریخ : 9   آبان   1389   شاخه : برنامه نویسی   


شکایت بلیزارد علیه هکرها

... به گزارش گیم اسپات، این شرکت هفته گذشته در دادگاه لس آنجلس، علیه 3 برنامه نویس که اتهام آنها برنامه نویسی برای هک کردن استارکرفت2 بوده و قوانین کاربر تایید مجوز استفاده از استارکرفت2 را زیر پا گذاشته اند، شکایت کرد ... بر اساس این شکایت، تنها چند روز پس از عرضه استارکرفت2، این برنامه نویسان هک های مختلفی برای بازی توسعه داده، برای آن بازاریابی کرده و آنها را توزیع کرده بودند که بازی استارکرفت2 را تغییر می داد (و در حقیقت نابود می کرد) ... درست همزمان با تاریخ عرضه استارکرفت، در وب سایت این گروه برنامه نویسان آمده بود که به زودی نگارش جدیدی از استارکرفت2 عرضه خواهند کرد ...

منبع : جام جم آنلاین    تاریخ : 2   آبان   1389   شاخه : امنیت   


راه اندازی سریع و بی دردسر

... نرم افزار قدرتمند windriver ابزاری فوق العاده عالی با روش کار بسیار ساده برای برنامه نویسان حرفه ای و توسعه دهندگان سخت افزارهای متصل به درگاه یو اس بی و دیگر اسلات های متصل به بورد اصلی رایانه است ... اگر شما نیز به برنامه نویسی در زمینه فایل های راه انداز علاقه دارید یا حرفه شما توسعه سخت افزارهای جدید با کاربردهای خاص است و قصد دارید خودتان فایل های راه انداز این سخت افزارها را برای سیستم عامل های مختلف تهیه کنید، می توانید نسخه ای از این نرم افزار را با مراجعه به لینک زیر دانلود کرده و ساخت اولین فایل راه انداز به کمک این برنامه را تجربه کنید! http://clicklinks ...

منبع : جام جم آنلاین    تاریخ : 18   مهر   1389   شاخه : نرم افزار   


multimedia builder ساده و کارآمد

... مثلا مشخص کنیم که با کلیک روی آن شیء بخصوص، صفحه خاصی نمایان شود، برنامه خاصی اجرا شود یا کار خاصی مانند خروج از برنامه اجرا گردد ... ساده ترین نوع تعریف اکشن، در بخش استفاده از گزینه external commands and page actions جای دارد که با انتخاب این قسمت، کافیست رفتار مورد نظر در هنگام کلیک ماوس روی شیء انتخاب شده را مشخص کنیم که ممکن است شامل رفتن به یک صفحه خاص با مشخص کردن شماره صفحه یا اجرای یک برنامه خاص با تعریف مسیر اجرای آن برنامه و یا مواردی مشابه آن باشد ... البته باید توانایی کافی در برنامه نویسی یا استفاده از کدهای آماده برنامه داشته باشیم (به عنوان کمک، نمونه کدهای موجود در راهنمای برنامه موجود هستند ... ) 5- تهیه خروجی از برنامه: پس از تنظیم صفحات و افزودن مطالب و محتویات مورد نظر به هر صفحه و تنظیم دکمه های کنترلی، نوبت به آخرین بخش پروسه طراحی نرم افزار، یعنی ایجاد خروجی برنامه، خواهد رسید ... به این منظور ابتدا از نوار منو، قسمت project روی گزینه run برای بررسی نتیجه نهایی پروژه کلیک می کنیم که این قسمت از نوار ابزار main و نوار ابزار page در صفحه اصلی برنامه نیز قابل اجراست ... در نهایت کل فایل های ایجاد شده در مسیر ذخیره برنامه را روی سی دی منتقل می سازیم ... ولی در نظر داشته باشید که برای کسب نتایج عالی و طراحی نرم افزارهای جذاب باید با کمک راهنمای نرم افزار یا منابع دیگر تسلط کافی به قسمت های مختلف، به ویژه محیط کدنویسی این برنامه داشته باشید ...

منبع : جام جم آنلاین    تاریخ : 18   مهر   1389   شاخه : مولتی مدیا   

صفحه 1
2 3 4


طراحی وب سایت

Content on this page requires a newer version of Adobe Flash Player.

Get Adobe Flash player