什么是shellcode
1、 独立的存在,无需任何文件格式的包装
2、内存中运行,无需固定指定的宿主进程
shellcode的基本特点
1、短小精悍
2、灵活多变
shellcode 生成方法
shellcode 环境配置
简单生成一个简单的程序
int main()
{
return 0;
}
生成文件
这里发现一个简单的程序自动生成了这么多文件,所以我们应该想个办法清除这些文件
修改入口点
关闭缓冲区安全检查
重新生成
发现生成的文件变小了很多
放进ida里面去分析,然后只有一个start
反汇编看一下,这样就能直观的看到我们生成的代码
设置工程兼容 Windpws XP
Debug版改为多线程/MD
Release改为多线程/MT
关闭生成清单
这里先看一下原先生成exe文件,这里.rsrc段是属于visual studio的生成清单文件。
重新生成之后,这样就可以达到去除资源段的效果。
关闭调试信息
这个是前面那个数据段.rdata段
生成之后发现还是没有去掉,我这用的是2017可能是版本问题,但是问题不大。