assembly - ASM_SystemCalls - Part I
KSATs: K0152, K0241, K0242, K0243, K0814, K0816, K0818, K0820, K0821, S0120, S0122, S0124, S0132
Measurement: Written, Performance
Lecture Time:
Demo/Performance Time:
Instructional Methods: Informal Lecture & Demonstration/Performance
Multiple Instructor Requirements: 1:8 for Labs
Classification: UNCLASSIFIED
Lesson Objectives:
-
LO 1 Understand the purpose of system calls and interrupts (Proficiency Level: B)
- MSB 1.1 Implement system calls and interrupts (Proficiency Level: 2)
-
LO 2 Understand and access different processor modes in Assembly (Proficiency Level: B)
- MSB 2.1 Write Assembly code for different processor modes (Proficiency Level: 2)
-
LO 3 Access files in Assembly (Proficiency Level: B)
- MSB 3.1 Implement file handling in Assembly (Proficiency Level: 2)
-
LO 4 Explain Assembly debugging using WinDBG (Proficiency Level: B)
Performance Objectives (Proficiency Level: 3c)
-
Conditions: Given access to (references, tools, etc.):
- Access to specified remote virtual environment
- Student Guide and Lab Guide
- Student Notes
-
Performance/Behavior Tasks:
-
Standard(s)
- Criteria: Demonstration: Correctable to 100% in class
- Evaluation: Students will have 4 hours to complete the timed evaluation consisting of both cognitive and performance components.
- Minimum passing score is 80%
References
- Nebbett, G. (2000). Windows NT/2000 native API reference. Sams Publishing
- http://faculty.nps.edu/cseagle/assembly/sys_call.html
- http://www.c-jump.com/CIS77/ASM/Memory/lecture.html
- https://asmtutor.com/#lesson1
- https://asmtutor.com/#lesson22
- https://blog.packagecloud.io/eng/2016/04/05/the-definitive-guide-to-linux-system-calls/
- https://en.wikibooks.org/wiki/X86_Assembly/Interfacing_with_Linux
- https://en.wikibooks.org/wiki/X86_Assembly/Interfacing_with_Linux#Via_interrupt
- https://j00ru.vexillium.org/syscalls/nt/64/
- https://resources.infosecinstitute.com/calling-ntdll-functions-directly/#gref
- https://riptutorial.com/x86/example/12672/real-mode
- https://software.intel.com/content/www/us/en/develop/articles/intel-sdm.html
- https://stackoverflow.com/questions/29440225/in-linux-x86-64-are-syscalls-and-int-0x80-related
- https://wiki.osdev.org/Protected_Mode
- https://wiki.osdev.org/Real_Mode
- https://wiki.osdev.org/Security#Rings
- https://wiki.osdev.org/System_Management_Mode
- https://wiki.osdev.org/Virtual_8086_Mode
- https://www.codeproject.com/Articles/45788/The-Real-Protected-Long-mode-assembly-tutorial-for
- https://www.cs.uaf.edu/2016/fall/cs301/lecture/11_04_syscall.html
- https://www.researchgate.net/publication/241643659_Using_CPU_System_Management_Mode_to_Circumvent_Operating_System_Security_Functions
- https://www.tutorialspoint.com/assembly_programming/assembly_basic_syntax.htm
- https://www.tutorialspoint.com/assembly_programming/assembly_file_management.htm
- https://www.tutorialspoint.com/assembly_programming/assembly_system_calls.htm