AlpacaHack Logo
Sign InSign Up
Daily AlpacaHack

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

Daily AlpacaHack とは

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

いつでも参加可能

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

競技ではありません

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

解法共有のルール

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

Solves 統計

0

/11

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

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

今日のチャレンジ
2501
The 3rd
Crypto
Hard
3 solves
提出(最新3件)
sikoderu

SOLVED!

Sep 21, 3:17 PM

リーダーボード

最初の問題に挑戦しよう

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

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

2026年9月

次の月
解答済み
未解答
公開予定
 
tchentchen
Springing
Web
Medium
74 solves
1
admin
QUIZ ALPACASHOCK
Misc
Welcome🔰
124 solves
2
hiikunzhiikunz
base 16-32-64
Misc
Easy🔰
101 solves
3-4
tan90909090tan90909090
Let's Shut Down Linux
Misc
Medium
63 solves
5
baumroll1234
6-8
minaminaominaminao
Bitflip RSA
Crypto
Hard
56 solves
 
minaminaominaminao
Bitflip RSA
Crypto
Hard
56 solves
9-11
minaminaominaminao
\^o^/
Misc
Hard
43 solves
12-13
tan90909090tan90909090
sin function vs. fsin instruction
Rev
Misc
Medium
55 solves
14-15
tan90909090tan90909090
integer division
Misc
Medium
69 solves
16-18
edwowmathedwowmath
neighboRhood_diStAnce
Crypto
Hard
40 solves
19-21
hiikunzhiikunz
nested eval
Misc
Hard
39 solves
 
hiikunzhiikunz
nested eval
Misc
Hard
39 solves
22-24
2501
The 3rd
Crypto
Hard
3 solves
25
準備中
26
準備中
27
準備中
28
準備中
29
準備中
30
準備中
1
準備中
2
準備中
3
準備中
4
準備中

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

B-SIDE を見る

Writeups

shiragi

Writeup for nested eval

shiragi

ja
nested eval

16 minutes ago

gattoartz

Writeup for Alpaca Bank

gattoartz

Writeup for Read Assembly

gattoartz

Writeup for hit-and-miss

gattoartz

Writeup for simpleoverflow

curetwinkle

Writeup for simple ROP(アセンブリ解説多め)

ja

2026/09/15 03:55

Rows:

Let's analyze system calls

Topic: System CallReleased: Aug 27, 2026

55 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.htmlhttps://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