آموزش ماجراهای زبان اسمبلی: دوره کامل

Assembly Language Adventures: Complete Course

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: زبان کامپیوتر خود را بیاموزید کدنویسی را در معماری x86 با استفاده از زبان اسمبلی یاد بگیرید. درک کاملی در مورد مفاهیم سطح پایین به دست آورید. درک چگونگی کارکرد کامپیوتر شما به یک فرد سرسخت تبدیل شوید پیش نیازها: هیچ دانش قبلی فرض نمی شود!

زبان اسمبلی را بیاموزید  

مجموعه x86 Adventures زبان رایانه شما - زبان اسمبلی x86 را از ابتدا به شما آموزش می‌دهد. هیچ دانش قبلی فرض نمی شود.


[دوره کامل]  

این مجموعه کامل ماجراهای اسمبلی x86 است. این برنامه همه چیز را از اصول اولیه واقعی گرفته تا یک برنامه نویس مستقل (و سخت) x86 Assembly را پوشش می دهد.


موضوعات اصلی تحت پوشش: 

  • سیستم باینری

  • معماری x86

  • معرفی Flat Assembler

  • شاخه

  • عملیات امضا شده و بیتی

  • حافظه

  • رشته ها

  • زیر روال ها و پشته

  • خواندن راهنماها

  • اشکال‌زدایی

  • برخورد با Windows API


چرا زبان اسمبلی x86 را یاد بگیریم؟

  • شما از آن دسته افرادی هستید که واقعاً دوست دارید بدانید کارها چگونه کار می کنند. در این دوره می‌خواهید به درک کاملی درباره نحوه عملکرد برنامه‌های رایانه‌ای از داخل دست پیدا کنید.

  • برنامه نویس بهتری شوید - دانستن اینکه همه چیز چگونه کار می کند به شما کمک می کند تا تصمیمات بهتری بگیرید، حتی به عنوان یک برنامه نویس سطح بالا. اگر همیشه فکر می‌کردید که پشته چیست، یا آن اشاره‌گرهایی که همه درباره آن صحبت می‌کنند کدامند، به جای درستی آمدید.

  • کد سریع‌تر بنویسید - وقتی واقعاً می‌خواهید بیشترین استفاده را از پردازنده خود ببرید، نوشتن در اسمبلی خام مورد نیاز است. ما در این دوره قرار نیست درباره بهینه سازی صحبت کنیم، اما شما پایه های محکمی خواهید داشت تا بتوانید به تنهایی به کاوش ادامه دهید.

  • می‌خواهید مهندس معکوس یا محقق امنیتی شوید، کد ویروس‌ها را بخوانید یا به دنبال آسیب‌پذیری‌های نرم‌افزار باشید. از آنجایی که اکثر اوقات کد منبع اصلی در دسترس شما نیست، درک کامل زبان اسمبلی x86 الزامی است.


ساختار دوره  

این دوره از سخنرانی های ویدیویی تشکیل شده است. یک سخنرانی می‌تواند از یک ارائه یا یک مثال در دنیای واقعی باشد که به من نشان می‌دهد در حال انجام کارهایی در رایانه هستم. تقریباً هر سخنرانی تصویری با نوعی تمرین همراه است. تمرین ها منبع باز هستند و می توانید آنها را از github دریافت کنید.

این مهم است که تمرینات را کامل کنید. از سخنرانی‌ها چیزهای زیادی یاد خواهید گرفت، اما اگر تمرین‌ها را انجام ندهید، تقریباً وقت و پول خود را تلف می‌کنید. (یا حداقل تأیید کنید که می دانید چگونه آنها را انجام دهید، اگر باتجربه تر هستید).


پشته فناوری دوره  

هیچ دانش قبلی برای این دوره در نظر گرفته نشده است، اما من برخی چیزها را در مورد سیستم شما فرض می کنم، بنابراین مطمئن شوید که همه چیز در اینجا شما را توصیف می کند:

  • شما از یک سیستم عامل ویندوز استفاده می کنید. (فیلم های دوره از ویندوز 7 استفاده می کنند). توصیه می شود حداقل از ویندوز XP استفاده کنید. (این بدان معناست که در ویندوز 7 و ویندوز 10 کاملاً کار خواهد کرد).

  • شما یک پردازنده x86 دارید. ما 32 بیت x86 را مطالعه می کنیم، اما این دوره روی پردازنده های 64 بیتی نیز کار می کند.

