Skip to content

Instantly share code, notes, and snippets.

@akiym
akiym / 000.md
Last active May 19, 2024 05:53
TSG LIVE! 12 CTF writeup

wolf

WOLF RPGエディターで作られたゲーム。起動するとゲームが始まって、配置されている宝箱に触るとflag?と聞いてくる。 Data/MapData/SampleMapA.mpsの中にflag?という文字列があり、おそらくここがflagチェック処理が含まれているバイナリであるがどういったものかは不明。{}QWERTYUIOPASDFGHJKLZXCVBNM_TKTNT}RRUAPRHDSH{SXMREISUAH}RE}PUYPUQYDBQTLKXWCJXTYの文字列が見えるが、適当にxorしてもflagにはならないのでguessは諦める。

https://silversecond.com/WolfRPGEditor/ のエディタでそのまま開けるようだったので処理を読む。\v[0]のような文章を追加するとV0の変数を表示できるのでデバッグが楽。

image

あとは1文字ずつブルートフォースして求めた。

@akiym
akiym / 000.md
Created December 30, 2024 10:45
AlpacaHack Round 8 (Rev) writeup

masking tape

デコンパイル結果を持ってきてブルートフォース。

enc1 = [0x08, 0x23, 0x03, 0x03, 0x13, 0x03, 0x13, 0x03, 0x01, 0x23, 0x31, 0x13, 0x11, 0xC8, 0x03, 0xC8, 0x03, 0x13, 0x01, 0xC8, 0x13, 0x13, 0x03, 0x13, 0x13, 0x11, 0x13, 0x23, 0x00, 0x00, 0x00, 0x00]
enc2 = [0x02, 0x40, 0x80, 0x08, 0x08, 0x08, 0xC8, 0xC8, 0x80, 0x88, 0x08, 0x80, 0x88, 0x32, 0x08, 0x32, 0x80, 0x80, 0x80, 0x32, 0x08, 0x80, 0x08, 0x08, 0x48, 0x88, 0x80, 0xC8, 0x00]

flag = ''
for i in range(100):
@akiym
akiym / 000.md
Last active March 23, 2025 13:21
AlpacaHack Round 10 (Pwn) writeup - Oyster, Kangaroo, Takahashi

Oyster

なんとなくstrcmpしているのでnull文字を詰め込んでどうにかするものだろうと予想して、脳死でpasswordをすべてnull文字で送ってみたところそのままいけました。

from pwn import *

context.update(os='linux', arch='amd64', log_level='info')
p, u = pack, unpack
@akiym
akiym / 000.md
Last active March 31, 2025 04:54

debugalyzer

フラグを2文字取ってきて計算する処理があるので、gdbで動かして取ってきて脳死z3で解ける。

import gdb

e = lambda c: gdb.execute(c, to_string=True)
p = lambda x: gdb.parse_and_eval(x)