اطلاعیه

Collapse
No announcement yet.

مخفی کردن بدنه توابع

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    مخفی کردن بدنه توابع

    سلام
    یه برنامه داریم که توابعی توش بکار رفته که میخوایم بدنه اصلی توابع رو مخفی نگه داریم ولی سورس برنامه که اون توابع ازش استفاده شده رو داشته باشیم
    به عبارتی برنامه close source باشه
    توی code vision ، avr studio ، keil و visual c++ 2010 چطور میتونیم اینکارو انجام بدیم؟
    گفت که دیوانه نهی لایق این خانه نهی

    #2
    پاسخ : مخفی کردن بدنه توابع

    سلام ...
    شما باید بتونید لایبرری بسازید ... کامپایلر IAR این امکان رو به شما میده ...
    لایبرری ها در حقیقت کد های Encrypte شده ای هستند که به قول شما Close Source هستند .
    به عنوان مثال کتابخانه I2C کتابخانه ای هست که شما Source های اونو نمیبینی ... ولی قادر به استفاده از آن هستید ...

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

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

    دیدگاه


      #3
      پاسخ : مخفی کردن بدنه توابع

      خیلی ممنون از راهنمایی تون
      ولی خب بعضی جاها لازم میشه
      مثلا فرض کنین برای یک سیستم برنامه ای مینویسیم که وقت زیادی رو از ما گرفته از طرفی بنا به دلایلی مجبوریم کدها رو هم در اختیار دیگران قرار بدیم.
      حالا اگه این کد همه ریزه کاریهاش معلوم باشه راحت میشه ازش سوء استفاده کرد.
      برای این راه حلی دارید؟
      گفت که دیوانه نهی لایق این خانه نهی

      دیدگاه


        #4
        پاسخ : مخفی کردن بدنه توابع

        سلام مجدد ...
        چون که تجربش رو دارم بهت میگم Library کردن و اینکه سورست Close باشه .... برات درد سر درست میکنه ....
        حالا چرا ؟؟؟

        1- اگر میخوای کدت رو به دیگران بدی و library هات رو هم بدی ... خوب چه کاری هست ... اصلا مخاطب شما اگر ریزه کاری های کد نوشته شده رو ندونه راحت تر هم هست ... فرض کن LCD گرافیکی رو درایو کردی ... اگر Library خودت رو در دسترس دیگران قرار بدی تمام کاری رو که انجام دادی رو دز اختیار مخاطبت گذاشتی .

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

        3- مهم ترین چیز تو الکترونیک هم روابط سالم هست ... اگر فکر میکنی داری به دوستی یا آشنایی ... سورسی رو میدی ... و بخوای نکاتی توی کدت بزاری که ... اصل قضیه که روابط هست رو از دست میدی .

        4- میای روی ibrary هات زمان زیادی میزاری ... فردا یکی میاد کدی بهتر از کد خود شما رو تو اینترنت میزاره ... دور روز بعد کامپایلر بهتری میاد .... سه روز بعد تکنولوژی عوض میشه ...

        راهی هست که رفتم .... وقتت رو روی چیزای دیگه بزار ...

        GOOD LUCK
        سپاس معلمی را که اندیشیدنم آموخت .... نه اندیشه ها را

        دیدگاه


          #5
          پاسخ : مخفی کردن بدنه توابع

          یکی از کارهایی که می تونی بکنی تا کسی از برنامت سر در نیاره اینه که برنامه رو جوری بنویسی که هرکسی که خواست تحلیلش کنه وسط کار قاطی پاتی oo: کنه این خودش یک ترفنده در اصل برنامه رو باید سختش کنی تا کسی نتونه ازش سر دربیاره چه برسه به خودت :eek:
          قم الکترونیک

          دیدگاه


            #6
            پاسخ : مخفی کردن بدنه توابع

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

            نوشته اصلی توسط مجتبی صاحبی
            یکی از کارهایی که می تونی بکنی تا کسی از برنامت سر در نیاره اینه که برنامه رو جوری بنویسی که هرکسی که خواست تحلیلش کنه وسط کار قاطی پاتی oo: کنه این خودش یک ترفنده در اصل برنامه رو باید سختش کنی تا کسی نتونه ازش سر دربیاره چه برسه به خودت :eek:
            ممنون
            میتونید چندتا از این طرفند ها رو بگین؟
            گفت که دیوانه نهی لایق این خانه نهی

            دیدگاه


              #7
              پاسخ : مخفی کردن بدنه توابع

              استفاده از زیر برنامه های متعدد و زیاد کردن متغییر ها و کلا توی برنامت چندتا متغییر اضافه رو مدام توی برنامه تغییر بده و برنامه رو متعدد کن یعنی اگه یک دستور if می نویسی درست بودنش رو برو توی یک سابروتین و غلط بودنش رو برو توی سابروتین دیگه الا اخر
              قم الکترونیک

              دیدگاه


                #8
                پاسخ : مخفی کردن بدنه توابع

                با سلام،

                بهترین راهکار اینه که به جای دادن کتابخونه به همراه سورس به مشتری ( یا هر کس دیگری در طرف مقابل! ) object ها رو بدی! اینطوری همه چیز رو بهش دادی، در عین حال هیچ چیز هم ندادی!!! object ها عملکردی مشابه dll ها رو دارند.

                مثلا شما برای LCD یک کتابخونه مینویسی، این کتابخونه یک سری فانکشن رو در اختیار استفاده کننده قرار میده حالا اگر آبجکت و لیست فانکشن ها رو به استفاده کننده بدی، اون میتونه از اون بطور کامل استفاده کنه ولی نمیتونه دخل و تصرفی در اون داشته باشه و شما میتونید با در نظر گرفتن فانکشن ها و یا ثابت هایی ورژن و مشخصات همون آبجکت رو هر وقت که خواستید بفهمید و حتی میتونید برخی از فانکشن ها رو به طرف مقابل نگید و فقط خودتون از اونها استفاده کنید.

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

                البته من خودم هیچ اعتقادی به Close-Source ندارم! و این ها رو صرفا جهت اطلاع عرض کردم! اعتقاد قلبی من اینه، اینقدر کامل و Open-Source کار کن که طرف از کارت لذت ببره و برای سوء استفاده عذاب وجدان بگیره ( اگر وجدان نداشته باشه که اصلا مستحق ترحمه! )
                من کد مینویسم و لذت میبرم از اینکه دیگران هم از اون بهره ببرند، چون معتقدم، هیچ زجری بالاتر از این نیست که میوه باغبان بگنده و کسی از اون استفاده نبرده باشه، ولو مجانی .....
                :mrgreen:

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

                Sh_Nourbakhsh@Yahoo.com

                http://s2.picofile.com/file/7170362468/_Wall_e_.jp

                دیدگاه


                  #9
                  پاسخ : مخفی کردن بدنه توابع

                  یه فایل نمونه برام قرار میدین؟
                  گفت که دیوانه نهی لایق این خانه نهی

                  دیدگاه


                    #10
                    پاسخ : مخفی کردن بدنه توابع

                    نوشته اصلی توسط moslem1368
                    یه فایل نمونه برام قرار میدین؟
                    با سلام،

                    به ارسالهای من نگاه کن، مثلا این http://www.eca.ir/forum2/index.php?topic=75636.0
                    مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

                    Sh_Nourbakhsh@Yahoo.com

                    http://s2.picofile.com/file/7170362468/_Wall_e_.jp

                    دیدگاه


                      #11
                      پاسخ : مخفی کردن بدنه توابع

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

                      دیدگاه


                        #12
                        پاسخ : مخفی کردن بدنه توابع

                        با سلام،

                        خوب مگه قرار بود چطوری باشه؟! oo:
                        شما نوشته های من رو خوب خوندی؟ از جنبه ماژولار نویسی به اونها نگاه کن!!! این قسمت ماجرا مهمه ....

                        بعد از یکبار کامپایل شدن پروژه، فایل های Object تولید میشن، اونوقت همه اونها رو توی یک پوشه قرار میدی، یک makefile جدید و متناسب با اونها درست میکنی و به همراه فایل main.c و هر چیز دیگه ای که لازم بود میدی به طرف ....

                        نکنه فکر کردی من فقط obj میدم به خلق الله؟ نه برادر، کاملا اوپن سورس کار میکنم، با توضیحات کامل و خدمات پس از ارائه! :mrgreen:
                        مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

                        Sh_Nourbakhsh@Yahoo.com

                        http://s2.picofile.com/file/7170362468/_Wall_e_.jp

                        دیدگاه


                          #13
                          پاسخ : مخفی کردن بدنه توابع

                          مرسی
                          بسیار زیاد
                          گفت که دیوانه نهی لایق این خانه نهی

                          دیدگاه


                            #14
                            پاسخ : مخفی کردن بدنه توابع

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

                            دیدگاه

                            لطفا صبر کنید...
                            X