برای آگاهی از فناوری، جزئیات بیشتری در مورد ابزارهایی که در این دوره استفاده خواهیم کرد: 

  • طعم مونتاژ: حالت محافظت شده x86 32 بیت.

  • مونتاژکننده: مونتاژ کننده مسطح (FASM)

  • اشکال‌زدا: WinDbg.

از لینوکس استفاده می کنید؟ بیشتر تمرین‌ها به لینوکس منتقل شده‌اند، اما ویدیوها من را با استفاده از ویندوز 7 نشان می‌دهند. لطفاً اگر مطمئن نیستید با من تماس بگیرید.


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

مقدمه Intro

  • در مورد این دوره About this course

  • تمرینات کجاست؟ Where are the exercises?

  • تمرینات کجاست؟ Where are the exercises?

  • ابزارها - فایل اکسپلورر Tools - File Explorer

  • ابزار - ویرایشگر هگز Tools - Hex Editor

  • ابزار - ویرایشگر هگز Tools - Hex Editor

  • ابزار - ویرایشگر متن Tools - Text Editor

  • ابزار - ویرایشگر متن Tools - Text Editor

مقدمه Intro

  • در مورد این دوره About this course

  • ابزارها - فایل اکسپلورر Tools - File Explorer

سیستم عددی باینری The Binary numeric system

  • جمع و تفریق Addition and Subtraction

  • تبدیل پایه (قسمت 1) Base Conversion (Part 1)

  • تبدیل پایه (قسمت 2) Base Conversion (Part 2)

  • تبدیل پایه (قسمت 2) Base Conversion (Part 2)

  • پایه هگزادسیمال Hexadecimal Base

  • پایه هگزادسیمال Hexadecimal Base

  • پایه هگزادسیمال (پاداش) Hexadecimal Base (Bonus)

  • پایه هگزادسیمال (پاداش) Hexadecimal Base (Bonus)

  • شماره های امضا شده (قسمت 1) Signed Numbers (Part 1)

  • شماره های امضا شده (قسمت 1) Signed Numbers (Part 1)

  • شماره های امضا شده (قسمت 2) Signed Numbers (Part 2)

  • شماره های امضا شده (قسمت 3) Signed Numbers (Part 3)

سیستم عددی باینری The Binary numeric system

  • جمع و تفریق Addition and Subtraction

  • تبدیل پایه (قسمت 1) Base Conversion (Part 1)

  • شماره های امضا شده (قسمت 2) Signed Numbers (Part 2)

  • شماره های امضا شده (قسمت 3) Signed Numbers (Part 3)

معماری x86 x86 Architecture

  • تاریخچه پایه Basic History

  • ساختار پایه Basic Structure

  • ساختار پایه Basic Structure

  • اولین دستورالعمل (قسمت 1) First Instructions (Part 1)

  • اولین دستورالعمل (قسمت 1) First Instructions (Part 1)

  • اولین دستورالعمل (قسمت 2) First Instructions (Part 2)

  • اولین دستورالعمل (قسمت 2) First Instructions (Part 2)

  • محاسبات پایه (قسمت 1) Basic Arithmetic (Part 1)

  • محاسبات پایه (قسمت 2) Basic Arithmetic (Part 2)

  • محاسبات پایه (قسمت 3) Basic Arithmetic (Part 3)

  • محاسبات پایه (قسمت 3) Basic Arithmetic (Part 3)

  • محاسبات پایه (قسمت 4) Basic Arithmetic (Part 4)

  • محاسبات پایه (قسمت 4) Basic Arithmetic (Part 4)

معماری x86 x86 Architecture

  • تاریخچه پایه Basic History

  • محاسبات پایه (قسمت 1) Basic Arithmetic (Part 1)

  • محاسبات پایه (قسمت 2) Basic Arithmetic (Part 2)

