This shows you the differences between two versions of the page.
cns:lectures:lecture-03 [2014/10/20 15:47] razvan.deaconescu |
cns:lectures:lecture-03 [2019/10/14 08:49] (current) razvan.deaconescu |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Lecture 03 - Binary Analysis. Executables and Processes ====== | + | ====== Lecture 03 - The Stack. Buffer Management ====== |
- | *[[http://elf.cs.pub.ro/cns/res/lectures/lecture-03.pdf | Slides]] | + | * [[http://elf.cs.pub.ro/cns/res/lectures/03-buffer-management-handout.pdf | Slides]] |
- | ***Keywords**: object file, library, executable, ELF, readelf, objdump, nm, symbols, GOT, PLT, linker, loader, ld, ld-linux.so, static linking, load time dynamic linking, run time dynamic linking, lazy binding, process, GDB, breakpoint, print (p), examine (x) | + | * **Keywords**: address space, stack, push, pop, stack frame, call stack, stack trace, ''call'', ''ret'', buffer, allocation, buffer overflow, return address, NOP sled, shellcode |
<html> | <html> | ||
- | <iframe src="http://docs.google.com/viewer?url=http://elf.cs.pub.ro/cns/res/lectures/lecture-03.pdf&embedded=true" width="600" height="470" style="border: none;"></iframe> | + | <center> |
+ | <iframe src="https://docs.google.com/viewer?url=http://elf.cs.pub.ro/cns/res/lectures/03-buffer-management-handout.pdf&embedded=true" width="600" height="470" style="border: none;"></iframe> | ||
+ | </center> | ||
</html> | </html> | ||
+ | /* | ||
+ | |||
+ | * [[http://elf.cs.pub.ro/cns/res/lectures/lecture-05.pdf | Slides]] | ||
+ | * **Keywords**: bugs, vulnerabilities, exploit, shellcode, shellcode construction, shellcode triggering, shellcode placing, syscall, string formatting, null, alphanumeric shellcode, stack buffer overflow, heap buffer overflow, return-to-libc, return-oriented programming, metasploit | ||
+ | |||
+ | <html> | ||
+ | <iframe src="http://docs.google.com/viewer?url=http://elf.cs.pub.ro/cns/res/lectures/lecture-05.pdf&embedded=true" width="600" height="470" style="border: none;"></iframe> | ||
+ | </html> | ||
+ | |||
+ | */ | ||
+ | |||
+ | ===== Demos ===== | ||
+ | |||
+ | For obtaining the [[http://elf.cs.pub.ro/cns/res/lectures/03-buffer-management-demo.zip|demo archive]], run the following commands: | ||
+ | <code bash> | ||
+ | wget http://elf.cs.pub.ro/cns/res/lectures/03-buffer-management-demo.zip | ||
+ | unzip 03-buffer-management-demo.zip | ||
+ | cd 03-buffer-management-demo/ | ||
+ | </code> | ||
+ | |||
+ | /* | ||
+ | |||
+ | ====== Lecture 03 - Executables. Static Analysis ====== | ||
+ | |||
+ | * [[http://elf.cs.pub.ro/cns/res/lectures/lecture-03.pdf|Slides]] | ||
+ | * **Keywords**: static analysis, dynamic analysis, executable, ELF, library, object file, readelf, section, segment, access rights, disassembling, objdump, nm, symbols, linker, ld, static linking, dynamic linking | ||
+ | |||
+ | <html> | ||
+ | <center> | ||
+ | <iframe src="https://docs.google.com/viewer?url=http://elf.cs.pub.ro/cns/res/lectures/lecture-03.pdf&embedded=true" width="600" height="470" style="border: none;"></iframe> | ||
+ | </center> | ||
+ | </html> | ||
+ | |||
+ | ===== Demos ===== | ||
+ | |||
+ | For obtaining the [[http://elf.cs.pub.ro/cns/res/lectures/lecture-03-demo.zip|demo archive]], run the following commands: | ||
+ | <code bash> | ||
+ | wget http://elf.cs.pub.ro/cns/res/lectures/lecture-03-demo.zip | ||
+ | unzip lecture-03-demo.zip | ||
+ | cd lecture-03-demo/ | ||
+ | </code> | ||
+ | |||
+ | */ |