Skip to content

shellcode加载及加壳方法演示

c++

  1. 常规加载shellcode

  2. 导入表混淆加载shellcode

  3. 先申请可读写再修改内存属性加载shellcode

  4. shellcode转换

  5. MAC地址
  6. UUID
  7. XOR

go

  1. 常规加载shellcode
  2. base64编码后加载shellcode

python

  1. AES加密后加载shellcode
  2. base64编码后加载shellcode

加壳

介绍

壳就是软件所增加的保护,并不会破坏里面的程序结构,当我们运行这个加壳的程序时,系统首先会运行程序里的壳,然后由壳将加密的程序逐步还原到内存中,最后运行程序。

加壳工具通常分为压缩壳和加密壳两类。

  • 压缩壳的特点是减小软件体积大小,加密保护不是重点。

  • 加密壳种类比较多,不同的壳侧重点不同,一些壳单纯保护程序,另一些壳提供额外的功能,如提供注册机制、使用次数、时间限制等。

演示UPX压缩壳

利用特殊的算法,对EXE、DLL文件里的资源进行压缩。类似WINZIP 的效果,只不过这个压缩之后的文件,可以独立运行,解压过程完全隐蔽,都在内存中完成。解压原理,是加壳工具在文件头里加了一段指令,告诉CPU,怎么才能解压自己。当加壳时,其实就是给可执行的文件加上个外衣。用户执行的只是这个外壳程序。当执行这个程序的时候这个壳就会把原来的程序在内存中解开,解开后,以后的就交给真正的程序

---best:最佳压缩率;
--ultra-brute:最高压缩率,但速度较慢;
---ultra:高压缩率,速度较快;
--brute:更快速的高压缩率。

Comments