مقدمه ای بر FASM Introduction to FASM

  • مقدمه fasm fasm intro

  • نصب fasm fasm installation

  • نصب fasm fasm installation

  • برنامه های اول - برهنه First Programs - bare

  • برنامه های اول - برهنه First Programs - bare

  • برنامه های اول - کنسول (قسمت 1) First Programs - console (Part 1)

  • برنامه های اول - کنسول (قسمت 2) First Programs - console (Part 2)

  • برنامه های اول - کنسول (قسمت 2) First Programs - console (Part 2)

  • برنامه های اول - برنامه اول (قسمت اول) First Programs - first program (Part 1)

  • برنامه های اول - برنامه اول (قسمت اول) First Programs - first program (Part 1)

  • برنامه های اول - برنامه اول (قسمت دوم) First Programs - first program (Part 2)

  • خطاهای اصلی مونتاژ (قسمت 1) Basic Assembly Errors (Part 1)

  • خطاهای اصلی مونتاژ (قسمت 1) Basic Assembly Errors (Part 1)

  • خطاهای اساسی مونتاژ (قسمت 2) Basic Assembly Errors (Part 2)

مقدمه ای بر FASM Introduction to FASM

  • مقدمه fasm fasm intro

  • برنامه های اول - کنسول (قسمت 1) First Programs - console (Part 1)

  • برنامه های اول - برنامه اول (قسمت دوم) First Programs - first program (Part 2)

  • خطاهای اساسی مونتاژ (قسمت 2) Basic Assembly Errors (Part 2)

انشعاب Branching

  • معرفی شعبه (قسمت 1) Branching Intro (Part 1)

  • معرفی شعبه (قسمت 2) Branching Intro (Part 2)

  • معرفی شعبه (قسمت 2) Branching Intro (Part 2)

  • نمونه های JMP JMP Examples

  • ثبت پرچم ها (قسمت 1) Flags Register (Part 1)

  • ثبت پرچم ها (قسمت 2) Flags Register (Part 2)

  • ثبت پرچم ها (قسمت 3) Flags Register (Part 3)

  • ثبت پرچم ها (قسمت 4) Flags Register (Part 4)

  • انشعاب شرطی پایه Basic Conditional Branching

  • انشعاب مشروط بیشتر (قسمت 1) More Conditional Branching (Part 1)

  • انشعاب مشروط بیشتر (قسمت 2) More Conditional Branching (Part 2)

  • انشعاب مشروط بیشتر (قسمت 2) More Conditional Branching (Part 2)

  • انشعاب ساختاریافته (قسمت 1) Structured Branching (Part 1)

  • انشعاب ساختاریافته (قسمت 1) Structured Branching (Part 1)

  • انشعاب ساختاریافته (قسمت 2) Structured Branching (Part 2)

  • انشعاب ساختاریافته (قسمت 2) Structured Branching (Part 2)

  • انشعاب ساختاریافته (بخش 3) Structured Branching (Part 3)

انشعاب Branching

  • معرفی شعبه (قسمت 1) Branching Intro (Part 1)

  • نمونه های JMP JMP Examples

  • ثبت پرچم ها (قسمت 1) Flags Register (Part 1)

  • ثبت پرچم ها (قسمت 2) Flags Register (Part 2)

  • ثبت پرچم ها (قسمت 3) Flags Register (Part 3)

  • ثبت پرچم ها (قسمت 4) Flags Register (Part 4)

  • انشعاب شرطی پایه Basic Conditional Branching

  • انشعاب مشروط بیشتر (قسمت 1) More Conditional Branching (Part 1)

  • انشعاب ساختاریافته (بخش 3) Structured Branching (Part 3)

عملیات امضا شده Signed Operations

  • عملیات امضا شده (قسمت 1) Signed Operations (Part 1)

  • عملیات امضا شده (قسمت 2) Signed Operations (Part 2)

  • عملیات امضا شده (قسمت 3) Signed Operations (Part 3)

  • عملیات امضا شده (قسمت 3) Signed Operations (Part 3)

عملیات امضا شده Signed Operations

  • عملیات امضا شده (قسمت 1) Signed Operations (Part 1)

  • عملیات امضا شده (قسمت 2) Signed Operations (Part 2)

