https://www.bilibili.com/video/BV1y4411k7ch/?spm_id_from=333.788.recommend_more_video.3
什么是shellcode?

 通常情况下,编写代码生成pe文件(即exe文件)(运行所需的宿主 意思就是,需要先运行exe)
 而shellcode,不被包装在pe中,以二进制的方式存放到
 
 举例:实现弹窗提示功能
 
 编译后,运行生成的exe文件,弹出框
 
 把代码中的核心代码MassegeBOX提取出来就是shellcode
 通过特殊处理,得到核心代码shellcode的bin文件(苍了个天,为啥这点不讲解?
 
 bin文件通过一定方式可以在 任何exe文件 中执行
shellcode特点:不依赖任何格式文件的约束,可以任何方式加密,变形
 
shellcode生成方式

 shellcode生成器:是建立在shellcode库基础上的,将库中的模块取出。很快,但大多是通用型的
  举例:框架是获取弹出框项目的核心代码 哈哈哈哈哈哈
举例:框架是获取弹出框项目的核心代码 哈哈哈哈哈哈
 用到winhex,找到一个啥偏移量,复制到 shellcode加载器,就执行那个弹框了
用到winhex,找到一个啥偏移量,复制到 shellcode加载器,就执行那个弹框了
基本环境搭建

 

 
 新建32控制台应用程序项目,只写一个return 0的main方法,相当于是空项目
 编译生成exe,是87kb,是因为这个pe文件自动了很多东西
 使用IDA查看都是些啥
清除自动添加的这些东西 ↓
 
 

 
 再次在IDA中看,只剩下start了
 F5,将汇编语言代码 转换成 C语言代码

 继续优化
 
 属性
 
 用peid查看文件,最后一行那个就是清单文件
 
 在属性中关闭
 
shellcode编写原则2











