کدنویسی ایمن در C

Secure Coding in C

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: C فاقد برخی از سوپاپ های ایمنی ارائه شده توسط زبان های برنامه نویسی جدیدتر است. اما در حالی که این زبان سطح متوسط ​​نقاط ضعف خود را دارد، نوشتن کد C ایمن هنوز امکان پذیر است - فقط به هوشیاری بیشتری از سوی توسعه دهنده نیاز دارد. در این دوره، مدرس Dan Gookin نحوه شناسایی و کدنویسی نقاط ضعف در زبان برنامه نویسی C را برای نوشتن برنامه های امن تر توضیح می دهد. بسیاری از اکسپلویت ها در مورد کد C شناخته شده اند. این دوره به بررسی هر یک می پردازد و آسیب پذیری ها و نحوه برخورد با آنها را توضیح می دهد. مناطق عمده تحت پوشش عبارتند از رفتار نامشخص، اجتناب از ساخت و سازهای ناخوشایند، اعتبارسنجی ورودی، مدیریت رشته ها و کار با اشاره گرها.

سرفصل ها و درس ها

2. در عمق: Raspberry Pi GPIO چیست؟ 3. پروژه: سنسورها ، مترها ، PWM و 1-Wire4. در عمق: GPIO Input5. از SPI برای سنسورها و نمایش ها استفاده کنید. در عمق: GPIO Output7. پروژه: استپ موتور با I2C8. در عمق: زبانهای برنامه نویسی9. پروژه: به UART SerialConclusionIntroduction1 متصل شوید. طراحی ابزار2. ساختن ابزاری با PythonConclusionIntroduction1. Prototyping2 را درک کنید. Prototype3 را برنامه ریزی کنید. نمونه اولیه شما "سلام جهان" 4. Display5 را تحریک کنید. تعامل 6 را اضافه کنید. پاسخگویی را بهبود بخشید. تعامل پیشرفته8. تکرار PrototypeConclusionIntroduction1. مفاهیم کاربردی مقدماتی2. توابع کلاس اول3. پایتون: The Functional Parts4. مفاهیم کاربردی پیشرفتهConclusionIntroduction1. ایجاد یک ستون جمع کننده 2. پردازش داده ها در GroupsIntroduction1. درک عملکردهای SAS و CALL Routines2. با استفاده از توابع عددی و تاریخ 3. با استفاده از شخصیت های توابع4. استفاده از توابع ویژه برای تبدیل ستون TypeIntroduction1. درک مرحله DATA مرحله پردازش 2. کارگردانی DATA Step OutputIntroduction1. بازسازی داده ها با DATA Step2. تجدید ساختار داده ها با TRANSPOSE ProcedureIntroduction1. جداول متصل کننده 2. ادغام جداول 3. شناسایی ردیف های همسان و غیر همسان Introduction

  • کد C بهتر را بنویسید Write better secure C code

  • با استفاده از پرونده های تمرینی Using the exercise files

  • تدوین کد Compiling the code

2. در عمق: Raspberry Pi GPIO چیست؟ 3. پروژه: سنسورها ، مترها ، PWM و 1-Wire4. در عمق: GPIO Input5. از SPI برای سنسورها و نمایش ها استفاده کنید. در عمق: GPIO Output7. پروژه: استپ موتور با I2C8. در عمق: زبانهای برنامه نویسی9. پروژه: به UART SerialConclusionIntroduction1 متصل شوید. طراحی ابزار2. ساختن ابزاری با PythonConclusionIntroduction1. Prototyping2 را درک کنید. Prototype3 را برنامه ریزی کنید. نمونه اولیه شما "سلام جهان" 4. Display5 را تحریک کنید. تعامل 6 را اضافه کنید. پاسخگویی را بهبود بخشید. تعامل پیشرفته8. تکرار PrototypeConclusionIntroduction1. مفاهیم کاربردی مقدماتی2. توابع کلاس اول3. پایتون: The Functional Parts4. مفاهیم کاربردی پیشرفتهConclusionIntroduction1. ایجاد یک ستون جمع کننده 2. پردازش داده ها در GroupsIntroduction1. درک عملکردهای SAS و CALL Routines2. با استفاده از توابع عددی و تاریخ 3. با استفاده از شخصیت های توابع4. استفاده از توابع ویژه برای تبدیل ستون TypeIntroduction1. درک مرحله DATA مرحله پردازش 2. کارگردانی DATA Step OutputIntroduction1. بازسازی داده ها با DATA Step2. تجدید ساختار داده ها با TRANSPOSE ProcedureIntroduction1. جداول متصل کننده 2. ادغام جداول 3. شناسایی ردیف های همسان و غیر همسان 1. On the Defensive

  • درک نقاط ضعف C Understanding the weaknesses of C

  • آنچه آدمهای بد به دنبالش می گردند What the bad guys look for

  • سوءاستفاده از شکار Hunting exploits

  • مستند همه چیز Documenting everything

