计算机科学2021,Vol.48Issue(4) :288-294.DOI:10.11896/jsjkx.200300151

通用代码Shell化技术研究

Study of Universal Shellcode Generation Technology

陈涛 舒辉 熊小兵
计算机科学2021,Vol.48Issue(4) :288-294.DOI:10.11896/jsjkx.200300151

通用代码Shell化技术研究

Study of Universal Shellcode Generation Technology

陈涛 1舒辉 1熊小兵1
扫码查看

作者信息

  • 1. 信息工程大学数学工程与先进计算国家重点实验室 郑州 450001
  • 折叠

摘要

代码Shell化技术是一种实现程序从源码形态到二进制形态的程序变换技术.该技术可用于实现Shellcode生成,生成包括漏洞利用过程中的Shellcode及后渗透测试过程中的功能性Shellcode.文中形式化地描述了程序中代码与数据的关系,提出了一种基于LLVM(Low Level Virtual Machine)的通用程序变换方法,该方法可用于实现操作系统无关的代码Shell化.该技术通过构建代码内置全局数据表和添加动态重定位代码,将代码对数据的绝对内存地址访问转化为对代码内部全局数据表的相对地址访问,重构了代码与数据之间的引用关系,解决了代码执行过程中对操作系统重定位机制依赖的问题,使得生成的Shellcode代码具有位置无关特性.在验证实验中,使用适用于不同操作系统的不同规模的工程源码对基于该技术实现的Shellcode生成系统进行了功能测试,并对比了Shell化前后代码功能的一致性、文件大小、函数数量和运行时间,实验结果表明基于该技术的Shellcode生成系统功能正常,具有较好的兼容性和通用性.

关键词

LLVM/Shellcode/代码Shell化/内存加载/程序变换

引用本文复制引用

基金项目

出版年

2021
计算机科学
重庆西南信息有限公司(原科技部西南信息中心)

计算机科学

CSTPCDCSCD北大核心
影响因子:0.944
ISSN:1002-137X
参考文献量2
段落导航相关论文