AlpacaHack Logo
Sign InSign Up
Daily AlpacaHack

毎日、CTFの問題を腕試しできる常設チャレンジ

Daily AlpacaHack とは

初心者にも楽しんでもらえるようなシンプルな問題・教育的問題を定期的に出題します。

いつでも参加可能

問題ごとに定められた出題期間内に解くとリーダーボードに反映されます。

競技ではありません

友人やAIと話し合いながら解いてもOKです(アカウント共有は禁止です)。

解法共有のルール

出題期間の終了後に解法の公開・閲覧ができます。

Solves 統計

0

/7 問

まだ正解した問題がありません。

プレイヤー統計を閲覧するには Sign In してください

今日のチャレンジ
hiikunzhiikunz
decreasing
Misc
Hard
11 solves
提出(最新3件)
panya
panya

SOLVED!

Oct 14, 6:27 PM

kurgm

SOLVED!

Oct 14, 4:56 PM

リーダーボード

最初の問題に挑戦しよう

CTF は初めてですか? まずは Daily AlpacaHack で最初に出題された問題を解いてみましょう

問題を見る
admin
AlpacaHack 2100
Misc
Welcome🔰
2,284 solves
これから公開予定の問題は 「」「」「」 を先出ししています。
前の月

2026年10月

次の月
解答済み
未解答
公開予定
月
火
水
木
金
土
日
 
k0080k0080
what is my pointer 2
Pwn
Hard
46 solves
1
admin
Baby Alpaca
Misc
Welcome🔰
137 solves
2
tan90909090tan90909090
C# File-based app
Rev
Easy🔰
72 solves
3-4
2501
Shared Prime
Crypto
Medium
75 solves
5-8
tan90909090tan90909090
fsbase modification
Pwn
Hard
58 solves
9-12
2501
Almost Shared Prime
Crypto
Hard
40 solves
 
2501
Almost Shared Prime
Crypto
Hard
40 solves
13-14
tan90909090tan90909090
cowsay jail
Misc
Medium
52 solves
15-18
hiikunzhiikunz
decreasing
Misc
Hard
11 solves
19
準備中
20
準備中
21
準備中
22
準備中
23
準備中
24
準備中
25
準備中
26
準備中
27
準備中
28
準備中
29
準備中
30
準備中
31
準備中
1
準備中

もっと高難易度の問題を解きたい方へ

B-SIDE を見る

Writeups

Writeup for cowsay jail

lumma

ja
cowsay jail

2 hours ago

tadanobutubutu

Writeup for fsbase modification

Rows:

Let's analyze system calls

Topic: System CallReleased: Aug 27, 2026

58 solves
Rev
Medium3.0

by

tan90909090

tan90909090

x86-64版Linuxのシステムコールを解析してみましょう!

初心者向けヒント1: システムコールの呼び出し規約とgccの拡張インラインアセンブラ
  • x86-64版Linuxにおけるシステムコールの呼び出し規約は、 https://gitlab.com/x86-psABIs/x86-64-ABI からダウンロードできる System V Application Binary Interface AMD64 Architecture Processor Supplement 資料中の A.2.1 Calling Conventions や、 https://man7.org/linux/man-pages/man2/syscall.2.html に記述があります。
    • システムコールを実行するには、システムコール番号を rax レジスタに、最大6個までの引数を順に rdi, rsi, rdx, r10, r8, r9 レジスタに格納してから syscall 命令を実行します。
    • システムコール実行結果は rax レジスタに格納されます。
  • gccの拡張インラインアセンブラ構文は、 https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html や https://gcc.gnu.org/onlinedocs/gcc/Machine-Constraints.html に記述があります。
    • 本問題で使用している1つ目の syscall 命令用の拡張インラインアセンブラでは、次のことを指定しています。
      • OutputOperands パラメーターは未指定です。
      • InputOperands パラメーターで、拡張インラインアセンブラを実行する前に、rax レジスタに 318 を、rdi レジスタに &result_1 を、rsi レジスタに sizeof(result_1) を、rdx レジスタに 0 を設定しています。
      • Clobbers パラメーターで、拡張インラインアセンブラの実行中に rcx レジスタと r11 レジスタ、メモリが変更されることを指定しています。
        • なお、syscall 命令そのものが rcx レジスタと r11 レジスタを変更します。
    • 本問題で使用している2つ目の syscall 命令用の拡張インラインアセンブラでは、次のことを指定しています。
      • OutputOperands パラメーターで、拡張インラインアセンブラの実行後に、rax レジスタの内容をresult_2 へ設定しています。
      • InputOperands パラメーターで、拡張インラインアセンブラを実行する前に、rax レジスタに 102 を設定しています。
      • Clobbers パラメーターで、拡張インラインアセンブラの実行中に rcx レジスタと r11 レジスタが変更されることを指定しています。
初心者向けヒント2: 問題へのアプローチ
  • 本問題を解くアプローチはいくつかあります。
  • 1つの方法は、x86-64版Linuxのシステムコール番号を調査して、対応するシステムコールの引数や戻り値を確認する方法です。
  • 別の方法は、逆コンパイラを使用する方法です。
    • 逆コンパイラによって、システムコール呼び出しを最初から完璧に逆コンパイルできるものもあれば、初期状態では逆コンパイル結果が貧弱なものの追加操作で完璧に逆コンパイルできるものもあります。
lets-analyze-system-calls.tar.gz

フラグを提出するには サインイン してください。

descriptionsolveswriteups