2. در عمق: Raspberry Pi GPIO چیست؟ 3. پروژه: سنسورها ، مترها ، PWM و 1-Wire4. در عمق: GPIO Input5. از SPI برای سنسورها و نمایش ها استفاده کنید. در عمق: GPIO Output7. پروژه: استپ موتور با I2C8. در عمق: زبانهای برنامه نویسی9. پروژه: به UART SerialConclusionIntroduction1 متصل شوید. طراحی ابزار2. ساختن ابزاری با PythonConclusionIntroduction1. Prototyping2 را درک کنید. Prototype3 را برنامه ریزی کنید. نمونه اولیه شما "سلام جهان" 4. Display5 را تحریک کنید. تعامل 6 را اضافه کنید. پاسخگویی را بهبود بخشید. تعامل پیشرفته8. تکرار PrototypeConclusionIntroduction1. مفاهیم کاربردی مقدماتی2. توابع کلاس اول3. پایتون: The Functional Parts4. مفاهیم کاربردی پیشرفتهConclusionIntroduction1. ایجاد یک ستون جمع کننده 2. پردازش داده ها در GroupsIntroduction1. درک عملکردهای SAS و CALL Routines2. با استفاده از توابع عددی و تاریخ 3. با استفاده از شخصیت های توابع4. استفاده از توابع ویژه برای تبدیل ستون TypeIntroduction1. درک مرحله DATA مرحله پردازش 2. کارگردانی DATA Step OutputIntroduction1. بازسازی داده ها با DATA Step2. تجدید ساختار داده ها با TRANSPOSE ProcedureIntroduction1. جداول متصل کننده 2. ادغام جداول 3. شناسایی ردیف های همسان و غیر همسان 2. Undefined Behaviors

  • قالب بندی بخشنامه های پیش پردازنده Formatting preprocessor directives

  • استفاده از یک تکلیف به عنوان یک شرط Using an assignment as a condition

  • اجتناب از پتچار () در یک حلقه مدتی Avoiding putchar() in a while loop

  • با استفاده از تماس سیستم () Using the system() call

  • دسترسی به عناصر فراتر از اندازه آرایه Accessing elements beyond the array size

  • در حال تبدیل اعداد صحیح Converting integers

  • حلقه با مقادیر نقطه شناور Looping with floating point values

  • با استفاده از مقادیر بازگشت Using return values

  • تأیید وقتی EOF خوانده شده است Confirming when EOF has been read

  • چالش: کد را برطرف کنید Challenge: Fix the code

  • راه حل: کد را برطرف کنید Solution: Fix the code

2. در عمق: Raspberry Pi GPIO چیست؟ 3. پروژه: سنسورها ، مترها ، PWM و 1-Wire4. در عمق: GPIO Input5. از SPI برای سنسورها و نمایش ها استفاده کنید. در عمق: GPIO Output7. پروژه: استپ موتور با I2C8. در عمق: زبانهای برنامه نویسی9. پروژه: به UART SerialConclusionIntroduction1 متصل شوید. طراحی ابزار2. ساختن ابزاری با PythonConclusionIntroduction1. Prototyping2 را درک کنید. Prototype3 را برنامه ریزی کنید. نمونه اولیه شما "سلام جهان" 4. Display5 را تحریک کنید. تعامل 6 را اضافه کنید. پاسخگویی را بهبود بخشید. تعامل پیشرفته8. تکرار PrototypeConclusionIntroduction1. مفاهیم کاربردی مقدماتی2. توابع کلاس اول3. پایتون: The Functional Parts4. مفاهیم کاربردی پیشرفتهConclusionIntroduction1. ایجاد یک ستون جمع کننده 2. پردازش داده ها در GroupsIntroduction1. درک عملکردهای SAS و CALL Routines2. با استفاده از توابع عددی و تاریخ 3. با استفاده از شخصیت های توابع4. استفاده از توابع ویژه برای تبدیل ستون TypeIntroduction1. درک مرحله DATA مرحله پردازش 2. کارگردانی DATA Step OutputIntroduction1. بازسازی داده ها با DATA Step2. تجدید ساختار داده ها با TRANSPOSE ProcedureIntroduction1. جداول متصل کننده 2. ادغام جداول 3. شناسایی ردیف های همسان و غیر همسان 3. Input Validation

  • تأیید صحت ورودی عددی Authenticating numeric input

  • تبدیل رشته ها به اعداد Converting strings to numbers

  • استفاده از مقادیر int به جای char Using int values instead of char

  • ورودی خواندن با fget () Reading input with fgets()

  • فیلتر رشته رشته Filtering string input

  • چالش: تأیید ورودی Challenge: Confirming input

  • راه حل: تأیید ورودی Solution: Confirming input

