|
所在平台: Udemy |
课程主页: https://www.udemy.com/course/reverse-engineering-and-exploit-development-in-linuxx64/
课程评论:没有评论
课程名称:Linux(x64)中的逆向工程与漏洞开发 课程概述:这门课程旨在从零开始,帮助学员掌握逆向工程和漏洞开发的技巧。许多安全与黑客课程侧重于应用和软件,而不涉及编程的基础知识,这就像只了解WordPress,而不知道编程语言。课程强调基础知识的重要性,引用爱因斯坦的话“如果你不能简单地解释某事,你就不理解得够透彻”,以此来说明安全领域专家与业余者之间的差别。上课的前提条件是愿意深入理解背后的科学,课程会从数据、比特和字节的概念入手,逐步引导学员了解计算机的基本构造,包括晶体管和逻辑门(如与非门和非门)的使用。 接下来,课程介绍计算机的基本功能:存储与处理,并通过创建内存和CPU来实现。学员将学习如何编写程序、将程序存储到内存中、以及CPU如何提取和执行指令。课程还会深入探讨文件的概念,讲解计算机如何处理1和0以显示文本、图像、电影和可执行文件,以及ELF文件格式和Linux中的二进制文件的结构。 在接下来的章节中,学员将进入汇编语言的世界,学习汇编语言的必要性以及如何编写和调试汇编程序。同时,课程将汇编语言与其他高级编程语言进行比较,帮助学员理解变量、指针、格式说明符和函数等概念,特别是内存和堆栈的组织。 在最后的章节中,课程将结合之前所学知识,讲解逆向工程和漏洞开发的具体技巧。学员将能够逆向分析恶意软件、破解软件,掌握进攻性技能,成为真正的黑客。 这门课程提供了从基础到高级的全面学习体验,适合任何希望在安全领域建立扎实基础并成为专家的学习者。
i always wanted a course, a book or something which starts from scratch and brings me to an expert level. i saw and read a lot of courses which teach you the applications and software about security and hacking, learning those in security industry, is like knowing wordpress to design websites without understanding programming languages. so i started this course from scratch, from nothing. because as einstein put it: "if you can't explain something simply then you don't understand it well enough". in security the difference between experts and amateurs is just in the same statement. those who know the background science are those who DESIGN the metasploit and other softwares, and those who don't are the users of the programs. which one do you want to be?if the answer is the first group, this the right place for you. we really start from nothing, introduce you the concept of data, that what do we mean by data, bits and bytes? we then introduce the basic element of all the digital devices: TRANSISTOR.then we use that transistor to create the logic gates, nand and not gates. but we only create them if we need them, so before creating anything, we ask the question of "why do i need this?". then we start to give a general overview of what a computer is, why we need it and how we are going to create it. that brings us to the concepts that as human we can't remember everything, so we needed something which could remember as long as we want it to, and more importantly we want it to do the computation so much faster that we ever could. those are the only two things that computer has over human brain. so based on that we proceed, a memory for remembering and a cpu for processing. so we start my using our nand gates to create both memory and cpu. and we test it, troubleshoot it, add features to it, until we have our computer. now we save our program as a set of instructions inside the memory, the cpu would fetch those instructions, and execute them and move to the next one, and it does it over and over again. everything in the computer which is not hardware, is a program, a simple FILE. so in the second chapter we start talking about files. if all the computer could know are 1s and 0s, how could it show us text and images, movies and executables. this is were we talk about file extensions and headers. so that it could be an introduction into getting us to the elf file format, the executables and binary files in linux. because if we want to reverse files and crack and hack them, first we need to know them. all its segment and section headers, but not just an overview, going deep , somehow that we comprehend every byte of it. now its time for us to know how they get executed, or how they get created? using programming languages: ASSEMBLYin the next chapter we enter the assembly world. why we need it , like always would be the main question, if we could anser it then we enter to HOW we do it. we teach everything you need to know about assembly. and when we write a program we debug it using the gdb, analyze instructions one by one, so that you know the reason for each instruction. and at the same time we compare assembly with other higher level programming languages.why we need c programming language would trigger the creation of the next chapter. variables, pointers, format specifers, functions, they are all just names without a concept and their comprehension, thats why for every single abstraction there is a separate lecture depicting the memory and stack(we explain what this is in an intuitive manner) organization and how it changes.when we know all these sciences in such a different manner, then when we get to the reverse engineering and exploit development, the last two chapter, you see that these are just a different look of everything we have learned so far. just looking differently and keep track of memory. and using these we would be able to reverse engineer malwares, hack and crack softwares. which means acquiring the offensive skills without which , you could never be a real hacker.