Skip to content

Instantly share code, notes, and snippets.

View st98's full-sized avatar

st98 st98

View GitHub Profile
@st98
st98 / applet-GetFonts.java
Last active August 29, 2015 14:09
getFonts, Flash で実装しているのを見て Java アプレットでもやってみたいなーと思った。
// applet/GetFonts.java
package applet;
import java.applet.Applet;
import java.awt.Font;
import java.awt.GraphicsEnvironment;
public class GetFonts extends Applet {
public String s = "getFonts";
public String getFonts() {
@st98
st98 / tkbctf4.md
Last active August 29, 2015 14:08
#tkbctf4 の write-up。 (移動しました -> https://st98.github.io/diary/posts/2014-11-03-tkbctf4.html)

#tkbctf4

チーム omakase として参加した。最終的に獲得できたポイントは 626 点でチーム順位は 13 位だった。
rand (javascript 200), args (javascript 200), gradius (binary 100), monochrome bar (steganography 100) の 4 問を解いた。
rand は 3 番目に正解したので 6 点、args は最初に正解したので 20 点のボーナスポイントがあった。

解けた問題

rand (javascript 200)

  • まずグローバルオブジェクトのプロパティを確認する。
Object.keys(this) // => ["print", "quit", "version", "arguments", "g"]
@st98
st98 / m.bat
Last active August 29, 2015 14:08
雑、grep でいける。
:: $ m \d+ -s ho12ge34
:: 12
:: 34
::
:: $ echo ho12ge34 | grep -o [0-9]\\+ -
:: 12
:: 34
::
@echo off
python -c "import re, sys;print('usage: m pattern file\n m pattern -s string' if '-h' in sys.argv or len(sys.argv) <= 2 else '\n'.join(re.findall(sys.argv[1],sys.argv[sys.argv.index('-s') + 1] if '-s' in sys.argv[2:] else open(sys.argv[2], 'r', encoding='utf-8').read())))" %*
@st98
st98 / freq.js
Last active August 29, 2015 14:06
freq.js
function freq(s) {
var r = {}, i, k, c;
for (i = 0; i < s.length; i++) {
c = s.charAt(i);
if (!(c in r)) {
r[c] = 0;
}
@st98
st98 / slice.c
Created September 19, 2014 09:20
#include <stdio.h>
int main(void) {
char s[101] = "hoge";
puts(s + 2); // => ge
return 0;
}
@st98
st98 / g.py
Last active August 29, 2015 14:06
getopt。
import getopt
import sys
def usage(filename):
print('usage: python {} [-h | --help]'.format(filename))
def main(filename, *argv):
opts, args = getopt.getopt(argv, 'h', 'help')
for opt, arg in opts:
window.addEventListener('load', function main() {
var plaintext, ciphertext, range;
function crypt(str, n) {
var i, c, result = '';
for (i = 0; i < str.length; i++) {
c = str.charCodeAt(i);
result += String.fromCharCode(
c >= 0x41 & c < 0x41 + 26 ? (c - 0x41 + n) % 26 + 0x41 :
@st98
st98 / shift.js
Last active August 29, 2015 14:06
Array#shift。
Object.defineProperty(Array.prototype, 'shift', {
value: function (n) {
return this.slice(n).concat(this.slice(0, n));
},
enumerable: false,
configurable: true,
writable: false
});
//-----
@st98
st98 / r.js
Last active August 29, 2015 14:06
hOGEhoGe, HOgEhoge, hOGEHoge…
'hogehoge'.replace(/./g, function (c) {
return c['to' + ['Lower', 'Upper'][Math.random() * 2 | 0] + 'Case']();
});
@st98
st98 / Array#has.js
Last active August 29, 2015 14:06
Array#has。
Object.defineProperty(Array.prototype, 'has', {
value: function (value) {
return this.indexOf(value) > -1;
},
enumerable: false,
configurable: true,
writable: false
});
Object.defineProperty(Array.prototype, 'contains',