ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی “ ورود به حساب” کلیک کنید.





اگر فرم ثبت نام برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمیشود، اینجا را کلیک کنید.





نمایش نتایج: از 1 به 1 از 1
  1. #1
    sina
    sina
    Guest

    روشهاي Crack در PC

    در اين مقاله به اين موضوع خواهيم پرداخت كه چگونه اكثر روشهاي محافظت در برابر كپي گرفتن از INT13 استفاده خواهند كرد. براي شروع تاكيد مي*كنيم كه آشنايي با اسمبلر و چگونگي استفاده از Debug مورد نياز خواهند بود، زيرا اين دو نقش مهمي در روشهاي Crack كردن ايفا خواهند كرد.
    مروري بر INT-13

    بسياري از روشهاي محافظت در برابر كپي گرفتن از وقفه ديسك (INT-13) استفاده مي*كنند. INT-13 اغلب براي خواندن يك تراك يا سكتوري كه بطور غيرمعمول فرمت شده يا براي نوشتن يا فرمت كردن تراك يا سكتوري كه آسيب ديده است، بكار برده مي شود. INT-13 مانند هر وقفه ديگر با فرمان اسمبلر INT-13 (CD13) فراخواني مي*شود. [AH] براي انتخاب فرمان موردنظر با اكثر رجيسترهاي بكار رفته در داده*ها استفاده مي*شود.
    روش Crack كردن INT-13

    اگرچه، INT-13 تقريباً در همه روشهاي محافظتي بكار مي*رود، اما فايلهاي DOS آسانترين آنها براي Crack كردن است. توجه داريم كه برنامه محافظتي ممكن است از INT-13 براي بارگذاري برخي از داده*هاي ديگر از يك سكتور يا تراك عادي روي ديسك استفاده كند، بنابراين تعيين تراكها يا سكتورهايي كه براي روش محافظتي مهم هستند، حائز اهميت است. براي اين منظور مي*توان از برنامه Lock smITH(LS) يا ديسكت analyser براي تحليل ديسكت استفاده كنيم. هرگونه تراك يا سكتوري كه بنظر غيرعادي است يادداشت نماييد. اين تراكها به احتمال زياد بخشي از روتين محافظتي هستند.

    حال ديباگ را اجرا مي*كنيم. بعد از بارگذاري شدن فايل اجرايي جستجويي را براي CD13 انجام دهيد. هر آدرسي كه نشان داده مي*شود، يادداشت كنيد.

    اگر هيچ آدرسي پيدا نشد، مي*تواند دو حالت وجود داشته باشد. اينكه اولاً برنامه داراي محافظتي در برابر كپي گرفتن نيست يا اين كنترل روي بخش ديگري از برنامه صورت گرفته كه هنوز بارگذاري نشده است. يك مورد ديگر هم وجود دارد و آن اينكه ممكن است خود CD13 نيز بصورت كد مخفي شده باشد. در اينجا نشان داده*ايم كه بك بخش از كد مخفي شده ممكن است چگونه باشد:

    کد:
    -U CS:0000
    1B00:0000  31DB     XOR BX,BX
    1B00:0002  8EDB     MOV DS,BX
    1B00:0004  BB0D00    MOV BX,000D
    1B00:0007  8A07     MOV AL,[BX]
    1B00:0009  3412     XOR AL,12
    1B00:000B  8807     MOV [BX],AL
    1B00:000D  DF13       FIST WORD...

    در اين بخش از كد، AL در محل 1300:0007 برابر DF مي*شود. هنگامي كه شما 12 و DF را XOR مي*كنيد، براي كد INT يك CD(hex) بدست مي*آوريد كه درست پس از آن عدد 13 قرار گرفته مي شود، كه به شما CD13 يا INT-13 را مي*دهد. توجه داريد كه اين نوع كد نمي*تواند با استفاده از فرمان [S]earch ديباگ پيدا شود.
    يافتن INT-13 مخفي شده

    يك راه براي پيداكردن INT-13 كد شده استفاده از فرمان [G] ديباگ است. فقط يك Break Point در آدرس داده شده توسط PC-WATCH قرار دهيد (هر دو برنامه آدرس را برمي*گردانند). مثلاً در كد بالا –G CS:000F ديباگ متوقف مي*شود، شما INT-13 را پيدا نمي*كنيد اما چيزهايي خواهيد يافت كه شما را به سمت آن هدايت مي*كند.
    پس از پيداكردن INT-13 چه كاري بايد انجام داد

    هنگامي كه INT-13 را مي*يابيد، سخترين قسمت كار انجام شده است. آنچه كه باقي مي*ماند فريب دادن برنامه است به گونه*ايي كه تصور كند قفل محافظت وجود دارد. براي يافتن آنچه كه برنامه بدنبال آن است، كد را درست پس از INT-13 امتحان كنيد. بدنبال انشعاباتي باشيد كه در رابطه با CARRYFLAG يا هر CMP با رجيستر باشد. اگر با يك JNE يا JC غيره برخورد كرديد، آدرس ليست شده مربوط به Jump را به زبان اسمبلي بازگردانيد. اگر كه CMP است فقط آن را بخوانيد.

    در اينجا بايد مشخص كنيد كه آيا برنامه بدنبال يك تراك محافظت شده يا يك تراك عادي است. اگر برنامه داراي يك CMP AH,D باشد و در يك تراك محافظت شده خوانده شده باشد، مي*توان فرض كرد كه بدنبال آن است تا ببيند آيا برنامه با موفقيت خواندن يا فرمت كردن آن تراك را انجام داده و يا اينكه آيا ديسك كپي شده است، بنابراين (معمولاً) به سيستم عامل DOS باز مي*گردد. در اين صورت، فقط بايتها را براي CMP و JMP مشابه NOP كنيد.

    اگر برنامه فقط كنترل كند كه Carryflag يك شده است يا نه، در صورتي كه اين تغيير صورت نگرفته باشد، برنامه معمولاً تصور مي*كند كه ديسك كپي شده است. كد زير را امتحان كنيد.


    کد:
    INT 13    <-- Read in the sector
       JC 1B00  <-- Protection found
       INT 19    <-- Reboot
    1B00 (rest of program)


    رنامه، INT را انجام مي*دهد و خطا (سكتوري كه بطور غير معمولي فرمت شده) مي*دهد، بنابراين Carryflag ست شده است. برنامه در دستورالعمل بعدي مي*بيند كه Carryflag يك شده و مي*داند كه محافظت انجام نشده است. در اين صورت، براي فريب دادن برنامه، فقط "JC B00" را به "JMP B00" تغيير دهيد، بنابراين طرح محافظتي شكست مي*خورد. توجه داريد كه روتينهاي محافظتي ممكن است در بيشتر از يك بخش از برنامه وجود داشته باشند.
    كاركردن با فايلهاي EXE در ديباگ

    همانطور كه مي*دانيد، ديباگ مي*تواند فايلهاي EXE را بخواند اما نمي*تواند در آنها بنويسيد. براي انجام اين كار مي*بايست فايل EXE را بطور عادي بارگذاري كرده و برنامه را Crack كنيد. هنگامي كه طرح محافظتي يافته و آزمايش شد، با استفاده از فرمان [D]UMP ديباگ آدرس +10, -10 بايت از كد اطراف INT13 را يادداشت نماييد. به سيستم عامل DOS باز گرديد و فايل را به يك .ZAP (هر پسوندي غير از .EXE) نامگذاري كنيد و آن را با ديباگ مجدداً بارگذاري كنيد. برنامه را براي +20 بايت اطراف كد جستجو كنيد و آدرسي را كه پيدا كرده*ايد يادداشت كنيد. پس فقط اين بخش را بارگذاري نماييد و طبق معمول ويرايش كنيد. فايل را ذخيره كرده و سيستم عامل DOS بازگرديد. نام فايل را مجدداً به .EXE برگردانيد و اين فايل Crack شده مي*باشد. روش ديگر استفاده از DiskEdit نرم افزار Norton Utility مي*باشد.
    ديسك ورودي و خروجي (INT-13)

    وفقه 13 از رجيستر AH استفاده مي*كند تا تابع موردنياز را انتخاب نمايد. در اينجا جدولي را آورده*ايم كه اين وقفه را شرح مي*دهد.



    کد:
    AH=0    Reset Disk
    AH=1    Read the Status of the Disk system in to AL
    
      AL       Error
    ---------------------------------
      00     - Successful
      01     - Bad command given to INT
      *02   - Address mark not found
      03     - write attempted on write protected disk
      *04   - request sector not found
      08     - DMA overrun
      09     - attempt to cross DMA boundary
      *10   - bad CRC on disk read
      20     - controller has failed
      40     - seek operation failed
      80     - attachment failed
    (* denotes most used in copy protection)
    AH=2    Read Sectors
    
      input
        DL = Drive number (0-3)
        DH = Head number (0or1)
        CH = Track number
        CL = Sector number
        AL = # of sectors to read
      ES:BX = load address
      output
        AH =error number (see above)
           [Carry Flag Set]
        AL = # of sectors read
    
    AH =3 Write (params. as above)
    AH =4 Verify (params. as above -ES:BX)
    AH=5 Format (params. as above -CL,AL
           ES:BX points to format Table)
  2. 1
نمایش نتایج: از 1 به 1 از 1

اطلاعات موضوع

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

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  

Content Relevant URLs by vBSEO 3.6.0 RC 2