とは言っても技術的に何か特殊なことをしているとかいうわけではなくて,単純にPEローダーを頑張って実装したみたいな話. 作ったもの github.com Unicorn QEMUのラッパみたいなもので,CPUエミュレータをフレームワークとして手軽に扱えるUnicornというライブラリがある. つい先月v1.0がリリースされて,Go, Python, .NET, Javaの他にMSVC, VB6, Ruby, Haskellのバインディングが追加された. www.unicorn-engine.org 他に特筆すべき点としては,GDTR, IDTR, LDTRあたりのサポートが追加されて適切にセグメントレジスタを設定できるようになった(!)ことや,コンテキスト周りのサポートが入ったことが挙げられる.前者の方が結構重要で,WindowsではFSレジスタがTIBのアドレスを指しているのでマルウェアだ