PyOpenCLで手軽にOpenCLを組む

OpenCLのコードを書こうとすると、ホストコードとカーネルコードの両方を書いてコンパイルして、となかなか大変だったりする。もともとカーネルコードは実行時にコンパイルできる仕様なので、スクリプト言語をとても相性が良いのではないかと思う。それを実…

新年度

「0と1しか興味ない人のためのマルウェア分析会」のレポートを書きますと言ってから、もう二ヶ月あまりが経ってしまって、だいぶ時期を逃した感があるのでなかったことにして、またOpenCLのポストをいくつか書きたいと思う。 そこで、OpenCLの環境を整えるに…

あけましておめでとうございました

MacBook Air 11インチ欲しい!↑主にこれのために更新したようなものというw さて、一年以上もほったらかしのこのブログを再開せねば。 最近はネトゲと仕事しかやってない。それは嘘、主にネトゲ。 とりあえず、昨年末に参加した「0と1しか興味ない人のため…

Windows Vistaにオフラインでパッチをあてる

どうしてもオンラインにできないVistaマシンに、セキュリティパッチを当てなければならなくなったので方法を調べてみた。もちろん毎回手でパッチをダウンロードしてきてもできるが、本当に必要なパッチがどれなのかハッキリしないし、手間を省きたい。 まず…

VMware FusionでChrome OS試してみた

gdgtというサイトでChrome OSのディスクイメージを配っていたので、VMware Fusionで試してみた。ディスクイメージしかないので、仮想マシンを作ってディスクだけダウンロードしてきたものを使うことになる。 Engadget - Google Chrome OS 開発版 ダウンロー…

デフォルト引数で失敗した

2009-10-19 追記 コメントで指摘してもらっているようにデフォルト引数ではなくて、キーワード引数の問題だった。 よく分からないものを無理して使った上に、ブログに間違いを載せるとか、恥の上塗りでしかなかった。 最近は特に勉強もせず、ネトゲやったり…

リバースエンジニアリングチャレンジ2009の結果

今年の成績は、こんな感じ。 (一問目は5秒ではなく5分。二問目も同様) 設問 経過時間 順位 一問目 00:05 三位 二問目 00:53 八位 三問目 未クリア - 四問目 未クリア - 情けない話ですが、三問目の途中で時間切れ。 いや、心が折れたというべきか。以下…

リバースエンジニアリングチャレンジ過去問 2008 Level2

Level2の前に、Level1を解くのに使ったPythonスクリプトを公開しておく。 模範解答のほうはC言語だけど、ほとんど同じ。 # Level1 encryptedDataList = [0xB7, 0x9A, 0x93, 0x93, 0x90, 0xDF, 0xA8, 0x90, 0x8D, 0x93, 0x9B, 0xDE] decryptedString = '' for…

リバースエンジニアリングチャレンジ過去問 2008 Level1

今年もリバースエンジニアリングチャレンジに挑戦しようと思う。 去年は二問目でハマってしまってやめちゃったので、過去問とか解いて準備しよう。 何気に一問目だけならランキング載ってるんだけどなぁ。

Grand Central Dispatchが面白そうだったのでやってみた

Google Code Jam 2009の予選は、なぜか土曜日だと勘違いしていて、実際はもろに仕事中だったので参加できなかった、という言い訳。 さて、我が家でも発売日からSnow Leopardが導入された。 Snow LeopardといえばOpenCLが気になるところだけど、このMacBookに…

Google Code Jam 2009に登録してみた

C++

60時間ぐらいでモンハン3にも満足して、オンラインの無料期間も終わったので少しクールダウン。 誰かに誘われるまでは、オフでも進めよう。 さて、アルゴリズムは門外漢なのだけれど、Code Jam 2009に登録してしまった。 C++の勉強になればいいなということ…

OpenCLプログラミングセミナー行ってきた

朝10時から16時30分までみっちりセミナー受けてきた。 OpenCLプログラミングセミナー 以下、気が付いたことをまとめ。 背景 クロックアップ競争が限界に達した 演算コアを複数搭載することで計算量を増やす 現在、汎用CPUは4コア程度でしかないが、GP…

ctypesで関数ポインタを扱う

ctypesを使うとDLLが呼び出せることを前に書いた。 こんな感じで。 from ctypes import * user32 = windll.user32 user32.MessageBoxW(0, u'Python ctypes test', 0, 0) ctypesの便利さはこんなものじゃない。 Pythonの関数を関数ポインタのように扱って、ca…

Live-Androidを試す

Engadgetに面白い記事が載っていたので、さっそく試す。 Engadget - x86対応のAndroid LiveCD/LiveUSB v0.2 リリース 元がLinuxとJavaなんだから不思議はないが、実際に動くとまた感動がある。 VMware Fusionで動かしてみた。 起動時のロゴ。 ロゴ2。 なぜ…

ctypesの三つのロード方法

ctypesではDLLのロード方法が三つある。 cdll、windll、oledllの三つだが、その違いはcallされた時のスタックの扱いと、戻り値だ。 ややっこしいのでまとめてみる。 cdllで呼び出すべき関数 cdecl呼び出し規約に従う intを返す windllで呼び出すべき関数 std…

ctypesを使ってみる

ctypesを使うとPythonからDLLや、Shared libraryを呼び出すことが出来る。 ctypes_test.py from ctypes import * msvcrt = cdll.msvcrt message = "Python ctypes test\n" msvcrt.printf(message) ポインタや構造体、ユニオンもちゃんと定義できる。 以下は…

複数のパッケージ管理ツールを使うと紛らわしい

会社ではCentOSのyum、自宅ではUbuntuのaptとMacのMacPorts。 三つも併用していると、こんがらがってくるのでよく使うコマンドをまとめてみる。 MacPorts yum apt 全てのパッケージから検索 port search hoge yum search hoge apt-cache search hoge インス…

Very easyをやってみる

Crackmes.deに登録されているcrackmeの難易度は、 1 - Very easy, for newbies 2 - Needs a little brain (or luck) 3 - Getting harder 4 - Needs special knowledge 5 - Professional problem to solve 6 - Hard, for very professionals only 7 - Very ha…

Crackmes.deに登録する

知人に教えてもらってからアカウントだけ作ってずっと放置してあったCrackmes.deを、今更ながら手を付けてみる。まずCrackmeとは、リバースエンジニアリングの練習ために用意されたプログラム。 一般のソフトウェアはライセンスなどの縛りがあるために、逆ア…

ほったらかしだったHatenaのアカウントを活用してみる

何か成果物があったら公開できるようにブログを用意しようと思う。 文体は「た・だ」体で。 今までWEBサービスはGoogleに全部お任せしていたが、BloggerではTrackbackも外部のサービスに頼らないと出来ないし、Google App Engineに新しく作るのはコストがか…