2. در عمق: Raspberry Pi GPIO چیست؟ 3. پروژه: سنسورها ، مترها ، PWM و 1-Wire4. در عمق: GPIO Input5. از SPI برای سنسورها و نمایش ها استفاده کنید. در عمق: GPIO Output7. پروژه: استپ موتور با I2C8. در عمق: زبانهای برنامه نویسی9. پروژه: به UART SerialConclusionIntroduction1 متصل شوید. طراحی ابزار2. ساختن ابزاری با PythonConclusionIntroduction1. Prototyping2 را درک کنید. Prototype3 را برنامه ریزی کنید. نمونه اولیه شما "سلام جهان" 4. Display5 را تحریک کنید. تعامل 6 را اضافه کنید. پاسخگویی را بهبود بخشید. تعامل پیشرفته8. تکرار PrototypeConclusionIntroduction1. مفاهیم کاربردی مقدماتی2. توابع کلاس اول3. پایتون: The Functional Parts4. مفاهیم کاربردی پیشرفتهConclusionIntroduction1. ایجاد یک ستون جمع کننده 2. پردازش داده ها در GroupsIntroduction1. درک عملکردهای SAS و CALL Routines2. با استفاده از توابع عددی و تاریخ 3. با استفاده از شخصیت های توابع4. استفاده از توابع ویژه برای تبدیل ستون TypeIntroduction1. درک مرحله DATA مرحله پردازش 2. کارگردانی DATA Step OutputIntroduction1. بازسازی داده ها با DATA Step2. تجدید ساختار داده ها با TRANSPOSE ProcedureIntroduction1. جداول متصل کننده 2. ادغام جداول 3. شناسایی ردیف های همسان و غیر همسان 4. String Management

  • تخصیص رشته ها Allocating strings

  • اجتناب از تکالیف رشته بد Avoiding bad string assignment

  • کار با لفظهای رشته ای Working with string literals

  • توابع رشته ذهن Minding string functions

  • ذخیره گذرواژه‌ها و کدها Storing passwords and codes

  • پاک کردن داده ها پس از استفاده Clearing data after use

  • چالش: کد مخفی Challenge: The secret code

  • راه حل: کد مخفی Solution: The secret code

2. در عمق: Raspberry Pi GPIO چیست؟ 3. پروژه: سنسورها ، مترها ، PWM و 1-Wire4. در عمق: GPIO Input5. از SPI برای سنسورها و نمایش ها استفاده کنید. در عمق: GPIO Output7. پروژه: استپ موتور با I2C8. در عمق: زبانهای برنامه نویسی9. پروژه: به UART SerialConclusionIntroduction1 متصل شوید. طراحی ابزار2. ساختن ابزاری با PythonConclusionIntroduction1. Prototyping2 را درک کنید. Prototype3 را برنامه ریزی کنید. نمونه اولیه شما "سلام جهان" 4. Display5 را تحریک کنید. تعامل 6 را اضافه کنید. پاسخگویی را بهبود بخشید. تعامل پیشرفته8. تکرار PrototypeConclusionIntroduction1. مفاهیم کاربردی مقدماتی2. توابع کلاس اول3. پایتون: The Functional Parts4. مفاهیم کاربردی پیشرفتهConclusionIntroduction1. ایجاد یک ستون جمع کننده 2. پردازش داده ها در GroupsIntroduction1. درک عملکردهای SAS و CALL Routines2. با استفاده از توابع عددی و تاریخ 3. با استفاده از شخصیت های توابع4. استفاده از توابع ویژه برای تبدیل ستون TypeIntroduction1. درک مرحله DATA مرحله پردازش 2. کارگردانی DATA Step OutputIntroduction1. بازسازی داده ها با DATA Step2. تجدید ساختار داده ها با TRANSPOSE ProcedureIntroduction1. جداول متصل کننده 2. ادغام جداول 3. شناسایی ردیف های همسان و غیر همسان 5. Issues with Pointers

  • اولیه نشانگرها و بافرها Initializing pointers and buffers

  • بررسی نشانگرهای NULL Checking for NULL pointers

  • انجام ریاضی اشاره گر Performing pointer math

  • نشانگرهای آزاد Freeing pointers

  • چالش: ترکیب را وارد کنید Challenge: Enter the combination

  • راه حل: ترکیب را وارد کنید Solution: Enter the combination