عملیات بیتی Bitwise Operations

  • مقدمه ای بر جبر بولی (قسمت اول) Intro to Boolean Algebra (Part 1)

  • مقدمه ای بر جبر بولی (قسمت اول) Intro to Boolean Algebra (Part 1)

  • مقدمه ای بر جبر بولی (قسمت 2) Intro to Boolean Algebra (Part 2)

  • مقدمه ای بر جبر بولی (قسمت 2) Intro to Boolean Algebra (Part 2)

  • مقدمه ای بر جبر بولی (قسمت 3) Intro to Boolean Algebra (Part 3)

  • مقدمه ای بر جبر بولی (قسمت 3) Intro to Boolean Algebra (Part 3)

  • مقدمه ای بر جبر بولی (قسمت 4) Intro to Boolean Algebra (Part 4)

  • مقدمه ای بر جبر بولی (قسمت 4) Intro to Boolean Algebra (Part 4)

  • دستورالعمل های بیتی (قسمت 1) Bitwise Instructions (Part 1)

  • دستورالعمل های بیتی (قسمت 2) Bitwise Instructions (Part 2)

  • دستورالعمل های بیتی (قسمت 2) Bitwise Instructions (Part 2)

  • بازی های بیت عملی Practical Bit Games

  • بازی های بیت عملی Practical Bit Games

عملیات بیتی Bitwise Operations

  • دستورالعمل های بیتی (قسمت 1) Bitwise Instructions (Part 1)

حافظه Memory

  • معرفی حافظه (قسمت اول) Memory Intro (Part 1)

  • معرفی حافظه (قسمت اول) Memory Intro (Part 1)

  • معرفی حافظه (قسمت 2) Memory Intro (Part 2)

  • مثال‌های حافظه - معکوس (قسمت 1) Memory Examples - reverse (Part 1)

  • مثال های حافظه - معکوس (قسمت 2) Memory Examples - reverse (Part 2)

  • مثال های حافظه - معکوس (قسمت 2) Memory Examples - reverse (Part 2)

  • نمونه های حافظه - get_addr Memory Examples - get_addr

  • نمونه های حافظه - get_addr Memory Examples - get_addr

  • نمونه های حافظه - خراب است Memory Examples - corrupt

  • نمونه های حافظه - خراب است Memory Examples - corrupt

  • تعریف داده Data definition

  • تعریف داده Data definition

  • بخش های داده Data sections

  • بخش های داده Data sections

  • دستورالعمل های اصلی حافظه Basic Memory Instructions

  • LEA LEA

  • LEA LEA

  • سازه ها (قسمت اول) Structures (Part 1)

  • سازه ها (بخش دوم) Structures (Part 2)

  • سازه ها (بخش دوم) Structures (Part 2)

  • سازه ها (قسمت سوم) Structures (Part 3)

  • سازه ها (قسمت سوم) Structures (Part 3)

  • ایده های حافظه (قسمت 1) Memory Ideas (Part 1)

  • ایده های حافظه (قسمت 1) Memory Ideas (Part 1)

  • ایده های حافظه (قسمت 2) Memory Ideas (Part 2)

  • ایده های حافظه (قسمت 3) Memory Ideas (Part 3)

  • پرداختن به قوانین سرانگشتی Addressing Rules Of Thumb

حافظه Memory

  • معرفی حافظه (قسمت 2) Memory Intro (Part 2)

  • مثال‌های حافظه - معکوس (قسمت 1) Memory Examples - reverse (Part 1)

  • دستورالعمل های اصلی حافظه Basic Memory Instructions

  • سازه ها (قسمت اول) Structures (Part 1)

  • ایده های حافظه (قسمت 2) Memory Ideas (Part 2)

  • ایده های حافظه (قسمت 3) Memory Ideas (Part 3)

  • پرداختن به قوانین سرانگشتی Addressing Rules Of Thumb

رشته های Strings

  • ASCII ASCII

  • ASCII ASCII

  • نقشه شخصیت Character Map

  • نقشه شخصیت Character Map

  • بازنمایی رشته String Representation

  • بازنمایی رشته String Representation

  • مثال UTF8 UTF8 Example

  • مثال UTF8 UTF8 Example

  • دستورالعمل های رشته اول (قسمت 1) First String Instructions (Part 1)

  • دستورالعمل های رشته اول (قسمت 2) First String Instructions (Part 2)

  • پیشوندهای REP (قسمت 1) REP Prefixes (Part 1)

  • پیشوندهای REP (قسمت 1) REP Prefixes (Part 1)

  • پیشوندهای REP (قسمت 2) REP Prefixes (Part 2)

  • پیشوندهای REP (قسمت 2) REP Prefixes (Part 2)

