اطلاعیه

Collapse
No announcement yet.

کدینگ روی کد نوشته شده ی - جلوگیری از سوءاستفاده

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

    کدینگ روی کد نوشته شده ی - جلوگیری از سوءاستفاده

    سلام
    اگه کدویژن داشته باشید و به پوشه ی لایبریهایش سری بزنید خوهید دید که نمی توانید سورس کدهای لایبری ها را ببینید
    دوستان کسی هست راهنمایی کنه چطور میشه لایبری هایی که نوشتیم را به حالتی در بیاریم که در ادیتور ها غیر قابل نمایش باشد ولی کمپایلر بتواند کد هگز را تولید کند
    ممنون

    #2
    پاسخ : کدینگ روی کد نوشته شده ی - جلوگیری از سوءاستفاده

    نوشته اصلی توسط antipa نمایش پست ها
    سلام
    اگه کدویژن داشته باشید و به پوشه ی لایبریهایش سری بزنید خوهید دید که نمی توانید سورس کدهای لایبری ها را ببینید
    دوستان کسی هست راهنمایی کنه چطور میشه لایبری هایی که نوشتیم را به حالتی در بیاریم که در ادیتور ها غیر قابل نمایش باشد ولی کمپایلر بتواند کد هگز را تولید کند
    ممنون
    سلام . دونوع فایل داریم text و binary
    فایل های نوع اول که همون سورس کدهای برنامه هستن توسط تکست ادیتور قابل خواندن و ویرایش هستند اما وقتی سورس کد رو کامپایل میکنید خروجی کامپایلر باینری هست که این فایل ها رو باید با ابزارهای خاص مثه دیساسمبلرها و دیباگرهای سطح باینری خوند و ویرایش کرد در رابطه با لایبرریها هم این قضیه وجود داره که چون باینری هستند نمیشه با تکست ادیتور خوندشون . اگه منظورتون اینه که هیچی ولی اگه میخوان فایل های باینری رو خوندش رو سخت کنین باید از کرایپتورها پکرها و مبهم کننده های کد استفاده کنین این عمل تا حدودی خوندن کدهای باینری رو برای کرکرها سخت میکنه و فرایند مهندسی معکوس کد پیچیده میشه ولی چه از لحاظ تئوری و چه از لحاظ عملی روشی که کدها رو بصورت صدردرصد غیرقابل خوندن کنه وجود نداره فقط میشه کار کرکر رو سخت کرد ولی نمیشه جلوشو گرفت . موفق باشین

    دیدگاه


      #3
      پاسخ : کدینگ روی کد نوشته شده ی - جلوگیری از سوءاستفاده

      نوشته اصلی توسط Alir3za.rezaei نمایش پست ها
      سلام . دونوع فایل داریم text و binary
      فایل های نوع اول که همون سورس کدهای برنامه هستن توسط تکست ادیتور قابل خواندن و ویرایش هستند اما وقتی سورس کد رو کامپایل میکنید خروجی کامپایلر باینری هست که این فایل ها رو باید با ابزارهای خاص مثه دیساسمبلرها و دیباگرهای سطح باینری خوند و ویرایش کرد در رابطه با لایبرریها هم این قضیه وجود داره که چون باینری هستند نمیشه با تکست ادیتور خوندشون . اگه منظورتون اینه که هیچی ولی اگه میخوان فایل های باینری رو خوندش رو سخت کنین باید از کرایپتورها پکرها و مبهم کننده های کد استفاده کنین این عمل تا حدودی خوندن کدهای باینری رو برای کرکرها سخت میکنه و فرایند مهندسی معکوس کد پیچیده میشه ولی چه از لحاظ تئوری و چه از لحاظ عملی روشی که کدها رو بصورت صدردرصد غیرقابل خوندن کنه وجود نداره فقط میشه کار کرکر رو سخت کرد ولی نمیشه جلوشو گرفت . موفق باشین
      سلام
      فرض بگیرید من یک کتابخونه نوشتم که شامل فایل های h و c هستش. چطوری فایل های c رو به شکلی در بیارم (یا مثلا کامپایل کنم) و به بقیه بدم، طوری که متن دستورات به زبان c قابل رویت نباشه؟ خروجی این کار چه فرمت (یا فرمت هایی) میتونه باشه؟ اگه اطلاعت بیشتری دارید لطف کنید بفرمایید.
      در مورد این مبهم کننده ها هم که فرمودید، اگر اطلاعات بیشتری دارید لطفا توضیح بدید.

      دیدگاه


        #4
        پاسخ : کدینگ روی کد نوشته شده ی - جلوگیری از سوءاستفاده

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

        دیدگاه


          #5
          پاسخ : کدینگ روی کد نوشته شده ی - جلوگیری از سوءاستفاده

          تبدیل کنید به اسمبلی
          تنها موردي كه همه آدما يقين دارن خدا در حقش زیاد لطف کرده
          داشتن عقله زيادتر از دیگر آدم ها است

          دیدگاه


            #6
            پاسخ : کدینگ روی کد نوشته شده ی - جلوگیری از سوءاستفاده

            نوشته اصلی توسط Alir3za.rezaei نمایش پست ها
            سلام . دونوع فایل داریم text و binary
            فایل های نوع اول که همون سورس کدهای برنامه هستن توسط تکست ادیتور قابل خواندن و ویرایش هستند اما وقتی سورس کد رو کامپایل میکنید خروجی کامپایلر باینری هست که این فایل ها رو باید با ابزارهای خاص مثه دیساسمبلرها و دیباگرهای سطح باینری خوند و ویرایش کرد در رابطه با لایبرریها هم این قضیه وجود داره که چون باینری هستند نمیشه با تکست ادیتور خوندشون . اگه منظورتون اینه که هیچی ولی اگه میخوان فایل های......
            روش تبدیل هدرفایل به باینری چطوری است ؟
            در حال حاضر توابع ام را در یک فایل .h معرفی می کنم و در یک فایل دیگری با پسوند .h بدنه ی توابع را می نویسم سپس پسوند این فایل را .lib می کنم مر حله ی بعدی میرم تو فایل اولی این لایبری را صدا می زنم . و همه چیز درست کار می کند. اما اگه یکی بیادفایل لایبری منو باز کنه کدهایم را می بینه چون فقط پسوند عوض کردم
            در صورتی که هیچکدام از لایبری های اصلی قابل نمایش نیست . مثلا alcd.lib نمی توانیم بدنه ی توابع اش را ببینیم
            آیا برای این کار نرم افزار ی وجود دارد یا توسط خود کمپایلر این تبدیل فرمت صورت می گیرد ؟

            دلیل: ادغام دو پست برای جلوگیری از اسپم

            نوشته اصلی توسط aliila نمایش پست ها
            تبدیل کنید به اسمبلی
            چطوری مهندس ؟ مثلا برای میکرو avr و کمپایلر کدویژن چطوری این هگز را به برنامه اینکلود کنیم . اصلا چطوری بسازیمش ؟! که فقط این توابع توی اون هگز باشه ؟!
            جدیدترین ویرایش توسط antipa; ۲۰:۴۹ ۱۳۹۸/۰۶/۳۰.

            دیدگاه


              #7
              پاسخ : کدینگ روی کد نوشته شده ی - جلوگیری از سوءاستفاده

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

              دلیل: ادغام دو پست برای جلوگیری از اسپم


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

              ببین کدهای برنامه معمولا تو زبان سی تو دو نوع فایل نوشته میشن . یکی سرفایل ها هستند که با پسوند .h اند که شامل پیش تعریف و اعلام هدر توابع و ثابت ها و ... میشن این نوع فایل ها شامل پیاده سازی نیست و باید پیاده سازی هارو تو یه فایل دیگه با پسوند .c قرار بدی . اصولا هدرفایلها برای خونده شدن توسط برنامه نویس های دیگه و کامپایلر برای تشخیص رابط های توابع و نحوه استفاده از اون ها طراحی شدن شما نمیتونی و اصلا نیاز هم نیست فایل های .h رو به باینری تبدیل کنی اینجوری برنامه نویس های دیگه نمیتونن از توابع پیاده سازی شده در فایل .c استفاده کنن چون نمیتونن با اون توابع ارتباط بگیرن . اون فایلی که باید به باینری تبدیل شه فایل های شامل پیاده سازی و با پسوند .c هستند . چون دلیلی وجود نداره که بقیه بدونن تابع چجوری پیاده سازی شده و فقط رابط تابع و نحوه فراخوانیش رو بدونن کافیه . دلیل اینکه تو زبان سی شما کدهای سرفایل ها رو میبینین هم اینه که از نحوه فراخوانی نابع تعداد ورودی ها و خروجی و ... مطلع بشین اما کدهای پیاده سازی توابع تو زبان سی تو زمان لینک و توسط برنامه لینکر به فایل الحاق میشن و کدهای واقعی توابع چون باینری هستند قابل خوندن برای تکست ادیتورها نیست راجع به عملیات لینک مفصلا توضیح میدم که ما اصولا دونوع لینک کردن داریم یکی استانیک که توسط لینکر و بعد از عملیات کامپایل انجام میشه و اون یکی داینامیک لینک هست که زمان اجرا و در طول اجرای برنامه بسته به نیاز برنامه لینک میشه . شما میاز داری تا کدهای لایبرریتون رو که به فایل های باینری تبدیل کردین و با پسوند .o هست رو زمان لینک توسط لینکر به برنامه لینک کنید . البته همه این کارها رو میشه با gcc انجام داد که مثالشو با تفصیل توضیح میدم

              دیدگاه


                #8
                پاسخ : کدینگ روی کد نوشته شده ی - جلوگیری از سوءاستفاده

                خوب اول سه تا فایل داریم
                1 - فایل add.h که کدش به اینصورته :
                int add (int , int );
                این کد شامل prototype تابعمون هست
                2 - فایل add.c که شامل کد پیاده سازی تابع هست
                int add (int a, int b){
                return a+b;
                }

                3 - و بخش سوم هم برنامه ای هست که قراره از این تابع استفاده کنه
                #include <stdio.h>
                #include "add.h"


                int main (void){
                printf("%d", add(5, 6));
                }


                خوب حالا ما میخواییم که کدهای add.c به باینری تبدیل شه و توسط تکست ادیتور قابل خوندن نباشه باید به gcc بگیم که فایل باینری بهمون بده یا اصطلاحا بهش میگن object file
                دستورش اینجوریه :
                gcc -c 'add.c'

                خوب الان یه فایل add.o بهمون میده که کدهاش قابل خواندن نیست حالا میتونی فایل add.c رو حذف کنی و برای اجرای برنامه ات باید به gcc بگی که فایل main.c و add.o رو بهم لینک کن با دستور زیر
                gcc main.c add.o

                دیدگاه


                  #9
                  پاسخ : کدینگ روی کد نوشته شده ی - جلوگیری از سوءاستفاده

                  نوشته اصلی توسط Alir3za.rezaei نمایش پست ها
                  خوب اول سه تا فایل داریم
                  1 - فایل add.h که کدش به اینصورته :
                  int add (int , int );
                  این کد شامل prototype تابعمون هست
                  2 - فایل add.c که شامل کد پیاده سازی تابع هست
                  int add (int a, int b){
                  return a+b;
                  }

                  3 - و بخش سوم هم برنامه ای هست که قراره از این تابع استفاده کنه
                  #include <stdio.h>
                  #include "add.h"


                  int main (void){
                  printf("%d", add(5, 6));
                  }


                  خوب حالا ما میخواییم که کدهای add.c به باینری تبدیل شه و توسط تکست ادیتور قابل خوندن نباشه باید به gcc بگیم که فایل باینری بهمون بده یا اصطلاحا بهش میگن object file
                  دستورش اینجوریه :
                  gcc -c 'add.c'

                  خوب الان یه فایل add.o بهمون میده که کدهاش قابل خواندن نیست حالا میتونی فایل add.c رو حذف کنی و برای اجرای برنامه ات باید به gcc بگی که فایل main.c و add.o رو بهم لینک کن با دستور زیر
                  gcc main.c add.o
                  با توجه به این که بحث تخصصی هست و منبع مناسب فارسی مناسبی هم ندیدم ندارد لطفا اگر امکانش هست توضیح بایک مثال ساده بزنید با تشکر
                  نتوانستم لایبری بسازم

                  دیدگاه


                    #10
                    پاسخ : کدینگ روی کد نوشته شده ی - جلوگیری از سوءاستفاده

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

                    اینی که ایشون نوشته کد نیست که شما اونجا بنویسیدش. دستورات کامند لاین هستن. و بهیچوجه اون چیزی نیستن که شما میخواید. فایل .lib با آبجکت فایل فرق میکنه. آبجکت فایل خروجی اسمبلره. برای هر میکرو متفاوته. صرفا همون کده که به شکل کد ماشین درومده و به لینکر داده میشه تا اگزکیوتبل بده. آبجکت فایل جز برای استفاده دوباره "روی همون مدل میکروکنترلر" و با "همون تولچین" به درد دیگه ای نمیخوره. کاربردش برای زمانیه که شما بخواید makefile رو دستکاری کنید، و این اجازه رو بدید که با استفاده از فلگ های مختلف، لینکر با استفاده از آبجکت فایل های متفاوت فایل خروجی رو بسازه. (بدون کامپایل دوباره)
                    من خواستم توضیح بدم ولی متاسفانه [با اینکه خودش مطلب سختی نیست] نکات زیادی داره و وقت گیره. درست کردنش راحته، ولی هماهنگ کردن برای دستکاری های بیرون زمانبره.

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

                    به هر حال، چیزی که شما لازم دارید برای جستجو کردن این واژگانه : statically linked library
                    جدیدترین ویرایش توسط tiranoid; ۲۱:۵۱ ۱۳۹۸/۰۷/۰۴.
                    Si vis pacem, para bellum

                    دیدگاه


                      #11
                      پاسخ : کدینگ روی کد نوشته شده ی - جلوگیری از سوءاستفاده

                      کسی نیست مرا یاری رساند؟

                      دیدگاه

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