2. در عمق: Raspberry Pi GPIO چیست؟ 3. پروژه: سنسورها ، مترها ، PWM و 1-Wire4. در عمق: GPIO Input5. از SPI برای سنسورها و نمایش ها استفاده کنید. در عمق: GPIO Output7. پروژه: استپ موتور با I2C8. در عمق: زبانهای برنامه نویسی9. پروژه: به UART SerialConclusionIntroduction1 متصل شوید. طراحی ابزار2. ساختن ابزاری با PythonConclusionIntroduction1. Prototyping2 را درک کنید. Prototype3 را برنامه ریزی کنید. نمونه اولیه شما "سلام جهان" 4. Display5 را تحریک کنید. تعامل 6 را اضافه کنید. پاسخگویی را بهبود بخشید. تعامل پیشرفته8. تکرار PrototypeConclusionIntroduction1. مفاهیم کاربردی مقدماتی2. توابع کلاس اول3. پایتون: The Functional Parts4. مفاهیم کاربردی پیشرفتهConclusionIntroduction1. ایجاد یک ستون جمع کننده 2. پردازش داده ها در GroupsIntroduction1. درک عملکردهای SAS و CALL Routines2. با استفاده از توابع عددی و تاریخ 3. با استفاده از شخصیت های توابع4. استفاده از توابع ویژه برای تبدیل ستون TypeIntroduction1. درک مرحله DATA مرحله پردازش 2. کارگردانی DATA Step OutputIntroduction1. بازسازی داده ها با DATA Step2. تجدید ساختار داده ها با TRANSPOSE ProcedureIntroduction1. جداول متصل کننده 2. ادغام جداول 3. شناسایی ردیف های همسان و غیر همسان Conclusion

  • مراحل بعدی Next steps

نمایش نظرات

کدنویسی ایمن در C
جزییات دوره
1h 19m
40
Linkedin (لینکدین) Linkedin (لینکدین)
(آخرین آپدیت)
31,429
- از 5
دارد
دارد
دارد
Dan Gookin
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Dan Gookin Dan Gookin

سازنده، معلم و نويسنده فناوري با 20+ سال تجربه Dan Gookin نویسنده بیش از 120 عنوان است. او بیش از 20 سال در مورد تکنولوژی در مورد تکنولوژی نوشته است.

دن ترکیبی از عشق خود را به نوشتن با شگفتی Gizmo خود را برای ایجاد کتاب هایی که آموزنده، سرگرم کننده و نه خسته کننده است. از آنجا که 120 عنوان خود را 12 میلیون نسخه در چاپ که به بیش از 30 زبان ترجمه شده است، دان می تواند تایید کند که روش خود را برای ساخت تامس کامپیوتر به نظر می رسد کار می کند.

شاید معروف ترین عنوان او اصلی است DOS برای dummies ، که در سال 1991 منتشر شد، منتشر شد. این کتاب به عنوان سریع ترین فروش کامپیوتر در جهان تبدیل شد، در یک زمان، در حال حرکت نسخه های بیشتر در هر هفته از Bestseller جدید نیویورک تایمز (هر چند به عنوان مرجع، آن را نمی توان آن را ذکر نشده است لیست Bestseller NYT). از این کتاب، کل خط را برای dummies کتاب ها، که پدیده های انتشاراتی را برای این روز باقی می گذارد، ایجاد کرد.

محبوب ترین عناوین Dan شامل رایانه های شخصی برای dummies، کلمه برای dummies لپ تاپ ها برای dummies ، و droid x برای dummies . او همچنین وب سایت گسترده و مفید را حفظ می کند، www.wambooli.com

Dan دارای مدرک است در ارتباطات/هنرهای تجسمی از دانشگاه کالیفرنیا، سن دیگو. در حال حاضر، او در شمال غربی اقیانوس آرام زندگی می کند، جایی که او لذت بردن از وقت خود را با پسران خود را بازی های ویدئویی در داخل در حالی که آنها تماشای جنگل های ملایم آیداهو.