رشته های Strings

  • دستورالعمل های رشته اول (قسمت 1) First String Instructions (Part 1)

  • دستورالعمل های رشته اول (قسمت 2) First String Instructions (Part 2)

Subroutines و The Stack Subroutines and The Stack

  • معرفی زیربرنامه ها Subroutines Intro

  • پشته The Stack

  • تماس و بازخوانی (قسمت 1) Call and Ret (Part 1)

  • تماس و بازخوانی (قسمت 2) Call and Ret (Part 2)

  • تماس و بازخوانی (قسمت 2) Call and Ret (Part 2)

  • فراخوان کنوانسیون (قسمت 1) Calling Conventions (Part 1)

  • فراخوان کنوانسیون (قسمت 1) Calling Conventions (Part 1)

  • فراخوان کنوانسیون ها (قسمت 2) Calling Conventions (Part 2)

  • فراخوان کنوانسیون ها (قسمت 2) Calling Conventions (Part 2)

  • ایالت محلی (قسمت 1) Local State (Part 1)

  • ایالت محلی (قسمت 1) Local State (Part 1)

  • ایالت محلی (قسمت 2) Local State (Part 2)

Subroutines و The Stack Subroutines and The Stack

  • معرفی زیربرنامه ها Subroutines Intro

  • پشته The Stack

  • تماس و بازخوانی (قسمت 1) Call and Ret (Part 1)

  • ایالت محلی (قسمت 2) Local State (Part 2)

دفترچه راهنما Manuals

  • دانلود کتابچه های راهنما Downloading the manuals

  • دانلود کتابچه های راهنما Downloading the manuals

  • کتابچه راهنمای اینتل (قسمت 1) Intel Manual (Part 1)

  • کتابچه راهنمای اینتل (قسمت 2) Intel Manual (Part 2)

  • کتابچه راهنمای اینتل (قسمت 2) Intel Manual (Part 2)

  • دفترچه راهنمای AMD AMD Manual

  • دفترچه راهنمای AMD AMD Manual

  • آخرین نظرات Last Comments

دفترچه راهنما Manuals

  • کتابچه راهنمای اینتل (قسمت 1) Intel Manual (Part 1)

  • آخرین نظرات Last Comments

اشکال زدایی Debugging

  • مثال اول First Example

  • معرفی دیباگر Debugger Intro

  • معرفی WinDbg WinDbg Intro

  • معرفی WinDbg WinDbg Intro

  • نصب WinDbg WinDbg Installation

  • نصب WinDbg WinDbg Installation

  • مثال - کنترل پایه Examples - Basic Control

  • مثال - کنترل پایه Examples - Basic Control

  • مثالها - حالت - مبانی (قسمت 1) Examples - State - Basics (Part 1)

  • مثالها - حالت - مبانی (قسمت 2) Examples - State - Basics (Part 2)

  • مثالها - حالت - مبانی (قسمت 3) Examples - State - Basics (Part 3)

  • مثالها - حالت - مبانی (قسمت 3) Examples - State - Basics (Part 3)

  • مثال ها - حالت - علامت سوال Examples - State - Question Mark

  • مثال ها - حالت - علامت سوال Examples - State - Question Mark

  • مثال - وضعیت - جستجو Examples - State - Searching

  • مثال - حالت - پشته Examples - State - Stack

  • مثال - حالت - پشته Examples - State - Stack

  • مثال‌ها - نقاط شکست نرم‌افزار (قسمت 1) Examples - Software Breakpoints (Part 1)

  • مثال‌ها - نقاط شکست نرم‌افزار (قسمت 2) Examples - Software Breakpoints (Part 2)

  • مثال‌ها - نقاط شکست نرم‌افزار (قسمت 2) Examples - Software Breakpoints (Part 2)

  • مثال‌ها - نقاط شکست سخت‌افزار (قسمت 1) Examples - Hardware Breakpoints (Part 1)

  • مثال‌ها - نقاط شکست سخت‌افزار (قسمت 1) Examples - Hardware Breakpoints (Part 1)

  • مثال‌ها - نقاط شکست سخت‌افزار (قسمت 2) Examples - Hardware Breakpoints (Part 2)

  • مثال‌ها - نقاط شکست سخت‌افزار (قسمت 2) Examples - Hardware Breakpoints (Part 2)

  • مثال ها - استثنائات Examples - Exceptions

  • مثال ها - استثنائات Examples - Exceptions

