احمد سخائی فر

کاربر عادی
  • تعداد ارسال ها

    4
  • تاریخ عضویت

  • آخرین بازدید

6 دنبال کننده

درباره احمد سخائی فر

  • درجه
    تازه کار
  • تاریخ تولد ۸۸/۰۲/۲۱

اطلاعات نمایه

  • جنسیت Male
  1. آموزش کرک(1)

    درس ١ آغازي براي كراكينگ بهترين روش براي فراگيري كراك كردن يا نفود، استفاده از كاربردهاي قديميتر كه طرحهاي حفاظتي قديميتري نيز دارند ميباشد. (منظور از كراك يا نفوذ، يعني اختصاصي كردن، احاطه پيدا كردن، حذف يا به تعويق انداختن يا تسليم شدن در برابر يك يا چند طرح حفاظتي داخل يك نرمافزار كاربردي( وقتيكه شما كد اصلي برنامه را در دسترس نداريد) ميباشد) بدينوسيله شما تكنيك اصلي مزاحمت را به سرعت فرا ميگيريد. فراموش نكنيد كه سير تكاملي طرحهاي حفاظتي هميشه به يك صورت نيست. شما احتما ً لا در برخي موارد حقههاي زيركانه جديدي را، درخواهيد يافت اما در بيشتر مواقع شما اين حقه را به زانو درخواهيد آورد. مشكلي نيست، اطلاعات واقعي برنامه نويسان اغلب خيلي محدود است و آنها بيشتر تمايل دارند به جاي تكنيكهاي جديد از همان روشهاي حفاظتي قديمي استفاده كنند. (گرچه ممكن است كمي آنها را تغيير دهند يا حتي در برخي موارد پيشرفتهايي هم بدست آورند). اين حالت معمو ً لا زماني اتفاق ميافتد كه كسي در عوض پول يا براي لذت خودش كاري را انجام دهد. اين نوع تمايلات تجاري، كوركورانه توسط افراد نادان و پول پرست تشويق ميشود، يعني همانهايي كه ما مجبوريم با آنها زندگي كنيم.بهمين دليل من با استفاده از مثالها، برخي كاربردهاي قديمي و برخي حقههاي قديمي از درس سوم به بعد، آنها را به شما ياد ميدهم بطوريكه بعدها ما خواهيم توانست حقههاي حفاظتي جديدتر را نيز با آن پوشش دهيم و شما يادخواهيد گرفت كه چگونه بر آنها پيروز شويد. و به شما خواهم گفت كه در چه جاهايي مي توانيد برنامههاي زيادي براي كراك كردن پيدا كنيد. البته نه براي پولدار شدن! اين خودآموز براي افرادي است كه ميخواهند كراك كردن را شروع كنند. شايد شما به فكر كراك كردن باشيد و هدف شما هم موفقيت در اين زمينه باشد، پس استفاده از اين خودآموز و شروع با حقهها و پروسيجرهاي آن، شما را در همان مسيري كه ميخواهيد قرار ميدهد. البته من قول نميدهم آنچه ميخواهيد با اين خودآموز بدست آوريد اما من بهترين كار ممكن را براي شما انجام ميدهم. بعبارت ديگر اگر شما قب ً لا كدهايي را به كمك اسمبلر كراك كرده باشيد يا به برخي طرحهاي حفاظتي نفوذ كرده باشيد، اين خودآموز براي شما بعنوان يك مبتدي مفيد را فشار دهيم، “go” خواهد بود. (اگر ميخواهيد كمي مفاهيم پايهاي را تكرار كنيم، حركتي نكنيد تا پس همينجا بمانيد). براي يك كراك موفقيت آميز، شما به چهارچيز اصلي احتياج داريد: - يكسري اطلاعات در مورد زبان يك اسمبلر (براي داشتن معلومات بيشتر، و همچنين يك كراك سريعتر و بهتر). - مقداري بينش - كمي كمك از يك كراكر با تجربه - يك تفكر غيرتجارتي (كه در اين مورد بعداً بيشتر صحبت خواهيم كرد ). كاربردهايي كه شما براي فراگيري از آنها استفاده خواهيد كرد به چند دسته زير تقسيم ميشوند:   ١- كاربردهايي كه با يك كلمه عبور محدود شده است (از همه براي كراك كردن سادهتر است). ٢- كاربردهايي كه بر اساس زمان، يا تعداد روزي كه شما از آن استفاده مي كنيد محدود شدهاند (تقريبًا براي كراك كردن آسان است). ٣- كاربردهايي كه بر اساس آخرين تاريخي كه شما از آنها استفاده كرديد، محدود شدهاند (آسان براي كراك كردن). ٤- كاربردهايي كه داراي تعداد فانكشن (تابع) هستند. غيرفعال (برخي آسان، برخي مشكل). ٥- كاربردهايي كه براي كار كردن با آنها، نياز به دسترسي به ديسك ميباشد (اين نوع طرح حفاظتي امروزه چندان استفاده نميشود). كم و بيش همان روشها بكار گرفته شده، اما نه به آن صورتي كه قب ً لا ) CD-ROM با حضور تعريف شده بود) (خيلي آسان براي كراك كردن). يعني يكي از طرحهاي حفاظتي قبلي، اما داراي زحمت ) CRYPTOGRAFEED ADDSON -٦كردن) SHRL كردن و XOR) . بيشتر يا استفاده از كدهايي كه خودشان، خودشان را اصلاح ميكنند (تقريبًا براي كراك كردن آسان است). ٧- هيچيك از حالات فوق (برخي مواقع براي كراك كردن مشكل است). مواد مورد نياز را از كجا تهيه كنيم. ي رايج روي جلد مجلات، ثروتي براي همه كراكرهاست! بعد از مدت CD ROM DEMO كوتاهي، آنها اعلام ميكنند، شما همه كپيهاي باقيمانده كه غيرفروشي هستند را در آينده مجاني هاي روي سيديها به شما اجازه ميدهد كه خيلي سريع، DEMO . دريافت خواهيد نمود كاربردهاي زيادي را  چه كهنه و چه نو  جمع آوري كنيد كه هريك از آنها به طريقي حفاظت شدهاند (كه در برخي مواقع با طرحهاي جالب توجهي حفاظت شدهاند) . در واقع با يك دنياي عجيب كراك مواجه ميشويد. بعداً بدون هيچ پولي شما مي توانيد روي يك سيدي كاربردهاي يا هر نام ديگري) كه براي ٣٠ روز، يا ٢٠ بار دسترسي به wordper fect يا Microsoft لوتوس (يا آن، تنظيم شده باشد، كراك كنيد و در آن صورت براي استفاده بيشتر و بيشتر و يا قرار دادن آن بعنوان هديهاي گرانبها روي وب براي تهي دستاني كه هيچ پول يا هوشي ندارند،به آن نفوذ كنيد. بازيها به نحو آشكاري، از اين روش پيروي نمي كنند. آنها از اين نظر دورنماي جالبي،وراي حفاظت، براي كراكرها دارند. يعني اينكه طرحهاي حفاظتي سطح بالا داخل فايلهاي كوچك آنها پنهان شدهاند. به همين سادگي و آساني براي شكستن و حذف يك طرح حفاظتي داخل يك فايل طولاني كه همديگر را DLL ٣٥٠٠٠ بايتي قابل اجرا بايد آنها را داخل مجموعهاي از چندين پوشش مي دهند و هريك مي توانند طولي به اندازه ٢٠٠٠٠٠٠ بايت داشته باشند، پيدا كنيد. گروههاي برنامهنويسي پيشرفته و در عين حال تنبل،به طور سيستميك. طرحهاي حفاظتي را طوري پنهان مي كنند كه مثل نيش جانوري در يك بيابان پهناور مي ماند. در واقع آنها قادر نيستند برنامه را داخل يك اسمبلر بكار گيرند. آنها از زبانهاي چرب و نرمي مثل ويژوال بيسيك، دلفي يا ويژوال استفاده ميكنند (نگران نباشيد، من چگونگي كراك كردن آن هم سريع با اين كاربردها را به C++ شما خواهم آموخت). دليل ديگر استفاده از بازيها بجاي كاربردها در اين مطالعه اين است كه اغلب همان طرح حفاظتي ساده (و كوتاهي) كه شما در يك بازي اشتراكي به آن نفوذ كرديد بعداً براي يك كاربرد گرافيكي با ارزش و گران قيمت استفاده مي شود به همين دليل در اين خودآموز ما بيشتر به طرحهاي حفاظتي بازيها، نفوذ خواهيم كرد تا اينكه در آينده از آنچه آموختيم، براي نفوذ به طرح حفاظتي يك برنامه ،(remote كاربردي تجاري، يا براي نفوذ و دسترسي به روتينهاي حفاظت شده سرورهاي دور (يا صندوق ناظر هزينه) استفاده كنيم. ) ATM يا حتي ،BBS يا در اينجا، يك مثال كراك كردن را در ذيل ميبينيد كه من اميدوارم به اين وسيله شما به هنر ما پي ببريد. اجازه دهيد بعنوان مقدمه، با هم به اين كاربرد حفاظت شده، نفوذ كنيم. بعداً در درس ٤ شما ياد خواهيد گرفت كه كليه كاربردهايي كه بر اساس زمان محدود شدهاند (يعني مدت زماني كه شما مي توانيد كار كنيد يا تعداد دفعاتي كه مي توانيد كار كنيد) طرحهاي حفاظتي آنالوگي دارند. (اگرچه با وجود بزرگي، تنوع چنداني ندارند). ١- ممكن است آنها شمارندهاي داشته باشند كه هربار يكي اضافه مي شود: آن را بيابيد و غير فعال كنيد. كنند و در ماشين شما قرار دهند: FETCH ٢- ممكن است آنها وقفههاي زمان ساعت را خودتان از اينكار جلوگيري كنيد. ٣- ممكن است آنها يك مقدار تصادفي را با يك متغير مقايسه كنند: با اين حالت هيچ كاري نميتوانيد بكنيد. ٤- ممكن است آنها بصورت تصادفي تاريخ ساير فايلهاي روي هارد شما را (حتي آنهايي كه بي ربط هستند) بررسي كنند: در اين حالت شما بايد روتيني كه اينكار را انجام مي دهد هاي آن را بر عكس كنيد! JUMP پيدا كند و حالا من مي خواهم با يك مثال پيشرفته از اين حالت حفاظتي استفاده از شمارندهها، شروع كنم. در ي خيلي رايج را DEMO اين وضعيت احساس كراك كردن به شما دست خواهد داد و من يك براي اينكار انتخاب كردهام كه شما هم خيلي راحت ميتوانيد آن را پيدا كنيد. براي نمايش برخي مشكلاتي كه ممكن است شما با آن روبرو شويد، ما از اين مثال استفاده مي كنيم. (شما روش نفوذ كار و اثربخش را طي درسهاي آينده خواهيد آموخت). مثال: ARCADE POOL, Demonstration version, PC Conversion by East Point Software Ltd, © Team 17 Software Ltd 1994 از طريق تعدادي از مجلات روي سي دي رام در طول سال ١٩٩٥ منتشر شده است. DEMO اين آنچه در ذيل ميآيد، حتي اگر شما اين مثال را نداشته باشيد، براي شما قابل استفاده مي باشد. اما ي رايج را به منظور فهم بهتر نكات زير تهيه كنيد. DEMO در عين حال شما بايد يك كپي از اين ي زيبا، يك بازي بيليارد است كه بر اساس مدت زمان استفاده از آن محدود شده. DEMO اين يعني شما فقط ٢ دقيقه ميتوانيد بازي كنيد. و بدنبال آن در يك پنجره به شما اعلام ميشود كه از كجا و چگونه ميتوانيد نسخه اصلي اين برنامه را تهيه كنيد. اين بهترين حفاظت درهم و برهم ميباشد. خب حالا چطور و از كجا ميخواهيد شروع كنيم؟ انچه شما ميتوانيد انجام دهيد، در ادامه آمده است: تان بارگذاري كنيد. درس ٢ يعني ابزارهاي Config.sys را بگيريد و آن را در فايل [sOFT-ICE] MARQUIS DE بوسيله [sOFT-ICE] ٢ برنامه / مزاحمت در مورد اين ديباگر را ببينيد. نسخه ٦ كراك شده و بصورت مجاني روي وب، يافت ميشود. ، SOIREE ذخيره همه بردارها قبل از بارگذاري آنها) ) vecs s- [Pooldem.exe] start- شده). hook مقايسه بردار، ذخيره يك پرينت از كليه بردارهاي ) vecs c - كجا مي رود و ما كجا پرسه مي زنيم، چند بار ، [pooldemo.exe] - براي فهم اينكه چه چيزي در شويد و از آن خارج شويد. soft-ice وارد (شما هميشه بايد بيش از يكبار يافتههايتان را موقع جستجو كنكاش كردن، چك كنيد هيچ چيز به غيرفعال و قديمي نمي تواند نكات و روشهاي پيچيده را براي ما روشن كند). dos اندازه همان حافظه مورد استفاده بياندازيد. map ( - نظري به (نقشه يا Snap . در آن مستقر شده ذخيره كنيد [pooldemo.exe] حافظه اصلي را. جايي كه snap - حالا (snap-sane) كردن يعني ذخيره تصاويري از نواحي حافظه - هيچ كاري انجام ندهيد و اجازه دهيد ثانيهها سپري شوند. ها را مقايسه كنيد snap - هر دو يا سه ثانيه بدون اينكه چيزي را روي صفحه بازي جابجا كنيد هيچ چيزي، حتي كليك موس) بنابراين اميدواريم تنها تغييراتي كه باعث فعال ) (snap-compar) شدن شمارنده مي شوند ذخيره شوند. در ثانيه : 00:٥٩ و در ثانيه ١:٠١ snap دوبار در ثانيه -مقايسه snap - مقايسه (nag screen يا ) nag صفحه snap درست قبل و بعد از محدوديت زماني و ، snap - مقايسه هايتان را جمع آوري كنيد. حالا بطور واضح روي صفحات snap هاي data - حالا با دقت پرينت هاي روي داده را بنويسيد. snap مختلف - حالا لحظه زيباي كراك كردن فرا رسيده. حالا با يك ودكاي مارتيني بنشينيد (فقط ودكاي روسي) و به محلهاي مختلفي كه روي پرينتها داريد فكر كنيد. محلي را پيدا كنيد كه در آن مقايسه دچار تغيير شده، آناليز، تغيير و معادل سازي كنيد. snap هي، چيزهايي اينجا و آنجا صيد شدهاند (شما خوش شانس هستيد با كمي تغييرات شما اينكار را انجام داديد، در اين حالت فقط دو دوجين). بگذاريد. يعني محلي كه فكر break point - در حال اجرا روي محلي كه پيدا كردهايد، يك مي كنيد شمارنده از آنجا فعال مي شود. بعبارت ديگر محلي كه در يك زمان خاصي، با صفر شدن آن اجراي برنامه خاتمه مييابد. كردن در لحظهايكه محتويات محل مورد نظر در break را بوسيله BPX - حالا معادل شمارنده حال تعويض است، در آن جا قرار دهيد. بدين وسيله، شما باعث مي شويد برنامه از اول شروع به اجرا كند. (به اندازه يك ثانيه براي شروع مجدد طول مي كشد). استفاده از شمارنده معادل، مثل يك اجراي يك مرحلهاي در طول حيات برنامه شما ميباشد!. 3، قرار مي گيريد. سطر تعويض در زير DD در اين حالت شما به سرعت در محل تعويض يعني 0 آمده است: xxxx:3DCC C706F1013C00 MOV WORD PTR [01F1], 003C 3 را در اين محل C يك شمارنده بايت ميباشد. يعني برنامه xxxx:3DD 3 در آدرس 0 C كه بايت آن را مرحله به مرحله. كم ميكنند يعني DEC بارگذاري مي كند و سپس دستورهاي 38,39,3 و .... تا 0 و وقتيكه به صفر رسيد، بينگو! كاربر نادان يك ثانيه از وقتش براي A,3B بازي را از دست داده است. براي حذف حفاظت ،nag screen اگر شما جستجوي بيشتري براي يافتن محل صحيح مربوط به انجام دادهايد، حالا وقت آن است كه همان اولين سطح ويزارد مربوطه را حفظ كنيد. اما اگر فكر مي كنيد آن را قب ً لا بدست آوردهايد ولي خاطرتان نيست كه از چه روشي استفاده كردهايد، اين اصل را بخاطر بسپاريد: ”فقط يكبار شما مي توانيد اثر يك حفاظت را حذف كنيد، پس بيش از اين كاري انجام ندهيد“. اكثر مواقع اين گفته درست است كه : شما هميشه احتياجي به حذف يك حفاظت نداريد (مگر آنكه شما دقيقًا براي اينكار مطالعه كرده باشيد). معمو ً لا حذف اثر يك طرح حفاظتي آسانتر (و سريعتر) ميباشد كه متأسفانه در مثال ما كار درستي نخواهد بود. در اينجا شما تصور مي كيند شمارنده را قب ً لا پيدا كردهايد. در واقع شما، شمارندهايكه ساعت طرح حالا شايد فكر كنيد كه مي توانيد مقدار . [pooldemo.exe] حفاظتي را تنظيم ميكند، پيدا كردهايد را هم تمرين كنيد... اما هميشه FF ، تغيير بدهيد، (ها EE 3 به C يدكي را پيدا كنيد و آن را به جاي تمرين كردن روي مقادير اضافي در موقع كراك كردن خيلي خوبست) شما بايد چهار دفعه براي بازيتان زمان بگيريد تا طرح حفاظتي غيرفعال شود. تغيير دهيد. براي كار روي بايتها شما بايد از يك EE 3 به C را از xxxx:3DD پس محل 0 كه به صورت اشتراكي (parity solution يا ) [ Psedit.exe ] يعني PSEDIT ويرايشگر هگز مثل هم اجرا مي شود استفاده كنيد (بخش ابزار مزاحمت را ببينيد) ولي هميشه امكان كار با براي شما فراهم نيست (درس ٢ را ببينيد). حالا فايل [symdeb] يا [debug] ديباگرهايي مثل ايكه با كپي آن كار كرديد بخاطر بياوريد. [*.exe]dead ren POOLDEMO.EXE POOLDEMO.DED symdeb POOLDEMO.DED -s (cs+0000):0 Lffff C7 06 F1 01 C3 <- this string corresponds to the refill line). cs:3E85 <- symdeb gives you two locations as answer cs:3EEA -e cs:3E85+4 EE <- refill changed from C3 to EE -w ren POOLDEMO.DED POOLDEMO.EXE موقتي خودتان را اجرا كنيد. گمان ميكنيد آن را كراك كردهايد و احساس pooldemo حالا شما خشنودي ميكنيد.. اما لوو! هيچ چيزي در مجموع تغيير نكرده است. همه چيز به سختي قبل است. شما فقط دو نوبت براي بازي وقت داريد. چطور مي خواهيد حريف را ناكام كنيد بطوريكه نتواند هيچ كاري انجام دهد؟ خب براي شروع شما به اندازه كافي مراقب نبوديد! جستجو در ديباگر دو محل را به شما مي دهد، شما ناداني كرديد و آن را كه درست بود تشخيص نداديد. چك كنيد، آن وقت است كه خواهيد يك منطقه با كنترل آينهاي ميباشد (در اين مورد بعداً بيشتر صحبت (CS:3EEA) ديد دومين محل خواهيم كرد) . در برخي مواقع دو محل وجود دارد كه با استفاده از يك روتين دوبل،كار سريعتر مي شود. گاهي دومين محل آينه اولي مي باشد و در مواقع لزوم آن را تصحيح ميكند. پس شما بايد اين يكي را هم اصلاح كنيد. مثل قبل رفتار كنيد. اما اين بار به كمك يك ديباگر سطر زير را وارد كنيد: -E CS: 3EEA+4 EE تغيير نام دهيد و بعد آن را اجرا كنيد. لوو ! exe و آن را به deal قبل از نوشتن برگرديد به فايل هوو! ي شما، حالا بدون حفاظت است. فكر ميكنيد حالا pooldemo.exe ؟ يواش! شما آنجا هستيد بتوانيد مثل احمقها ١٢ دقيقه واقعي بازي كنيد، حتي اگر معتقد باشيد طرح حفاظتي (و شمارنده) تنها دو دقيقه به شما وقت مي دهند. پس شروع به بازي كنيد، ثانيهها خيلي آهسته ميگذرند و همه چيز خوب به نظر مي رسد. اما نه! يعني شما .« دو دقيقه تمام شد » در صفحه ثانيه ٢٨ ، شما تصويري را ميبينيد كه به شما ميگويد واقعًا اشتباه كرديد، برنامه زمان صحيح را از تايمر ميگيرد و شما بطرز احمقانهاي فقط شمارنده روي صفحه نمايش را اصلاح كردهايد. پس بايد برگرديد براي كراك كردن و اوقاتتان تلخ است بطوريكه راههايي را كه از آغاز كراك كردن طي كردهايد فراموشتان شده. پس بايد حالا كارتان را تكميل كنيد. شروع كنيد به چك كردن [soft-ice] را بداخل pooldemo را ديديد كه vecs-save شده (قب ً لا روتين hook بردارهاي استفاده كنيد). و بعضي vecs-compare بارگذاري مي كرد و بعد از آن شما مي توانستيد از چيزهاي جالب را ببينيد. بطور غير مستقيم INT- اين بيشتر شبيه آن چيزي است كه شما چيزي در مورد آن نمي دانيد. 8 را در IRQ- را كنترل مي كند. كليپ ساعت 8253 ، يك وقفه سخت افزاري 0 INT-1C وقفه تايمر يا روتين سرويس دهنده ) ISR محدوده 18.2 وقفه در ثانيه توليد مي كند كه باعث انتقال كنترل به 0 باشد CD1:17AC اشاره مي كند، مي شود و ... اين بايد در آدرس INT- وقفه) كه در اينجا به 08 1 گير افتاده. EFD:84C در 6 pooldemo.exe اما در اينجا بوسيله داخل باياس انجام مي دهد آنست كه يك وقفه INT- يكي از كارهايي كه روتين وقفه مربوط به 08 فراخواني مي شود كه درست در همين حال جلو پاسخگويي ماژولهاي INT-1C نرمافزاري براي نرمافزاري داخل سيستم، گرفته مي شود. و چنانچه ممانعتي بعمل نيايد، محتويات پيش فرض 1 وقوع يك دستور نابجا در باياس سيستم را اعلام مي كند. بنابراين هيچ C مربوطه به بردار وقفه كاري انجام نمي گيرد. CPU مربوط به INT- از 08 ISR جلوگيري كند تا هر INT-1C بطور نرمال يك محافظ بايد از و يك شيوه فراخواني وقفه براي (fetch محتويات بردار وقفه صحيح را از حافظه فراخواني كند (يا باشد ولي بجاي آن محتوي هر F كه آن ادرس (كه بايد شامل دستور مربوطه در آدرس 000:9876 چيزي كه فكرش را بكنيد شده است)ميباشد. شده در حاليكه يك hook ، پس  شما گمان مي كنيد  طرح حفاظتي اينجا مستقيمًا با وقفه 08 طرح حفاظتي پيوسته و تشكيل در اينجا استفاده شده. خب حالا چكار كنيم؟ به جاي اينكار به توضيحات زير توجه كنيد: كنترل شده، و در آدرس mask كه به وسيله بيت صفرم رجيستر IRQ- وقفه تايمر سطح 0 به 1، تنظيم شد (يا mask قرار دارد بايد غيرفعال شود. وقتيكه بيت صفرم رجيستر I/O 0021h نخواهد شد كه متأسفانه نبايد اينطور IRQ شد) هيچ كمكي به وقفهها براي تشخيص سطح set باشد. اما اين تفكيك جالبي است كه بهتر است شما آن را ياد بگيريد، كه در اين حالت شما در جاي ديگر به آن نياز داريد. (+ORC نوشته ،IRQ-0 masking ) ...حقهاي براي غيرفعال كردن تايمر بزنيد، كمي بعد خواهيد ديد كه ساعت enter يعني نمايش زمان) تغيير دهيد و ) $t اعلان سيستم را را اجرا كنيد. با استفاده از DEBUG.com . در طول اجراي اين حقه چطور عمل خواهد كرد dos اسمبل كنيد: `a` فرمان * Assemble using the command 'a' - a in al,21 or al,1 out 21,al ret RETURN RETURN <- twice to exit immediate assembler - g 100 <- to run the tiny program. - q <- to quit debug. هورا! پيشرفت ساعت :enter نمايش زمان) هنوز فعال است، كمي بعد از زدن )$t اعلان فرمان متوقف شده! را mask بارگذاري كرديد، بيت ،AL جاري را به داخل mask توضيحات: شما محتويات رجيستر بود) و بالاخره مقادير برگشتي به IRQ- در محل بيت صفرم، تنظيم كرديد (كه مربوط به وقفه 0 هستيد دوباره IRQ- را بروز رسانديد. وقتيكه شما آماده فعال كردن مجدد رخداد 0 mask رجيستر مجدداً راهاندازي كنيد. ،IME را با فرمان DOS ديباگ را اجرا كنيد. و سپس ساعت متوقف شده - a in al,21 and al,fe out 21,al ret RETURN twice - g 100 - q در واقع با غيرفعال كردن كليك تايمر، برخي پروسهها، صحيح عمل نمي كنند. يكبار شما به درايو ديسكت دسترسي پيدا مي كنيد، پس از آن موتور، اجاي برنامه را تا بينهايت ادامه خواهد داد و الي آخر. ي ما كه شما حالا در حال جستجوي آن [pooldemo.exe] متأسفانه تكنيك فوق نميتواند با EOI هستيد و فكر مي كنيد طرح حفاظتي را پنهان كرده، كار كند. در اين مورد، شما بايد بلافاصله را پيدا كنيد. هر دوي كنترل OUT 20h,AL , MOV AL,20h يعني انتهاي وقفه را از طريق 0)مي باشند، كه دستورات از آن گرفته a0h كنندهها، داراي يك پورت دوم آدرس در 20 ( يا 20 ) ميباشد. اين دستور، انتهاي هندلر وقفه را تعيين ميكند h)EOI مي شود كه مهمترين آنها فرمان و معادل كنترل كننده را براي وقفه بعدي، آزاد ميكند. اگر كسي يك هندلر وقفه بهينه شده بنويسيد (همانطور كه برخي طرحهاي حفاظتي انجام مي دهند). اين امر، او را موفق به ديدن انتهاي هندلر 0 مي كند. a0h 20 يا پورت h 20 ) نوشته شده براي پورت h) EOI فرمان فراخواني)ها، بعد از يك )call هاي معمول، سپس برخي (push) پوش ،EOI بعد از ادامه ،out ميشود، كه به نظر ميرسد مشابه احياء تايمر باشد (دستور out 40, AL فراخوانياي منجر به 40 معادل شمارنده / تايمر، انتقال مي دهد). براي - را به يك پورت خروجي و پورتهاي 42 data FAR نگهداري، يك فراخواني دوبل، يك فراخواني شرطي و سپس يك فراخواني مرموز از نوع خواهد داشت كه فراخواني نهايي را PTR[970C] لازم است كه بستگي به بايت CS:[AA91] ميكند. POP تعيين خواهد كرد. پس روتين كليه رجيسترها را مي كنيد. بداخل هريك از فراخوانيها نظر dis assembling شما آهي ميكشيد و شروع به در محل ورودي ،breakpoint مهندسياي مياندازيد، (روش سريعتر در اين حالت، استفاده از ديگري از اين طرح حفاظتي محدود به زمان پيدا ميكنيد يا نه). call مي باشد كه ببينيد كه آيا شما كار كرديد و كار كرديد و كار كرديد. و در مجموع هيچ چيزي پيدا نكرديد. حفاظت اين برنامه اينجا نيست. ها، ما خيلي زود آن را به حال خود رها كرديم. snap برگرديد به آناليز پرينت نگاه كنيد،متوجه خواهيد شد DS: و 0 DS:FFFF اگر با دقت بيشتري به مقايسه محلهاي محدوده كه يكي از آنها خيلي آهسته از 0 به 1 به 2 به 3 و ... تغيير مي كند. در حاليكه تغيير مكانهاي قبلي و DS: را طي ميكرد، يك شمارنده در محل 0009 FF.. خيلي سريع بوده و سيكل كامل 0 3C ، حالا اين چقدر طول ميكشد؟ خب ما در بالا ديديم كه شارژ كردن در هر ثانيه ! DS:0004 معادل ١٢٠ ثانيه است. يعني ، X خواهد شد كه 78 X3C*x78=X1C ميباشد بنابراين در كل 20 محدوده زماني دو دقيقه. قرار ،CS:offset 1 بگرديد (زمان حفاظتها، اكثراً در شروع بخش C حالا داخل كد بدنبال مقدار 20 دارند) و شما به سرعت به آنچه در ذيل آمده خواهيد رسيد: در محل كد زير قرار دارد: ،[pooldemo.exe] حفاظت در CS:0A8A 813E20A7201C CMP WORD PTR [A720], 1C20 compare location A720 with limit 1C20 CS:0A90 7C07 JL okay_play_a_little_more CS:0A92 E834FD CALL beggar_off_time_is_up BINGO!: FOUND! Now let's quickly crack it: حالا اجازه دهيد به ان سريعًا كراك كنيم: CRACKING POOLDEMO.EXE (by +ORC, January 1996) ren pooldemo.exe pooldemo.ded symdeb pooldemo.ded - s cs:0 Lffff 81 3E 20 A7 20 1C xxxx:yyyy <- this is the answer of the debugger - e xxxx:yyyy+5 4C <- this time limit is much better - w - q ren pooldemo.ded pooldemo.exe در اينجا ما يك كراك طولاني انجام دادهايم ولي در عوض خودمان را با يك محدوده زماني (بهتر) ٤ دقيقه) به جاي ٢ دقيقه تغيير داديم. اگر دستور ) 4C 1 به 20 C وفق داديم، آن را از 20 پرش به هر طريق) تغيير مي داديم ما بطور وضوح ) JMP را به دستور (Jump lower)JL توانستيم يك كراك ريشهاي انجام دهيم. در اين حالت براي گرفتن نتيجه ايكه در درس ٤ بيان خواهد شد، شما لازم است يك نفوذ كام ً لا ظريف را در برخورد با يك طرح حفاظتي محدود به زمان، انجام دهيد. همانطور كه ديديد، طي اين نفوذ ساختگي، ما طرح حفاظتي را پس از كمي جستجوي مخفيانه در اطراف، پيدا كرديم. اما همانطور كه در درسهاي آينده خواهيد ديد، ما براي نفوذ به يك طرح حفاظتي، از روشهاي مختلفي ميتوانيم استفاده كنيم. بعنوان مثال، همين حفاظت را شما به روشهاي انجام trace ديگري نيز ميتوانيد انجام دهيد: مث ً لا روي محدودهاي از حافظه براي برنامه، يك روي break point را به اولين قسمت آن محدود كنيد) . با قرار دادن يك trace دهيد. البته بايد 300 بيندازيد. اگر هيچ چيزي را - شده 400 trace گاهي به آخرين دستورهاي ،nag screen جابجا نكنيد، هرچيزي، يك الگوي تكراري خواهد داشت تا اينكه حفاظت روي كدهاي زير شود: snap ... JL 0A99 CMP BYTE PTR [A72A],01 ... JL 0A99 CMP BYTE PTR [A72A],01 ... for ages and ages and then... ... JL 0A99 E834FD CALL 0759 <- BINGO! (CALL beggar_off_time_is_up) راههاي ديگري هم براي اينكار يافت ميشود (اما ظاهراً، اين روش بهترين است ولي متأسفانه nag هاي شما و فاصله بين حفاظت و break خيلي بيثبات است. چون بستگي به محدوده دارد. بنابراين ممكن است بطريقي تكميل شود ولي اطميناني كه به روشهاي قبلي داشتيم، screen را در اينجا نخواهيم داشت. علت اينكه نزديكي به محل مورد نظر در كراك كردن موفقيت آميزتر از كار با بردارها ميباشد آنست كه بيشتر برنامهها هيچوت به سختي حفاظت نشدهاند. بنابراين، يافتن حفاظت آنها چندان مشكل نخواهد بود. (و اينكه كراك كردن به آنها، براي مطالعه، واقعًا ارزشمند است). گاهي اوقات شما حتي نيازي به كراك كردن همه چيزها نداريد، برخي كاربردها، تعداد زيادي درآورده شدهاند. demo فانكشن (يا تابع) دارند اما كام ً لا عجولانه، براي انتشارشان بصورت يك برنامههاي تجاري فقط پولشان مهم است و حتي برايشان اهميتي ندارد كه ما چكار مي كنيم و چندان مراقبتي براي اينكار ندارند. بهمين منظور مقدار ساير چيزهاي روي هارد كه ممكن است كاربر آنها را از طريق ماژولهاي برنامه اصلي بهم بريزد، براي آنها اهميتي ندارد. يك مثال از اين است كه در تابستان ٩٥ به SSI از [Panzer General] يdemo نوع، روش بهم ريخته مربوط به بازار آمد. كه آن در واقع تكميل شده نسخه بتاي بازي بود. شما در واقع بايد يكي از دو نسخه مجاز را از بين بيش از ٢٠ نسخه بتا، براي بازي مجاني، پيدا ميكرديد. ... شما حتي نيازي به كراك كردن هم نداشتيد. را از اول تا zen ي بالا نبايد شما را از اصل كراك دلسرد كند. دقت كنيد و آناليز pooldemo مثال آخر، قبل از اينكه مجبور به انجام روشهاي پيچيده شويد، انجام دهيد. بخاطر داشته باشيد كه شما مي خواهيد به طرح حفاظتي بهر طريق ممكن نفوذ كنيد و نيازي به خط سير برنامهنويسي كه آن برنامه را نوشته نداريد. فقط از شما خواسته شده به اين برنامه نفوذ كني. خب خواننده عزيز اينهم از اين درس. همه درسهاي من روي وب نيستند.. بزنيد. شايد شما كلكهايي بلد باشيد كه من هنوز كشف نكردهام. من همان قبليها را mail به من ميدانم اما اگر چيز جديدي باشد اعتبار شما را خيلي زياد ميكند. حتي اگر اينطور هم نباشد من ميفهم كه شما خيلي روي موضوع كار كردهايد. در آنصورت من درسهاي باقيمانده را براي شما خواهم فرستاد. انتقادات و پيشنهادات شما در مورد چرندياتي كه من نوشتم، هميشه براي من خوشآمد خواهد بود.
  2.       وقتی که کریستوفر پنج ساله ساکن شهر سن دیگو ایالت کالیفرنیا توانست به حساب کاربری ایکس باکس وان پدرش دسترسی پیدا کند، والدین او بسیار کنجکاو شدند تا بدانند که چگونه این اتفاق افتاده است. البته پدر کریستوفر که خود در زمینه امنیت شبکه کار می‌کند بسیار شگفت زده شده بود هنگامی که متوجه شد پسرش ابتدا با تایپ یک گذرواژه اشتباه وارد صفحه بازبینی گذرواژه شده و از آن جا به بعد تنها با فشار دادن دکمه "اسپیس" کیبورد به صورت مداوم توانسته است به حساب کاربری پدر نفوذ کند. این پدر و پسر که اقدام به گزارش این حفره امنیتی به مایکروسافت کردند از سوی مایکروسافت مورد تقدیر قرار گرفتند و یک سال اشتراک Xbox Live به همراه چهار عنوان بازی و 50 دلار به عنوان هدیه به کریستوفر کوچک اعطا شد. همچنین اسم کریستوفر به عنوان کارشناس امنیتی در وب سایت مایکروسافت درج شده است.
  3. آموزش اسمبلی(pdf)

    سلام به دوستان خوب نرم افزاری امیدوارم هر روز بهتر از دیروز باشید.واز تراشه های زندگیتون پله بسازید و بالا برید.یه فایل pdfهست امیدوارم خوشتون بیاد. assembly.pdf
  4. زبان برنامه نویسی؟جالبه؟

    برای مقدار اولیه دادن به یک متغیر در زبان سی می توان به این صورت عمل کرد.  int temp=5 ولی در زبان پاسکال چنین نیست . برای اینکه بتوان به متغیری مقدار اولیه داد می بایست از خاصیت Const استفاده کرد .که به این صورت می باشد     const   a:byte=14 و جالب اینجاست که این متغیر مثل بقیه متغیر های Const نیست که نتوان مقدار آنرا تغییر داد ، بلکه مثل بقیه متغیرهاست که در Var تعریف می کنیم. زمانی که بخواهیم یک متغیر رشته ای تعریف کنیم چه در زبان سی و چه در زبان پاسکال باید حواسمان به فضای تخصیص داده شده به متغیر باشد . به این معنا که در پاسکال مشکلی مهم ایجاد نمی کند چون فضای تخصیصی را در خانه شماره 0 ذخیره می کند ولی در زبان سی اگر به چنین شکلی تخصیص حافظه کرده باشید دچار خطای منطقی می شوید    "Char   t[4]="test چرا که فضای تخصیصی شما 4 خانه است و هر چهار تای آنرا پر کرده اید و جایی برای نوشتن و ذخیره سازی Null نگذاشته اید. ____________________________________________ زبان های برنامه سازی از نظر لایه ای (برنامه نویسی) زبان های برنامه سازی از نظر نزدیک بودن به زبان ماشین به چهار دسته تقسیم می شوند: 1-زبان ماشین: برنامه های نوشته شده به این زبان مستقیما توسط ماشین قابل اجرا بوده نیاز به مترجم ندارند. به دلیل این که برنامه های این زبان باید در مبنای 2 نوشته شوند، برنامه نویسی در آن بسیار دشوار است. 2-زبان اسمبلی: این زبان شکل نمادی زبان ماشین است و در مواقعی که نیاز به سرعت زیاد و زمان واقعی (Real time) باشد بیشتر از این زبان در برنامه نویسی استفاده می گردد. برنامه نویسی در این زبان مستلزم آشنایی با سیستم است و دارای دشواری خاص خودش است. 3-زبان های سطح بالا: دستورالعمل هایی که در این زبان های برنامه نویسی وجود دارند نزدیک به زبان های طبیعی هستند. دستوراتی مثل PRINT ، INPUT ، CALLو END به ترتیب برای چاپ اطلاعات در خروجی، خواندن اطلاعات، فراخوانی زیر برنامه ها و مشخص نمودن پایان برنامه ها مورد استفاده قرار می گیرند (البته در زبان های برنامه سازی مختلف، شکل این دستورات ممکن است متفاوت باشد). دستورات این زبان وابسته به یک ماشین خاص نیستند. 4-زبان های بسیار سطح بالا: زبان های بانک اطلاعاتی و زبان های شبیه سازی مثل GPSS زبان های بسیار سطح بالا نام دارند. ____________________________________________ کاربرد زبان های برنامه نویسی (برنامه نویسی) تنوع زبان های برنامه نویسی به حدی زیاد است که می توان گفت برای انواع کارهای مختلف، زبان های برنامه نویسی خاصی وجود دارند. بعضی از موارد کاربرد زبان های برنامه نویسی عبارتند از: 1-امور آموزشی :  زبان های برنامه سازی بیسیک و پاسکال به دلیل داشتن ویژگی های آموزشی به عنوان اولین زبان آموزشی مورد استفاده قرار می گیرند. 2-برنامه نویسی سیستم: زبان هایی مثل اسمبلی ASSEMBLY، C و ADA برای نوشتن نرم افزار های سیستم مورد استفاده قرار می گیرند. 3-هوش مصنوعی: زبان هایی مثل LISP و PROLOG برای این منظور مورد استفاده قرار می گیرند. 4-امور تجاری: در نوشتن برنامه های کاربردی در زمینه تجاری از زبان های برنامه نویسی و نرم افزار های خاصی استفاده می شود. بعضی از این نرم افزار ها عبارتند از:  FOXPRO و  PARADOX . 5-امور ویرایش متن ها: در این خصوص از زبانی به نام SNOBAL استفاده می گردد. ____________________________________________ تاریخچه ربان های برنامه سازی (برنامه نویسی) C زبان C  در آزمایشگاه BELL در اوایل دهه 1970 به منظور تکمیل و باز نویسی نسخه اولیه سیستم عامل UNIX طراحی شد و امروزه نسخ مختلفی از زبان C بوجود آمده است. گر چه C  یک زبان سطح بالا است ولی غالبا به عنوان زبان برنامه نویسی سیستم و یا برای رفع نیازهایی که در گذشته به کمک زبان اسمبلی برطرف می شدند استفاده می شود. همچنین بسیاری از نرم افزارهای اساسی کامپیوتر به این زبان نوشته می شوند. فراگیری این زبان برای مبتدیان کار دشواری است. LOGO  این زبان توسط سیمور پاپرت  در دهه 1960 در دانشگاه MIT عرضه شد. گرچه این زبان جهت استفاده دانشجویان به منظور کارهای علمی طراحی گردید، لیکن آن را به عنوان اولین زبان آموزشی جهت پرورش مهارت و خلاقیت بچه ها می شناسند. رسم خطوط گرافیکی، کار روی رنگ ها، ایجاد تصاویر متحرک در این زبان بسادگی انجام می شود. LISP    توسط جان مک آرتی   در سال 1960-1959 به منظور پشتیبانی تحقیق در زمینه هوش مصنوعی (AI) ارائه گردید و روی داده های غیر عددی کار می نماید و جهت برنامه نویسی در محیط AUTO CAD نبز مورد استفاده قرار می گیرد. ____________________________________________ تاریخجه زبان های برنامه سازی (برنامه نویسی) زبان های برنامه نویسی نیز دارای نسل های مختلفی می باشند که به ترتیب عبارتند از: نسل اول: زبان ماشین که در اواخر دهه 1940 بوجود آمد و خصوصیات این زبان قبلا توضیح داده شد. نسل دوم: زبان اسمبلی که در اوایل دهه 1950 بوجود آمد و خصوصیات این زبان نیز قبلا توضیح داده شد. نسل سوم: زبان های سطح بالا که در اواخر دهه 1950 بوجود آمدندو اولین زبان این نسل فرترن بود. به این زبان ها زبان های رویه ای یا رویه گرا  نیز گفته می شود زیرا برنامه نویس باید چگونگی این عملیات را تشریح نماید. نسل چهارم: (اواسط دهه 70) این زبان ها بسیار شبیه به زبان های طبیعی می باشند و برنامه نویس بوسیله برنامه هایی که به این زبان ها می نویسد به روشی ساده تر از زبان های دیگر با کامپیوتر ارتباط برقرار می نماید، گویی در حال صحبت کردن معمولی با کامپیوتر می باشد. به این زبان ها زبان های غیررویه ای  نیز گفته می شود زیرا برنامه نویس بدون تشریح چگونگی عملیات، خواسته خود را مطرح می کند. یعنی به کامپیوتر می گوید جه می خواهد، ولی چگونگی انجام عملیات را نمی گوید. به عنوان مثال از این نسل می توان به زبان ADA اشاره نمود. به این زبان ها، زبان های فوق بالا  نیز گفته می شود. ____________________________________________ تاریخچه زبان های برنامه سازی (برنامه نویسی) ALGOL  این زبان در سال 1958 معرفی گردید و یک زبان علمی می باشد. نسخ مختلفی از ALGOL   تا کنون عرضه شده است که از جمله می توان ALGOL 68 را نام برد. در آمریکا معمولا از FORTRAN بجای  ALGOL استفاده می شود، ولی در اروپا این زبان از محبوبیت ویژه ای برخوردار است. PASCAL  این زبان که به افتخار بلز پاسکال دانشمند فرانسوی قرن هفدهم میلادی، پاسکال نامگذاری شده است در اواخر سال های 1960 و اوایل 1970 توسط پروفسور نیکلاس ویرث  در انستیتو فنی فدرال سوئیس مطرح گردید. این زبان از قدرت بالایی در اجرای امور علمی و تجاری برخوردار است و در بسیاری از مدارس و کالج های دنیا جهت آموزش برنامه نویسی تدریس می گردد و در سال 1983 توسط سازمان استاندارد ملی آمریکا بصورت استاندارد در آمد.   ADA  این زبان به افتخار نام دختر لرد بایرون  که همکار چالز بابیج در زمینه طرح ماشین تحلیلی  بود، ADA نامیده شد. خانم ADA را بخاطر برنامه هایش به عنوان اولین برنامه نویس در جهان می شناسند.  این زبان به منظور سرویس های نظامی در وزارت دفاع آمریکا  تهیه گردید. در سال 1975 وزارت دفاع آمریکا تحقیقاتی را پیرامون طراحی یک زبان عمومی که مورد استفاده فروشندگان کامپیوتر و برنامه نویسان نظامی باشد آغاز کرد که ماحصل کار آن ها زبان ADA بود که در سال 1980 عرضه گردید. این زبان در سال 1983 توسط سازمان ملی استاندارد آمریکا به صورت استاندارد در آمد. ____________________________________________ تاریخچه زبان های برنامه سازی (برنامه نویسی) basic بیسیک به معنی زبان همه منظوره برای افراد مبتدی می باشد. این زبان به خاطر ساختار ساده ای که دارد از محبوبیت فوق العاده ای در جهان برخوردار است. در سیتم های محاوره ای و اشتراک زمانی استفاده می شود. یک زبان محاوره ای امکان ارتباط مستقیم بین انسان و کامپیوتر را در حین اجرای برنامه فراهم می نماید. یک فرد مبتدی که آشنایی چندانی با کامپیوتر ندارد پس از مدت کوتاهی می تواند دستورهای این زبان را فرا گرفته و اقدام به نوشتن برنامه بنماید. وارد کردن داده ای ورودی بسیار ساده بوده و برنامه نویس لازم نیست نگران دستورهای (فرمت) خروجی برنامه باشد زیرا فرمت های خروجی قابل استفاده توسط این زبان در اختیار است. همچنین ایجاد تغییرات و اضافه کردن داخل برنامه بیسیک بسادگی انجام می شود. به خاطر سادگی این زبان، BASIC در اولین میکرو کامپیوترها مورد استفاده قرار گرفت و تا کنون نیز محبوب ترین زبان سطح بالای مورد استفاده در این سیستم های شخصی برای آموزش نو آموزان می باشد. زبان بیسیک بین سال های 1963 و 1964 توسط پروفسور جان کمنی و توماس کورتز در کالج دارتموث بوجود آمد و هدف آن ها از ایجاد زبان بیسیک این بود که کلیه دانشجویان رشته های مختلف بتوانند آن را بسادگی فرا گیرند. علیرغم اینکه در بیسیک اولیه از دستوران معین و محدودی استفاده می شد، لیکن سازندگاه کامپیوتر دستورات متعددی را به آن افزودند و از نظر سخت افزاری امکانات کامپیوتر خود را افزایش دادند تا بتوانند با سایر سازندگان کامپیوتر رقابت نمایند، لذا امروزه نسخه های متعددی از بیسیک وجود دارد و سازمان استاندارد آمریکا نسخه ای از آن را بنام نسخه پایه در سال 1978 ارائه نمود. استاندارد فوق به حدی ساده است که نسخه های گسترش یافته آن از قبیل GWBASIC, QBASIC, TURBO BASIC,VISUAL BASIC قابل دسترسی است. اینک از دانش آموزان مدارس تا مهندسان هواپیما از این زبان استفاده می نمایند. همچنین این زبان در امور تجاری و مدیریت کاربرد دارد. انتظار می رود به زودی شما نیز در جرگه استفاده کنندگاه این زبان قرار گیرید. ____________________________________________ تاریخچه زبان های برنامه سازی (برنامه نویسی) COBLO کوبول به معنی زبان تجاری می باشد که برای پردازش فایل ها بوجود آمد و هم اکنون برای کارهای تجاری با حجم زیاد مورد استفاده قرار می گیرد. در سال 1959 بسیاری از نمایندگان دولت آمریکا و سازندگان و استفاده کنندگان کامپیوتر و دانشگاه ها گرد هم آمدند تا زبان مناسب برای پردازش فایل ها را بوجود آورند. حاصل کار آن ها در ژانویه سال 1960 به اتمام رسید. مشخصات این زبان چند ماه بعد توسط سازمان انتشارات دولتی به ثبت رسید و در سال 1961 کامپایلر زبان کوبول برای امور تجاری عرضه شد. سازمان ANSI  استانداردی برای زبان کوبول در سال 1968 تهیه کرد و در سال 1974 نسخه جدیدی از آن نیز عرضه شد. زبان کوبول بهتر از سایر زبان های برنامه نویسی قادر به انجام عملیات بر روی کاراکتر های الفبایی از قبیل نام، آدرس و سایر مشخصات دیگر می باشد و محدودیت آن این است که برای انجام عملیات پیچیده ریاضی مناسب نمی باشد.   PL/1         همانطور که ملاحظه نمودید زبان های اولیه از قبیل فرترن و کوبول به منظور حل مسائل علمی، تجاری تهیه گردیدند. اما در اوایل دهد 1960 شرکت IBM و یک کمیته از استفاده کنندگان IBM 360 کار خود را بر روی زبانی که قابلیت فرترن و کوبول را تواما داشته باشد آغاز نمودند که PL/1  نامیده شد و در اواسط دهه 1960 کار تهیه این زبان به پایان رسید.         PL/1 نیز مانند یک زبان علمی از برخی تکنیک های فرترن و کوبول بهره جست و سازمان استاندارد آمریکا (ANSI) در سال 1976 استانداردی برای آن تهیه کرد. علیرغم اینکهPL/1 بان پرقدرتی می باشد و به این منطور ساخته شد که جایگزین فرترن و کوبول گردد لیکن از آنجایی که فراهم نمودن تکنیک هایی که قادر به انجام امور علمی و تجاری باشد مشکل است، لذا PL/1 موفقیت مورد نظر را کسب ننمود. با توجه به اینکه فراگیری این زبان نیز ساده نیست می رود که به تدریج به دست فراموشی سپرده شود. ____________________________________________ تاریخچه زبان های برنامه سازی (برنامه نویسی) زبان های سطح بالا زبان هایی هستند نزدیک به زبان طبیعی و محاوره ای انسان که در آن ها از علایم، حروف و کلمات آشنا و بکار رفته در زبان طبیعی استفاده می شود. این زبانها احتیاج به ترجمه و تصویر دارند تا قابل درک برای کامپوترها شوند. که این امر بوسیله نرم افزار های بخصوصی بنام کامپایلر و مفسر انجام می گیرد. زبان های سطح بالا وابسته به ماشین . سخت افزار نیستند و با اندکی تغییر در کلیه کامپیوترها قابل اجرا می باشند. البته شرط قابل درک بودن این زبان ها برای کامپیوترها وجود مفسر با کامپایلر می باشد. کارکردن با این زبان ها آسان تر است و نسبت به زبان های سطح پایین خطایابی و بررسی برنامه ها راحت تر انچام می گیرد. تولید زبان های سطح بالا از اواسط دهه 1950 آغاز گردید و متداولترین آن ها عبارتند از: FORTRAN,COBOL,PL/1,BASIC,LOGO,PSCAL,C   اینک در جلسات مختلف خصوصیات هر یک از این زبان ها را به طور مختصر توضیح می دهیم:     ( FORmula TRANslation  ) FORTRAN     فرترن اولین زبان سطح بالا است که تولید آن در سال 1954 به سرپرستی جان باکوز به منظور ایجاد یک زبان علمی در شرکت IBM شروع و در سال 1957 روی IBM 704 معرفی گردید که بالغ بر 5/2 میلیون دلار هزینه برداشت. با استفاده از این زبان حل معادلات ریاضی بسیار آسان گردید و بسیار مورد استقبال قرار گرفت. این زبان در اکثر کامپیوترهای بزرگ و کوچک مورد استفاده قرار می گیرد و همین استقبال فوق العاده سبب شد تا کار تهیه استاندارد در سال 1962 برای آن شروع شود که یکی از آن ها را نسخه پایه و دیگری را نسخه کامل یا گسترش یافته می نامند. استاندارد زبان فرترن در سال 1966 مورد پذیرش سازمان استاندارد آمریکا  قرار گرفت و این اولین زبانی بود که به صورت استاندارد درآمد. برنامه هایی که به این زبان در یک کامپیوتر نوشته می شود معمولا به سادگی در سایر کامپیوترها نیز قابل استفاده می باشد. فرترن نیز از دستورات ورودی، خروجی، محاسباتی، منطقی / مقایسه ای و سایر دستورات اساسی از قبیل READ ، WRIT، GOTO و  STOP همانطور که از این دستور ها در زبان انگلیسی انتظار می رود استفاده می شود.         زبان فرترن قابلیت حل مسایل ریاضی و آماری را دار می باشد، لذا بسیاری از برنامه های این مقوله به این زبان نوشته می شوند. از ضعف های این زبان این است که دنبال کردن منطق برنامه مشکل تر از سایر زبان های سطح بالا می باشد و این زبان برای پردازش فایل ها نمی باشد، لذا برای پردازش فایل ها و استفاده در امور تجاری زبان سطح بالای دیگری بوجود آمد به نام کوبول. ____________________________________________ تاریخچه زبان های برنامه سازی (برنامه نویسی) در ابتدا شما را با تاریخچه زبان های برنامه سازی آشنا می نماییم. در کل زبان های برنامه سازی به دو دسته تقسیم می شوند: ۱- زبان های سطح پایینLow level languages  ۲- زبان های سطح بالا  High level languages زبان های سطح پایین  زبان هایی هستند در سطح ماشین و به دور از زبان طبیعی و محاوره ای انسان. این زبان ها وابسته به ماشین و سخت افزار هستند، بطوری که هر میکروپروسسور زبان خاص خود را داراست. کار کردن با این زبان ها مشکل است و خطا یابی و بررسی برنامه ها به سهولت امکان پذیر نیست، ولی به علت نزدیکی به ماشین، برنامه های نوشته شده به این زبان ها با سرعت بالایی اجرا می شوند. زبان های سطح پایین به دو دسته تقسیم می شوند: 1- زبان ماشین  : در این زبان که تنها زبان قابل فهم برای کامپیوتر می باشد از ارقام صفر و یک به عنوان علایم اولیه استفاده می شود و ارقام صفر و یک در حقیقت الفبای این زبان محسوب می شوند و جهت ایجاد کدهایی برای دستورالعمل ها بکار می روند،به طوری که هر دستورالعمل به صورت رشته _ ای از صفر و یک ها نوشته می شود. 2- اسمبلی  : این زبان در واقع همان زبان ماشین است، با این تفاوت که جهت ساده نمودن کار برنامه نویس، کدهای سمبلیکی به نام کد نیمانیک  در اوایل سال های 1950 بوجود آمد که در آن، از حروف برای کد گذاری کدهای زبان ماشین استفاده شد که این کدها در ریزپردازنده های مختلف با یکدیگر تفاوت دارند. این کدها توسط نرم افزار های به خصوصی بنام اسمبلر  به زبان ماشین تبدیل می گردند تا قابل درک برای ماشین باشند.