ShellCode 通常是指一个原始的可执行代码的有效载荷,ShellCode 这个名字来源于攻击者通常会使用这段代码来获得被攻陷系统上的交互 Shell 的访问权限,而现在通常用于描述一段自包含的独立的可执行代码片段。
上节课的简易 ShellCode 虽然可以正常被执行,但是还存在很多的问题,因为上次所编写的 ShellCode 采用了硬编址
的方式来调用相应API函数的,那么就会存在一个很大的缺陷,如果操作系统的版本不统一就会存在调用函数失败甚至是软件卡死的现象。
接下来我们见通过编写一些定位程序,让ShellCode能够动态的定位我们所需要的API函数的内存地址,从而解决上节课中 ShellCode 的通用性问题。
在开始编写ShellCode之前,我们还需要解决一个问题,如何将函数调用字符串进行压缩,因为这样才能保证ShellCode更加的短小精悍,