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加载器,就执行那个弹框了
基本环境搭建
新建32控制台应用程序项目,只写一个return 0的main方法,相当于是空项目
编译生成exe,是87kb,是因为这个pe文件自动了很多东西
使用IDA查看都是些啥
清除自动添加的这些东西 ↓
再次在IDA中看,只剩下start了
F5,将汇编语言代码 转换成 C语言代码
继续优化
属性
用peid查看文件,最后一行那个就是清单文件
在属性中关闭