program

Spec Explorer 2010リリースと、モデルベーステストについて

Microsoft(DevLabs)からVisual Studio 2008/2010 beta2向けに、モデルベーステスト(Model-based testing*1)を行う Spec Explorer 2010 というツールがリリースされた。Spec Explorer モデルベーステストとは モデルベーステストとはその名前から想像できる…

天下一プログラマーコンテスト本選 その1 〜本選概要〜

8月1日、2日に 天下一プログラマーコンテスト 本選に参加してきました。本エントリはその1ということで本選の概要と、「プログラミングコンテストでどんな問題がよいのかの考察」についてちょっぴり書いてみます。 概要 主催:KLab株式会社 日時:8月1日、2…

GitHub にMASMパーサ(VC++リスティングファイル向け)を公開

今年の3月の休暇中にOCamlで簡単なMASM(x86, not x64)パーサもどきを書いたので、github に公開します。 masmfront - GitHub コード自体は、去年 flex/BsionC++を用いてC++で書いたMASMパーサをOCamlで書き直しました。自分が作りたい難読化ツールなどに流用…

逆アセンブルするウェブサービス

「ウェブから使える逆アセンブラがあってもいいよね」というのを合い言葉に作ったわけではなく、少し触ったら案外簡単にウェブから実行できてしまったというものですが、そんなプログラムを1年ちょっと前に作りました。実行すると、命令のジャンプ先アドレス…

Qt 4.5(Mac OS X) で 64ビットプログラムを作る方法

Qt 4.5 からMac OS X の64ビット(x86_64)アーキテクチャと、Cocoa がサポートされるようになりました。 Mac OS X はOSの機能を、Cocoa という Objective-C のフレームワークで提供しています。直接 Mac OS X の機能を呼ぶならば、Objective-C/C++ から Coc…

Qt 4.5 リリース

Qt 4.5がついにリリースされました! Qt Software、LGPL対応の「Qt 4.5」リリース、「Qt Creator」も新登場 | OSDN Magazine http://journal.mycom.co.jp/news/2009/03/04/035/index.html

音声チャットアプリ festivoice

先日 festivoice という音声チャットアプリケーションを公開しました。大学の先輩(frsyukiさん)、友達(yasuharu君)と一緒に作ったJava製のソフトウェアです。 使い方は簡単です。チャンネル一覧に、既に作成済のチャンネル(部屋)があればチャンネル名…

はじめてのペアプログラミング

昨日ペアプログラミングをid:viver(frsyuki)さんとやってみたので、それについて書いてみます。 MacBookにモニタとキーボードを接続し、ターミナル上のVimという環境でコーディングをしました。2人ともターミナルとVimを使った開発に慣れていることもあり、…

Qt4 Mac

Qt4のプログラミングが気になるのでMacBookにインストールしてみるテスト。どうせGPLだったらQt4に使ってもいいんじゃないか、という悪魔のささやきが。

BHJとか

Paperもあるし毎年開催してるから急がなくてもry、などと諭されてしまい(ry)。少しモチベーションが落ちたのでバイナリエディタ関連を少しやった後、また難読化へ。アセンブリ解析だけじゃぬるいから、Cパーサでも書くか?

難読化の続き

構文木作成までできました。意味解析(or中間コード生成)して、コード生成と難読化するのがこれからです。ここからが難読化の本番ですよ。単純な置換なら一晩でできそうですが、複数ソースコードまたいでグローバルにpublicな関数の呼び出し規約変更してみ…

Visual Studio 2008 Service Pack 1 日本語版リリース

ついにFeature Pack(MFCの強化パック)も含まれたVS 2008 SP1がリリースされましたよ。自分は先にISOイメージをダウンロードしておいて、つくばに戻ってからアップデートする予定です。 ディベロッパー製品開発統括部 Blog : Visual Studio 2008 Service Pac…

flexで検索するとAdobe Flexがヒットすることに憤りを感じつつ開発を進める

flex(lex) + bison(yacc)で字句解析器と構文解析器のソースコードを自動生成させようとGoogle先生にお世話になること数えきれず。というか元々数えていませんが、flexと検索するとAdobe Flexの方が最初に出てきて切なくなってきます。現在は、bisonのC++コー…

UIの実装とかバイナリデータの可視化どうしよう><

バイナリエディタ実装の、PieceTableクラスが腐ってる・・・のは置いておきまして、UI関連の設計を1ヶ月ほど保留にしています。ファイルフォーマットの構造体に従って、ファイルをグラフィカルに表示できるとcoolなんですが、具体的なアイディアが少ししかあ…

CppUnit

第2回 C++アプリケーションの効率的なテスト手法(CppUnit編) (1/4):連載 C++開発者のための単体テスト入門 - @IT この記事を見て、じわじわとバイナリエディタのドキュメント用のテストクラスを実装中。案外、テストのために実行させる処理数が多くて大…

お手軽逆アセンブラを作り

objdumpとRubyでお手軽に自分用の逆アセンブラ・解析ツールを作ろう!って思ったのですが、世の中そう思い通りに事が運ぶわけもなく、肝心の逆アセンブルおよび解析でどう情報を収集していこうかと手間取っているところです。実装にまだ時間もかかります。か…

気分転換にWBかな

Will氏に触発され、私も気分転換に、Wizard Bibleの記事でも書いてみようかと思ってみたり。ネタというと、objdumpをスクリプト言語から利用する汎用逆アセンブラの作成なんていかがでしょう。Windows PE、Linux ELF対応はもちろんで、何か変わった機能を実…

COM系の書籍が手に入らない

Essential COMとInside COMが手に入らないので、とりあえず復刊ドットコムでリクエストしてみました。他にも、Effective インサイドCOM・COMは探しても確実に購入できるところがなさそう(少なそう)だ。Effective COMは確か今年の初め、Amazonで最後の一冊…

PieceTable実装の真っ只中

ここ一週間ほど、バイナリエディタで使える状態ではなく、汎用性のあるC++向け「テンプレートコンテナクラス」としてのPieceTableを実装中です。相変わらず忙しい&時間を無駄しすぎているせいで、ちょっとずつしか進んでおりませんが(苦笑)。 今日は単体…

Boost::spirit

最近は言語処理の方にBoost::spiritを使って挑戦しています。セマンティックアクションでシンボルテーブルを作成していますが、パースの段階で定義済みのシンボル化チェックもしたいと思うとなかなか難しく・・・。 目的はコード生成なのですが、それに至る…