asmshell
所属分类:collect
开发工具:GO
文件大小:0KB
下载次数:0
上传日期:2019-03-17 10:59:49
上 传 者:
sh-1993
说明: 多拱形命令行汇编程序外壳,
(Multi-arch command line assembler shell,)
文件列表:
LICENSE (1052, 2019-03-17)
Makefile (4774, 2019-03-17)
TODO.txt (253, 2019-03-17)
go/ (0, 2019-03-17)
go/arch/ (0, 2019-03-17)
go/arch/arm.go (2497, 2019-03-17)
go/arch/arm64.go (3090, 2019-03-17)
go/arch/armThumb.go (2492, 2019-03-17)
go/arch/common.go (8868, 2019-03-17)
go/arch/i8086.go (1640, 2019-03-17)
go/arch/m68k.go (1545, 2019-03-17)
go/arch/mips.go (2882, 2019-03-17)
go/arch/mips64.go (2994, 2019-03-17)
go/arch/powerpc.go (700, 2019-03-17)
go/arch/powerpc64.go (759, 2019-03-17)
go/arch/run_test.go (10044, 2019-03-17)
go/arch/sparc.go (2816, 2019-03-17)
go/arch/sparc64.go (2687, 2019-03-17)
go/arch/systemZ.go (533, 2019-03-17)
go/arch/x64.go (2063, 2019-03-17)
go/arch/x86.go (1706, 2019-03-17)
go/const.go (258, 2019-03-17)
go/examples/ (0, 2019-03-17)
go/examples/sample.go (1608, 2019-03-17)
go/help.go (1932, 2019-03-17)
go/main.go (1678, 2019-03-17)
go/shell.go (5862, 2019-03-17)
go/utils/ (0, 2019-03-17)
go/utils/pallet.go (1779, 2019-03-17)
html/ (0, 2019-03-17)
html/index.html (2263, 2019-03-17)
images/ (0, 2019-03-17)
images/diff.jpg (46125, 2019-03-17)
images/go_x64.jpg (155795, 2019-03-17)
images/go_x86.jpg (165485, 2019-03-17)
images/python_x64.jpg (131212, 2019-03-17)
images/python_x86.jpg (153524, 2019-03-17)
Assembler Shell(asmshell)
==============
Assembler([Keystone-Engine](http://www.keystone-engine.org/)) + Emulator([Unicorn-Engine](http://www.unicorn-engine.org/)) + interactive cli library([ishell](https://github.com/abiosoft/ishell)) = Text-based Assembler Emulator
Assembler Shell(asmshell) is a Text-based assembler emulator.
You can easily check the execution result of the assembler.
Enjoy! :)
## Feature
Multi-architecture support(depends on unicorn/keystone-engine)
Assemble & emulation : i8086, x86, x64, arm-thumb(be), arm(be), arm64, mips(be), mips64(be), sparc, sparc64
Assemble only : powerpc, powerpc64(le), sparcle, systemZ
Future support : arm64be, m68k
Useful functions
Shell like commands : fragments, run linux commands...etc
Handled like a shell : Ctrl-P/Ctrl-N, Ctrl-A/Ctrl-E, Ctrl-H/Ctr-D...etc
Cross Platform(depends on go) : *NIX, OSX, Windows
APIs : see go/examples
## Install
Go language, unicorn-engine and keystone-engine are necessary, but the installation process is automated with Makefile.
### Linux/Mac
1. Install [CMake](https://cmake.org/download/)/Python(2.X,virtualenv)/make/Compiler(gcc,g++)/Git
2. Build asmshell
`$ virtualenv2 ENV && . ENV/bin/activate`
`$ git clone https://github.com/poppycompass/asmshell`
`$ cd asmshell && make`
`$ ./asmshell.exe -h`
If you have already installed go and unicorn, keystone and capstone, run this.
$ make symlink deps asmshell
### Windows
TODO
## Usage
### Help
$ ./asmshell.exe [-h/--help]
### x86
$ ./asmshell.exe
![x86 mode](https://github.com/poppycompass/asmshell/blob/master/images/go_x86.jpg)
### x64
$ ./asmshell.exe -a x64
![x64 mode](https://github.com/poppycompass/asmshell/blob/master/images/go_x64.jpg)
## Tutorial
### Fragment Commands(Example: Symbol, Read file)
You can register mnemonic fragments.
$ ./asmshell.exe
(x86)> fragment symbol # register from input
in> mov ecx, 0x20
... l1:
... inc eax
... dec ecx
... jnz l1; # ';' is end the register
'symbol` is registered
(x86)> fragment show # show registered fragments. If you want show specify fragments, run this -> 'fragment show
...'
'symbol'
l1:
inc eax
dec ecx
jnz l1
(x86)> fragment run symbol
Read from file.
$ cat xor.txt
xor ax, cx
$ ./asmshell.exe
(x86)> f encrypt encrypt.txt # register from file. 'f' is alias of fragment
(x86)> f s encrypt # 'f s' is alias of 'fragment show'
(x86)> f r encrypt # fragment run encrypt
If you want to register binary code, change filename to ".bin".(".bin" suffix is very important)
(x86)> f test code.bin # disassemble code.bin and register
(x86)> f s test
### Change Architecture
$ ./asmshell.exe
(x86)> set # show available architecture
Usage: set
Supported: i8086, x86, x64, arm-thumb(be), arm(be), arm64, mips(be), mips64(be), sparc(le), sparc64, [ppc|powerpc], [ppc64(le)|powerpc64(le)], [sysz|systemz|systemZ]
(x86)> set arm
(arm)>
### Run shell command(now linux & mac only)
$ ./asmshell.exe
(x86)> !ls -lga
## Available Shell Commands
help : display help
fragment [run/show/delete] : register/run/show/delete fragment
! : run shell commands
set : set architecture and mode
exit/quit/q : exit the program
## Contribution
I am not an architectual expert. Therefore, I think there are many bugs and strangeness in this program.
If you want to contribute, please pick up something from our [Github issues](https://github.com/poppycompass/asmshell/issues).
We also maintain a list of more challenged problems in a [TODO.txt](https://github.com/poppycompass/asmshell/blob/master/TODO.txt).
## License
The software in this repository is covered by [the MIT license](LICENSE).
## Author
poppycompass (t0g0v31dk at gmail dot com)
近期下载者:
相关文件:
收藏者: