首页
社区
课程
招聘
[翻译] Shellen-交互式shellcode开发环境
发表于: 2018-2-27 21:00 5405

[翻译] Shellen-交互式shellcode开发环境

2018-2-27 21:00
5405

Github项目地址: https://github.com/merrychap/shellen

shellen是一个交互式shellcode开发环境. 如果你需要一个便携的工具去编写shellcode, shellen会是一个好帮手. 当然它也可以简单用作一个汇编/反汇编工具.

shellen使用keystonecapstone提供操作, 目前shellen仅支持python3, 也许在未来会作改变.

你可以使用pip3安装shellen稳定版本

或者如果你已经装有所有依赖的包(详情见Requirements), 可以直接使用以下命令安装

如果你在安装keystone-engine时出现问题, 你可以通过手动编译的方式进行安装(参考keystone仓库COMPILE.md文件进行编译)

安装完shellen以及所有依赖包, 你只需要在终端里敲如下命令, 即可运行shellen

工具有内置help命令, 几乎可以解释你所遇到的一切问题

shellen初始是因汇编/反汇编而创建的项目, 所以使用该工具有两种模式, 分别为asmdsm. 当然, 还有其他一些比如说系统调用表, 通用shellcode等功能.

如果你在使用时发现有问题或bug, 欢迎提交关于该问题的issue. 同样, 如果你认为shellen应该添加的不错的功能, 也欢迎提交issue, 我会尽力去添加这些功能.

shellen有实用的命令提示符, 会显示当前的模式, 操作系统类型(用于系统调用表), 并且可以选择相应的架构, 就像下面这样

你可以像终端那样编辑输入, 同样shellen也有输入过命令的历史记录(按上箭头键即可查看). 命令提示符里的LLinux的缩写. 以下列出了所有支持的操作系统名称:

如果你想要改变操作系统类型, 只需要输入setos [linux/windows/macos]

如果要修改当前的模式, 在命令行中输入asmdsm

对指令进行汇编时, 使用分号进行分割, 像下面这样

shellen也会告知你汇编字节是否存在\x00

操作跟汇编时差不多, 输入要反汇编的字节然后可以查看结果

asmdsm模式支持的架构会有差异. 要查看当前模式支持的架构, 输入以下命令

如果你要修改当前架构, 使用setarch命令:

显然在编写shellcode时会需要系统调用, 因此shellen可以为你提供帮助. 只需要输入sys和系统调用名称, shellen就可以展示出你可能需要的系统调用列表.

当然你查找的内容不同, 打印出的系统调用表也会有所变化. 搜索到的系统调用表取决于你所选择的架构和操作系统. 在这个示例中它是x86_32Linux.

shellen可以根据你的关键字展示给你一个通用shellcode的清单. 使用示例可以在之后的展示图部分看到. 它使用了shell-storm.org提供的API(谢谢该站长!), 你可以像下面这样使用该功能

事实上, 参数count并不是必需的

之前有说会有一些操作系统, 但目前只支持Linux. 如果你想要添加Windows或MacOS的功能, 可以提交issue, 我将会添加对该功能的支持.

只是一些使用过程的展示图


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2018-2-27 21:07 被Vancir编辑 ,原因:
收藏
免费 1
支持
分享
最新回复 (1)
雪    币: 54
活跃值: (122)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
mark
2018-2-28 04:38
0
游客
登录 | 注册 方可回帖
返回
//