ShellCode分析


知识点

位置无关代码:PIC指不用硬编码地址来寻址指令或数据得代码,shellcode编写者应该使用位置无关代码来提高代码的兼容性。

识别执行位置:Shellcode再以位置无关方式访问数据时需要引用一个基质指针,用这个基址指针加上或减去偏移值,将使它安全访问shellcode中包含的数据,因此一个通用寄存器应该首先载入当前EIP值,作为基址指针来使用,但是指令指针不能之别被软件访问,无法汇编mov eax, eip指令,但是可以使用call/pop指令和fnstenv指令。

使用call/pop指令:当一个call指令被执行使,处理器将call后面的指令地址压倒栈上,然后请求转到被请求的位置执行,这个函数执行完成后会执行一个ret指令,将返回地址弹出到栈的顶部,并将它载入EIP寄存器中,这样的结果使执行刚好返回到call后面的指令。因此shellcode可以通过call后面紧跟一个pop的方法来得到call后指令指针的方法。

恶意代码行为


知识点

本章中会介绍恶意代码常见的恶意行为,方便我们识别各种各样的恶意程序。

下载器和启动器:常见的两种恶意代码是下载器和启动器。下载器从互联网上下载其他的恶意代码,然后在本地系统中运行,通常使用WindowsAPI函数URLDownloadtoFileAWinExec,来下载并运行新的恶意代码。启动器也成为加载器,是一类可执行文件,用来安装立即运行或者将来运行的恶意代码。

后门:后门可以让攻击者远程访问一个受害的机器。通常使用80端口的HTTP协议与控制机器进行通信。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×