これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなど、複数の無料オンライン ワークステーションのいずれかを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド ragg2-cc です。
プログラム:
NAME
ragg2-cc - シェルコードをコンパイルするための CC フロントエンド
SYNOPSIS
ラグ2-cc [-a アーチ] [-b ビット] [-k kernel] [-o file] [-dscxvh]
DESCRIPTION
ragg2-cc は CC のフロントエンドです。 小さなバイナリ (1KB) またはシェルコードを作成するために使用されます。
C ソースからのバイナリまたは hexpairs。
使用されるコンパイラは、CC 環境によって構成されたものです。 これはでテストされています
gcc、llvm-gcc、clang。
sflib (shellforge4) インクルードを使用して、syscall 定義を取得します。
現時点では、linux/darwin x86-32/64 のみがサポートされています。 より多くの計画されたサポート
アーキテクチャ。
OPTIONS
-a アーチ セット アーキテクチャ x86、アーム
-b ビット 32 or 64
-k kernel Windows、Linux または OSX
-o file コンパイル結果を書き込む出力ファイル
-h ヘルプメッセージを表示する
-v バージョンを表示
-d アセンブラコードを表示
-s アセンブリ ファイルを生成する
-c コンパイル済みシェルコードを生成する
-x XNUMX 進数のバイトを表示
実施例
$ 猫 hi.c
int main(){
write (1, "Hello World\n", 12);
終了 (0);
}
$ rugg2-cc hi.c
こんにちは。
# 小さなバイナリにリンク。 これは 294 バイトです
$ wc -c < hi.c.bin
294
$ ./hi.c.bin
こんにちは世界
# コンパイルされたシェルコードにはゼロがあります
$ rugg2-cc -x hi.c
e90000000083ec0ce800000000588d882a000000b804000000606a0651
6a0150cd8083c41061b8010000006a0050cd8083c40883c40cc368656c
6c6f0a00
# キー 32 で xor エンコーダーを使用してバイパスします
$ragg2 -e xor -c key=32 -B `ragg2-cc -x hi.c`
6a3e596a205be8ffffffffc15e4883c60d301e48ffc6e2f9c920202020
a3cc2cc82020202078ada80a2020209824202020404a26714a2170eda0
a3e4304198212020204a2070eda0a3e428a3e42ce348454c4c4f2a20
onworks.net サービスを使用してオンラインで ragg2-cc を使用する