1. عرض جديد خاص بالإشتراك في سيرفر الأحلام و IPTV

هديّة رأس السّنة : أوّل تذكرة لعالم احتراف صياغة السّوفتويرات

الموضوع في '*أهم مواضيع الفورتاك ستار*' بواسطة AbouRayene, بتاريخ ‏17 ديسمبر 2005.

حالة الموضوع:
مغلق
  1. AbouRayene

    AbouRayene .

    إنضم إلينا في:
    ‏17 نوفمبر 2005
    المشاركات:
    0
    الإعجابات المتلقاة:
    1
      17-12-2005 03:43


    هنا الدخول في الطريق الصّحيح لمجال تعديل السّوفتوير بالشكل المناسب غير المتعارف عليه سابقاااااا

    [​IMG]

    و نبدأ مع أوّل تذكرة في هذه الطّريقة الوعرة و المتشعّبة مع برنامج dasm st20 و طريقة استعماله و كيفيّة قراءة الملف الناتج عن تفكيك جزء من السوفتوير

    [​IMG]

    نفتح البرنامج و نختار الجزء المراد تفكيكه من السّوفتوير و اختيار أيضا مسار الملف بعد تفكيكه
    و انتبهوا إلى اعدادات البرنامج جيّداااا كما في الصّورة
    و هنا أخذنا مثالا بسيطااااا حول مكان وجود الإصدار و رقمه و تاريخه و اسم الحبار الذي أصبح الجميع يستطيع تعويضه باسم آخر دون التمكّن إضافة و لو بايت واحدة فقط .... الآن يمكنكم ذلك إن أردتم....مع أنّ هذا ليس غرضنا
    نأتي الآن للملف المفكّك

    كود (text):
    ]===============================================================================
    Subroutine Summary
    ===============================================================================
    Subroutine Called From

    ===============================================================================
    0000F660 30     ldnl #0
    ..........
    ..........
    ..........
    0000F7D1 49     ldc #9
    0000F7D2 42     ldc #2
    0000F7D3 4D     ldc #D
    0000F7D4 00     j loc_F7D5
    0000F7D5 4E   loc_0000F7D5: ldc #E
    0000F7D6 6572     ldl -#5E
    0000F7D8 6100     j loc_F7BA
    0000F7DA 42657461546563686E696B00  .string "BetaTechnik
    0000F7E6 4E61677261566973696F6E00  .string "NagraVision
    0000F7F2 416C376261722046544120556C747261 .string "Al7bar FTA Ultra"
      00
    0000F803 4C69666574696D6520556C74726100  .string "Lifetime Ultra
    0000F812 416C37626172202D20322E383900  .string "Al7bar - 2.89
    0000F820 42     ldc #2
    0000F821 6F6F74     ldl #F04
    0000F824 20     .db #20
    0000F825 76     ldl #6
    0000F826 6572     ldl -#5E
    0000F828 20     .db #20
    0000F829 3A     ldnl #A
    0000F82A 20     .db #20
    0000F82B 00     j loc_F82C
    0000F82C 32   loc_0000F82C: ldnl #2
    0000F82D 34     ldnl #4
    0000F82E 2E204E     ldc #E0E
    0000F831 6F76     ldl -#FA
    0000F833 2E2032     ldnl #E02
    0000F836 30     ldnl #0
    0000F837 30     ldnl #0
    0000F838 35     ldnl #5
    0000F839 2874     ldl #84
    0000F83B 2900     j loc_F8CD
    0000F83D 20     .db #20
    0000F83E 20     .db #20
    0000F83F 20     .db #20
    0000F840 60BB     ajw -#5
    0000F842 76     ldl #6
    0000F843 21282E295E    ldnlp #18E9E
    0000F848 2BF9     lbx
    0000F84A 48     ldc #8
    0000F84B 24F1     shl
    0000F84D 76     ldl #6
    0000F84E 21282E295E    ldnlp #18E9E
    0000F853 81     adc #1
    0000F854 2BF9     lbx
    0000F856 24FB     or
    0000F858 2F2F2F4F    ldc #FFFF
    0000F85C 24F6     and
    0000F85E D4     stl #4
    0000F85F 40     ldc #0
    0000F860 D0     stl #0
    0000F861 76     ldl #6
    0000F862 2B2C53     ldnlp #BC3
    0000F865 25FA     dup
    0000F867 D6     stl #6
    0000F868 30     ldnl #0
    0000F869 53     ldnlp #3
    0000F86A D3     stl #3
    0000F86B 70   loc_0000F86B: ldl #0
    0000F86C 73     ldl #3
    0000F86D 28F1     wsubdb
    0000F86F 25FA     dup
    0000F871 D2     stl #2
    0000F872 82     adc #2
    0000F873 2CFA     ls
    0000F875 25FA     dup
    0000F877 D1     stl #1
    0000F878 272F2F4F    ldc #7FFF
    0000F87C 24F6     and
    0000F87E 74     ldl #4
    0000F87F F4     diff
    0000F880 C0     eqc #0
    0000F881 A9     cj loc_F88B
    0000F882 71     ldl #1
    0000F883 28202040    ldc #8000
    0000F887 24F6     and
    0000F889 C0     eqc #0
    0000F88A AA     cj loc_F895
    0000F88B 70   loc_0000F88B: ldl #0
    0000F88C 81     adc #1
    0000F88D D0     stl #0
    0000F88E 48     ldc #8
    0000F88F 70     ldl #0
    0000F890 F9     gt
    0000F891 22A8     cj loc_F8BB
    0000F893 6206     j loc_F86B
    0000F895 72   loc_0000F895: ldl #2
    0000F896 51     ldnlp #1
    0000F897 2CFA     ls
    0000F899 272F2F4F    ldc #7FFF
    0000F89D 24F6     and
    0000F89F 77     ldl #7
    0000F8A0 2CF8     ss
    0000F8A2 70     ldl #0
    0000F8A3 76     ldl #6
    0000F8A4 30     ldnl #0
    0000F8A5 53     ldnlp #3
    0000F8A6 28F1     wsubdb
    0000F8A8 51     ldnlp #1
    0000F8A9 2CFA     ls
    0000F8AB 28202040    ldc #8000
    0000F8AF 24F6     and
    0000F8B1 4F     ldc #F
    0000F8B2 24F0     shr
    0000F8B4 78     ldl #8
    0000F8B5 23FB     sb
    0000F8B7 41     ldc #1
    0000F8B8 B5     ajw #5
    0000F8B9 22F0     ret
    0000F8BB 40   loc_0000F8BB: ldc #0
    0000F8BC B5     ajw #5
    0000F8BD 22F0    

    و هذه الصّورة تبيّن معاني بعض المصطلحات المستعملة حيث هذه هي لغة برنامج assembleur


    [​IMG]

    و عندما نفهم جيّداااا لغة الأسومبلار نستطيع التعامل مع الملف كأنّه كود سورس للسوفتوير
    علما بأن الكود سورس مكتوب بلغة البرمجة C+ مثلما نرى هنا مثال حول كيفيّة قراءة RAM :


    كود (text):
    ]*
     * memory/simple.c
     *
     * Copyright (C) SGS-THOMSON Microelectronics Ltd. 1997
     *
     * Simple memory partition functions
     */
    /*{{{  includes*/
    #include <stdlib.h>
    #include "memi.h"
    #include "os20i.h"
    /*}}}  */
    #define partition_base u.partition_fast.partition_fast_base
    #define partition_size u.partition_fast.partition_fast_size
    #define partition_free u.partition_fast.partition_fast_free

    /*{{{  void* memory_allocate_simple (partition_t* Partition, size_t Requested)*/
    void* memory_allocate_simple (partition_t* Partition, size_t Requested)
    {
      void*         Memory = NULL;
      unsigned int  Claimed;
      unsigned int  Available;
      if (Partition == NULL || Requested == (size_t) NULL)
        return NULL;
      Available = Partition->partition_size -
        ((char*)Partition->partition_free - (char*)Partition->partition_base);
      if (Available >=  Requested)
        {
          Memory   = Partition->partition_free;
          Claimed  = (Requested + (BYTES_PER_WORD - 1)) & WORD_MASK;
          Partition->partition_free = (char*)Memory + Claimed;
        }
      return Memory;
    }
    /*}}}  */
    /*{{{  void memory_deallocate_simple (partition_t* Partition, void* Block)*/
    void memory_deallocate_simple (partition_t* Partition, void* Block)
    {
    }
    /*}}}  */
    /*{{{  void* memory_reallocate_simple (partition_t* Partition, void* Block, size_t size)*/
    void* memory_reallocate_simple (partition_t* Partition, void* Block, size_t size)
    {
      return 0;
    }
    /*}}}  */
    const partition_class_t partition_class_simple_init = {
        partition_uninit_generic,
        memory_allocate_simple,
        memory_deallocate_simple,
        memory_reallocate_simple,
    };
    int partition_init_simple_generic(partition_t* Partition, void* Base,
        size_t Size, const struct partition_class_s *partition_class)
    {
      if (Size==0)
        return -1;
      task_align(&Base, &Size);
      Partition->partition_class = partition_class;
      Partition->partition_base = Base;
      Partition->partition_size = Size;
      Partition->partition_free = Base;
      Partition->partition_next = NULL;
      partition_add(Partition);
      return 0;
    }
    /*{{{  void partition_init_simple(partition_t* Partition, void* Base, size_t Size)*/
    int partition_init_simple(partition_t* Partition, void* Base,
        size_t Size)
    {
      return partition_init_simple_generic(Partition,Base,Size,
            &partition_class_simple_init);
    }
    /*}}}  */
    انتهى الشّرح الأوّل متمنّيا أن أكون قد وفّقت في إيصال معلومة واضحة لكم و خاصّة لخبراء لغة البرمجة مع أنني أعلم بأنّ الأمر معقّد كثيراااا
    و الى اللقاء في مناسبة أخرى و شرح آخر تقبلوا مني أحلى تحيّة مرفوقة بالبرنامج المستعمل و ملف كود سورس ( غير مكتمل) لجهاز بلاك بيرد ذو ميكروبروساسور 5500

    :satelite:
    :spinstar:
     
  2. tigretunisie

    tigretunisie عضو مميز

    إنضم إلينا في:
    ‏21 نوفمبر 2005
    المشاركات:
    1.367
    الإعجابات المتلقاة:
    113
      17-12-2005 08:15
    شكر لك اخي العزيز ابو ريان
    على المشاركة المهمة والمفيدة

    النمر التونسي
     
  3. tigretunisie

    tigretunisie عضو مميز

    إنضم إلينا في:
    ‏21 نوفمبر 2005
    المشاركات:
    1.367
    الإعجابات المتلقاة:
    113
      17-12-2005 08:16
    تقبل مني خالص تحياتي
     
  4. chammamsat

    chammamsat عضو مميز

    إنضم إلينا في:
    ‏11 ديسمبر 2005
    المشاركات:
    754
    الإعجابات المتلقاة:
    474
      17-12-2005 08:20
    الف الف مليون شكر يا جميل ويا ممتاز
     
  5. WWWISS

    WWWISS كبار الشخصيات

    إنضم إلينا في:
    ‏16 نوفمبر 2005
    المشاركات:
    484
    الإعجابات المتلقاة:
    7
      17-12-2005 10:20
    تسلم الايادي استاذ ابو ريان علي العمل المحترف و اهلا بك
    مثبت
     
  6. أبوعدنان

    أبوعدنان عضو

    إنضم إلينا في:
    ‏20 نوفمبر 2005
    المشاركات:
    52
    الإعجابات المتلقاة:
    0
      17-12-2005 10:50
    مشكور أستاذ أبوريان الورد
     
  7. ابو امل

    ابو امل كبار الشخصيات

    إنضم إلينا في:
    ‏18 نوفمبر 2005
    المشاركات:
    1.986
    الإعجابات المتلقاة:
    422
      17-12-2005 12:32
    يا راجل راك عقدتنى بصراحة كل مرّة حاجة جديدة

    ثق من هنا وصاعدا لن تسمع منّى كلمة شكر لانّها قليلة عليك

    تقبّل تحيّاتى وأرسم لى قبلة على جبين ريّــــــــــــــــــــــان :kiss:
     
  8. AbouRayene

    AbouRayene .

    إنضم إلينا في:
    ‏17 نوفمبر 2005
    المشاركات:
    0
    الإعجابات المتلقاة:
    1
      17-12-2005 12:35
    هههههههههههه

    هذا لا شيء صديقي الغالي فالآتي أروع بكثير

    :kiss:
     
  9. BR2001

    BR2001 عضو مميز

    إنضم إلينا في:
    ‏18 نوفمبر 2005
    المشاركات:
    701
    الإعجابات المتلقاة:
    38
      17-12-2005 14:07
    نسكت علا روخي خير
    هذا هاو شي كبير
    بصراحة يعطيك الصحة
     
  10. Ramzi2005

    Ramzi2005 صديق تونيزيا سات

    إنضم إلينا في:
    ‏18 نوفمبر 2005
    المشاركات:
    1.476
    الإعجابات المتلقاة:
    561
      17-12-2005 16:34
    مثل هذه الإبداعات ليست بغريبة عنك أستاذي وأخي العزيز أبوريّان
    :bravo:
     
حالة الموضوع:
مغلق

مشاركة هذه الصفحة

جاري تحميل الصفحة...