لطفا جهت اطلاع از آخرین دوره ها و اخبار سایت در
کانال تلگرام
عضو شوید.
آموزش کدنویسی ایمن در 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
نمایش نظرات
Linkedin (لینکدین)
لینکدین: شبکه اجتماعی حرفهای برای ارتباط و کارآفرینی
لینکدین به عنوان یکی از بزرگترین شبکههای اجتماعی حرفهای، به میلیونها افراد در سراسر جهان این امکان را میدهد تا ارتباط برقرار کنند، اطلاعات حرفهای خود را به اشتراک بگذارند و فرصتهای شغلی را کشف کنند. این شبکه اجتماعی به کاربران امکان میدهد تا رزومه حرفهای خود را آپدیت کنند، با همکاران، دوستان و همکاران آینده ارتباط برقرار کنند، به انجمنها و گروههای حرفهای ملحق شوند و از مقالات و مطالب مرتبط با حوزه کاری خود بهرهمند شوند.
لینکدین همچنین به کارفرمایان امکان میدهد تا به دنبال نیروهای با تجربه و مهارت مورد نیاز خود بگردند و ارتباط برقرار کنند. این شبکه حرفهای به عنوان یک پلتفرم کلیدی برای بهبود دسترسی به فرصتهای شغلی و گسترش شبکه حرفهای خود، نقش مهمی را ایفا میکند. از این رو، لینکدین به عنوان یکی از مهمترین ابزارهای کارآفرینی و توسعه حرفهای در دنیای امروز مورد توجه قرار دارد.
سازنده، معلم و نويسنده فناوري با 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 دارای مدرک است در ارتباطات/هنرهای تجسمی از دانشگاه کالیفرنیا، سن دیگو. در حال حاضر، او در شمال غربی اقیانوس آرام زندگی می کند، جایی که او لذت بردن از وقت خود را با پسران خود را بازی های ویدئویی در داخل در حالی که آنها تماشای جنگل های ملایم آیداهو.
نمایش نظرات