Github项目地址: https://github.com/merrychap/shellen
shellen
是一个交互式shellcode开发环境. 如果你需要一个便携的工具去编写shellcode, shellen
会是一个好帮手. 当然它也可以简单用作一个汇编/反汇编工具.
shellen
使用keystone
和capstone
提供操作, 目前shellen
仅支持python3
, 也许在未来会作改变.
你可以使用pip3
安装shellen
稳定版本
或者如果你已经装有所有依赖的包(详情见Requirements), 可以直接使用以下命令安装
如果你在安装keystone-engine
时出现问题, 你可以通过手动编译的方式进行安装(参考keystone仓库的COMPILE.md文件进行编译)
安装完shellen
以及所有依赖包, 你只需要在终端里敲如下命令, 即可运行shellen
工具有内置help
命令, 几乎可以解释你所遇到的一切问题
shellen
初始是因汇编/反汇编而创建的项目, 所以使用该工具有两种模式, 分别为asm
和dsm
. 当然, 还有其他一些比如说系统调用表, 通用shellcode等功能.
如果你在使用时发现有问题或bug, 欢迎提交关于该问题的issue. 同样, 如果你认为shellen
应该添加的不错的功能, 也欢迎提交issue, 我会尽力去添加这些功能.
shellen
有实用的命令提示符, 会显示当前的模式, 操作系统类型(用于系统调用表), 并且可以选择相应的架构, 就像下面这样
你可以像终端那样编辑输入, 同样shellen
也有输入过命令的历史记录(按上箭头键即可查看). 命令提示符里的L
是Linux
的缩写. 以下列出了所有支持的操作系统名称:
如果你想要改变操作系统类型, 只需要输入setos [linux/windows/macos]
如果要修改当前的模式, 在命令行中输入asm
或dsm
对指令进行汇编时, 使用分号进行分割, 像下面这样
shellen也会告知你汇编字节是否存在\x00
操作跟汇编时差不多, 输入要反汇编的字节然后可以查看结果
asm
和dsm
模式支持的架构会有差异. 要查看当前模式支持的架构, 输入以下命令
如果你要修改当前架构, 使用setarch
命令:
显然在编写shellcode时会需要系统调用, 因此shellen可以为你提供帮助. 只需要输入sys
和系统调用名称, shellen就可以展示出你可能需要的系统调用列表.
当然你查找的内容不同, 打印出的系统调用表也会有所变化. 搜索到的系统调用表取决于你所选择的架构和操作系统. 在这个示例中它是x86_32
和Linux
.
shellen可以根据你的关键字展示给你一个通用shellcode的清单. 使用示例可以在之后的展示图
部分看到. 它使用了shell-storm.org
提供的API(谢谢该站长!), 你可以像下面这样使用该功能
事实上, 参数count
并不是必需的
之前有说会有一些操作系统, 但目前只支持Linux. 如果你想要添加Windows或MacOS的功能, 可以提交issue, 我将会添加对该功能的支持.
只是一些使用过程的展示图
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
最后于 2018-2-27 21:07
被Vancir编辑
,原因: