【お知らせ】プログラミング記事の投稿はQiitaに移行しました。

x64

全部入りbinutils

スタート低レイヤー#2でid:shinichiro_hさんに全部入りのbinutilsが作れるということを教えて頂きました。さっそく試してみました。MSYS(MinGW)用のバイナリを置いておきます。 binutils-2.23.2-msys-cross-all.tar.xz (14.6MB) /usr/localに展開するだけで…

F#でJIT

今までPythonやC#やNode.jsでJITを実装しました。 PythonでJIT (Windows 32bit) PythonでJIT (Mac OS X 64bit) C#でJIT Node.jsでJIT 今回はF#版です。C#版をほとんどそのまま焼き直しただけですが、それだけでは面白くないので、環境を判定して64bitにも対…

Node.jsでJIT

今までPythonやC#でJITを実装しました。 PythonでJIT (Windows 32bit) PythonでJIT (Mac OS X 64bit) C#でJIT 今回はNode.jsのrefモジュールとffiモジュールを使用します。npmでインストールする必要があります。残念ながらブラウザ上では動きません。

ELFの動的リンク(2)

前回はELFファイルの構造を示しながら、動的リンクに必要な処理を説明しました。 ELFの動的リンク(1) 今回はPythonで実装した簡易ローダを見ながら、実際の処理を追っていきます。 elf-simple.py 32bit Windows上でELFファイルを読み込み、動的リンクを解決…

PythonでJIT (Mac OS X 64bit)

先日、PythonでJITをやりましたが、32bitのWindowsに依存していました。 http://7shi.hateblo.jp/entry/2012/04/19/224650 64bitのMac OS Xに移植しました。mmapの戻り値や、munmapの引数に型を指定しているのがポイントです。指定しないとc_int(32bit)とし…

Mac OS X 64bitでシステムコール

64bitのMac OS Xでシステムコールを呼ぼうとしてハマりました。結論から言うと、システムコール番号に0x2000000を足す必要があります。詳細は以下を参照しました。 http://thexploit.com/secdev/mac-os-x-64-bit-assembly-system-calls/ exitシステムコール…