اشکال زدایی Debugging

  • مثال اول First Example

  • معرفی دیباگر Debugger Intro

  • مثالها - حالت - مبانی (قسمت 1) Examples - State - Basics (Part 1)

  • مثالها - حالت - مبانی (قسمت 2) Examples - State - Basics (Part 2)

  • مثال - وضعیت - جستجو Examples - State - Searching

  • مثال‌ها - نقاط شکست نرم‌افزار (قسمت 1) Examples - Software Breakpoints (Part 1)

API اصلی ویندوز Basic Windows API

  • معرفی API API Intro

  • معرفی API API Intro

  • مثال - ExitProcess Examples - ExitProcess

  • مثال‌ها - console_echo (قسمت 1) Examples - console_echo (Part 1)

  • مثال‌ها - console_echo (قسمت 1) Examples - console_echo (Part 1)

  • مثال‌ها - console_echo (قسمت 2) Examples - console_echo (Part 2)

  • مثال‌ها - console_echo (قسمت 2) Examples - console_echo (Part 2)

  • مثال ها - CreateFile Examples - CreateFile

  • مثال ها - CreateFile Examples - CreateFile

  • مثال - اطلاعات رشته Examples - String Info

  • مثال - اطلاعات رشته Examples - String Info

  • مثالها - شماره بعدی Examples - Next Num

  • مثالها - شماره بعدی کوتاه Examples - Next Num Short

  • مثالها - شماره بعدی کوتاه Examples - Next Num Short

  • مثال ها - تاریخ Examples - Date

  • مثال ها - تاریخ Examples - Date

  • مثال - موز Examples - Bananas

  • مثال - موز Examples - Bananas

  • مثال - موز کوتاه Examples - Bananas Short

API اصلی ویندوز Basic Windows API

  • مثال - ExitProcess Examples - ExitProcess

  • مثالها - شماره بعدی Examples - Next Num

  • مثال - موز کوتاه Examples - Bananas Short

Outro Outro

  • Outro Outro

  • Outro Outro

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

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

Outro Outro

نمایش نظرات

Udemy (یودمی)

یودمی یکی از بزرگ‌ترین پلتفرم‌های آموزشی آنلاین است که به میلیون‌ها کاربر در سراسر جهان امکان دسترسی به دوره‌های متنوع و کاربردی را فراهم می‌کند. این پلتفرم امکان آموزش در زمینه‌های مختلف از فناوری اطلاعات و برنامه‌نویسی گرفته تا زبان‌های خارجی، مدیریت، و هنر را به کاربران ارائه می‌دهد. با استفاده از یودمی، کاربران می‌توانند به صورت انعطاف‌پذیر و بهینه، مهارت‌های جدیدی را یاد بگیرند و خود را برای بازار کار آماده کنند.

یکی از ویژگی‌های برجسته یودمی، کیفیت بالای دوره‌ها و حضور استادان مجرب و با تجربه در هر حوزه است. این امر به کاربران اعتماد می‌دهد که در حال دریافت آموزش از منابع قابل اعتماد و معتبر هستند و می‌توانند به بهترین شکل ممکن از آموزش‌ها بهره ببرند. به طور خلاصه، یودمی به عنوان یکی از معتبرترین و موثرترین پلتفرم‌های آموزشی آنلاین، به افراد امکان می‌دهد تا به راحتی و با کیفیت، مهارت‌های مورد نیاز خود را ارتقا دهند و به دنبال رشد و پیشرفت شغلی خود باشند.

آموزش ماجراهای زبان اسمبلی: دوره کامل
جزییات دوره
29 hours
120
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
9,521
4.6 از 5
دارد
دارد
دارد
xor pd
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

xor pd xor pd

آموزش تکنولوژی سطح پایین