2014-01-01から1年間の記事一覧

jpegとかをpdfに変換したり、まとめたりできるim2pdfつくった。

背景 資料をスキャンしたときに、出力形式をpdfにファイル名をtest.pdfにしてもtest.pdf.jpgで出てきてつらかったので作った。スキャンむずかしい... im2pdfとは jpegとかのimageをpdfに変換するコマンドラインツール。複数のファイルをpdfにまとめたりもで…

メールサーバー立てて、メールアドレスを偽装してみた。

CentOS7でPostfixを使ってSMTPサーバー立ててみて、メールアドレスの偽装とか簡単にできるなあと思った。 Postfixの設定方法 /etc/postfix/main.cfでmydomainにメールサーバーのホスト名(@以下)を、myhostnameに自ドメインのドメイン名(@以前)を、ネットワー…

SECCON CTF 2014 online 予選(冬) writeup

CTF

チームで参加した。97位だった。全然解けなくてつらぽよだったし修行したい。 Get the key httpが散見されるので、export objectでファイルを取り出して開くと以下のようなhtmlがあった。これを見て、http://133.242.224.21:6809/nw100/key.htmlにアクセスし…

mixiのScrap challenge行ってきた

11月16日に行われたmixiのScrap challengeに行ってきました。Scrap Challenge 2014 | 株式会社ミクシィ 学生向けエンジニアイベント 倒壊で有名なヒカリエ。軽く感想とかやったこととか書く。 午前 午前中は、過去にmixiであった事案に絡めて軽くwebセキュリ…

ミニキャンプ in 北海道 行ってきた!!

11月1日、2日に行われたミニキャンプ in 北海道に行ってきました。 http://www.security-camp.org/minicamp/hokkaido2014.html メモリダンプやディスクダンプを読むというとても内容の濃い講義で、いい刺激となったので、もっと精進しないとなあという感じで…

vmを移したらwindowsがキーボードを誤認識した件

JPキーボードなPCに載ったwindows XPのVMをUSキーボードなPCに載せかえると、XPのコントロールパネルではUSキーボードと認識しているのに、JPキーボードと認識しているということになり悩まされていたが、レジストリをいじることで解決できた。 HKEY_LOCAL_M…

macのaviraでの例外ディレクトリの設定方法

mac版のaviraでは残念なことに例外ディレクトリをGUIからは設定できない。設定ファイルをいじってaviraを再起動することで対処できた。 1 設定ファイルを書き換える /Applications/Avira.app/Contents/config内のavguard.confとavscan.confに以下のように例…

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 はオブジェクトのプロ…