CSAW CTF 2014 writeup

CTF

trivia Shameless plug 問題文: This is the name of the new USENIX workshop that featured papers on CTFs being used for education. ググった。answer: 忘れた pop pop 問題文: This x86 instruction is an alias for pop eip/rip 知ってた。answer: RE…

jQueryのajax()で返り値を得る方法

jQueryのAjax()で返り値がとれない!? こんなふうに書くと返り値はundefinedになってしまう。 function test(){ $.ajax({ type: 'GET', url: 'http://hoge.fuga' dataType: 'text', success: function(response){ return response; }, error: function(respon…

chrome extentionのpopupを別窓で表示する。

chrome extentionのpopupとはブラウザの右上のアイコンを押すと出てくるアレである。popupをwindow.open()で表示すると、新しいタブで大きいwindowで表示されてしまいpopupではなくなってしまうが、chrome.windows.createを使うことで、ブラウザのwindowとは…

PNG向けのLSB方式のsteganographyを書いた。

LSB方式とは LSBとはleast significant bitの略で、末尾のビットのことである。LSB方式のsteganographyとはLSBを書き換えることで、あまり見た目に影響させずにデータを隠すものである。 コード Python2、3両対応。RGBまたはRGBAなPNGにのみ対応。Pillowとい…

Pythonではrot13とかunicode_escapeをエンコーディングに指定できる

タイトルの通りでこんなコードが書ける。 # coding: rot13 cevag('Uryyb').rapbqr('rot13') #print('Uryyb').encode('rot13')と同じ # 出力結果は Hello # coding: unicode_escape \u0070\u0072\u0069\u006E\u0074\u0028\u0027\u0048\u0065\u006C\u006C\u006…

作ったPythonライブラリを任意のコマンド名で実行できるようにする

前、自作ライブラリをコマンドで使えるようにするときに知ったけど、完全に記憶から飛んでたのでメモ。たとえば、test.pyがあってそれをtestというコマンド名で実行したいときは、setup.pyでscriptsに指定してあげるといい。 from setuptools import setup i…

Python3ではexefile()がない

execfile()とはファイルに対して構文解釈を行う組み込み関数である。 Python3ではそのexefile()がない。execfile()は以下のように動作する。 >> execfile("test.py") # test.pyの中身は print 1+1 2 Python3ではexec()で代用する。 exec()は文字列に対し構文…

Pythonのsource distributionとeggとwheel

wheelとeggの違いが分からないので調べた。 それぞれの作り方 source distribution python setup.py sdist egg setup.pyにfrom distutils.core import setup ではなく from setuptools import setupと書かないと生成されない 。 python setup.py bdist_egg w…

某英語学習サイトのコピペ防止方法

某英語学習サイトのreading問題のページではコピペ対策がなされている。 それがどういうものか解説しようと思う。コピーしようと、本文を選択しctrl + Cすると、コピー禁止と書かれたalertが出る。 これはhtmlが以下のようになっていることが原因であった。 <body bgcolor="#8BB67B" oncopy="alert('コピー禁止');return false;"></body>…

Web Speech API で使える音声一覧。

Web Speech APIとは ブラウザにしゃべらせたり、音声認識させたりできるAPI。Chromeではバージョン33から対応している。 先日、公開したfavurlをしゃべらせるのに使用している。 これを使ってしゃべらせるのに利用可能な音声一覧が載ってるサイトが見つから…

JavaScriptでURI encodeする。

半年位前に書いて放置してた... URI encodeとは URI(URL)には使えない記号や文字を変換し使える形式にするというもの。 このURI encodeに使えそうなものとして、escape()、encodeURI()、encodeURIComponent()の3つの関数がある。 これらの関数を見ていく。 e…

favurlというTwitterのふぁぼビューワーをつくった。

favurlとは ふぁぼったツイートの中でURL付きのもののみを表示するChrome拡張。 URLをあとで見るという意味でふぁぼったツイートを見る時に便利。ほかのツイートをふぁぼっても、あとで見たいツイートが埋もれる心配がない。また、Chromeを起動した時にChrom…

indexOfを使う際は配列の要素に注意

2つの配列の差分を取るコードをindexOfを使って書いた。 function get_diff(older, newer){ function callback_filter(element, index, array){ return (this.indexOf(element) === -1); // 要素が含まれていなければtrue } return newer.filter(callback_fi…

JavaScriptのfor文がややこしい。

ややこしいので忘れたときのためにメモ。主に配列を走査するとき。 for inで配列の走査してはダメ Array.prototype.hoge = function() {}; for (var i in ['a', 'b', 'c']) { console.log(i); // 0, 1, 2, hoge が表示される } for in はオブジェクトのプロ…

Pythonにおける_(アンダーバー)

_(アンダーバー)から始まる変数はPythonでは不可視を意味し、意識しなくて良い(使われない)という意図を伝えるために使われる。関数とかクラスの頭に_を書いておくとhelp()を実行した際にスルーしてもらえる。のx, y = y, x項より引用。 def fib(n): x, y = …

githubからgistに飛ぶブックマークレット作った。

github眺めてると、この人のgistみたいなっていう時に、gistに行くボタンがなくて不便だったし作った。これでワンクリックでgistに行ける。これをブックマークバーに持ってくと使える。 goToGistただ単にリンクを貼るだけでは貼れなかったので、下のリンクの…

Processingで透過pngを作る。

createGraphicsは透過属性を持つのでそれを利用する。 PGraphics alpha; void setup() { size(400,400); alpha = createGraphics(400, 400, JAVA2D); } void draw() { image(alpha, 0,0); } void keyPressed() { alpha.save("alphatest.png"); println("alph…

自分の過去ツイートを取得してみたら数が合わなかったがツイ消しのせいだった。

タイトルのとおり。 3200件のツイートを取得出来るはずが、数件取得できなかった。 ツイ消しした分が取得できないのかなーと思い、ツイ消ししてから取得するとツイ消しした分だけ所得件数が減ったのでそうだと思われる。ツイ消ししても、ツイートがあったこ…

IDを用いたeventの設定の仕方。

wxPythonでIDを使ってeventの設定をしてみた。eventと、eventを設定する部品のIDを一緒にする。 # coding: UTF-8 import wx ID_EVENT = 101 class MyFrame(wx.Frame): def __init__(self, parent, ID, title): wx.Frame.__init__(self, parent, ID, title, s…

ついに美咲ちゃん買ったった!!

解析魔法少女美咲ちゃん マジカル・オープン!っていうプログラム解析入門的な本がずっと欲しかったんだけど、割りとレアな本みたいで、この本を知った当初は定価2730円(税込み)なのにAmazonで中古5000円位で売ってて買う気がしなかった。解析魔法少女 美咲ち…

wx.PySimpleApp() と wx.App()

wx.App()とwx.PySimpleApp()の違いを調べていると、 wxPython Style Guide - wxPyWikiを見つけた。 これの6項目を見ると、 6. wx.App() now has the same built in functionality as wx.PySimpleApp(),so there is no need for the latter. Note: The above …

list以外でも内包表記できる。

Python2では2.7から、3では3.1からできる。 もともとは3.1での新機能だったが、2.7にバックインポートされた。 setで内包表記 setだから重複要素が省ける。 >>> s = {v for v in 'ABCDABCD' if v not in 'CB'} >>> print s set(['A', 'D']) #list内包表記だ…

wxPythonでHTMLを出力する。

wxPythonでHTMLをプラウザで見るのと同じように出力する。 wx.html.HtmlWindowを使うことで可能となる。 # coding: UTF-8 import wx import wx.html class MyHtmlFrame(wx.Frame): def __init__(self, parent, title): wx.Frame.__init__(self, parent, -1, …

Ellipsisを知った。

Ellipsis(...)とは高次元配列のスライスで使われる特殊な値である。numpyでよく使われるようだ。公式ドキュメントでは 拡張スライス文と同時に用いられる特殊な値です。 と書かれているが、ちょっと不親切だと思う。Python2ではEllipsisでEllipsisを返す。 >…

double colonを使ったスライスを知った。

double colonを使ったスライスを知ったのでメモ。Pythonのスライスはa[start:end:step]のように書くことができる。 a[::3]だと3つごとに要素を返す。 コード例 15 Extended Slicesより引用。 >>> L = range(10) >>> L[::2] [0, 2, 4, 6, 8] >>> L[::-1] [9, …

Processingで動くgifアニメのtwitter アイコンを作った。

tumblrをながめてるとgif画像を作りたくなったので、Processingで動くgifのアイコンをつくった。ググってみるとgif画像をつくるにはgifAnimationという外部ライブラリを使うといいらしい。これのインストールに多少手間取る。[Processing][仕様]外部ライブラ…

windowsのレジストリのSIDが複数表示される。

ユーザーが1人しかいないwindows XP, Vista 32bit, 7 64bit上でレジストリのHKEY_USERSのSIDが複数表示された。 Microsoft supportのによると、Windows NT 4.0 の仕様によるもので、レジストリ エディタ (Regedt32.exe) を起動すると、.default および現在ロ…

天気予報取得するPythonスクリプト書いた。

どっから情報とるの? Weather Hacksという天気情報をJSON形式で配布しているサービスを使った。 コードはブログに載せるにはちょっと長いのでgithubにあげた。→https://github.com/tkmru/weatherhacks 地域情報を取るコード Weather Hacksを使うにあたり必…