obfuscation
今年の3月の休暇中にOCamlで簡単なMASM(x86, not x64)パーサもどきを書いたので、github に公開します。 masmfront - GitHub コード自体は、去年 flex/BsionC++を用いてC++で書いたMASMパーサをOCamlで書き直しました。自分が作りたい難読化ツールなどに流用…
難読化ツールのソースコードを公開します。コンパイル済バイナリは含まれていません。ライセンスは自動化ツールと難読化エンジンの両方ともGPLv2となっています。 READMEにも書いていますが、実験・研究目的以外には役に立たないと思いますので、ご注意を。V…
平成20年度 情報特別演習レポート VC++向け難読化ツールの開発 難読化ツール開発について書いた大学のレポートを公開します。先日のAVTokyoのスライド(id:obfuscation:20081103#p1)の文章バージョンと思っていただければわかりやすいと思います。関数呼び…
いやっほー、難読化ツール開発について書いたレポート提出しました。2段組で表紙含め5ページ。もう一度校正してからアップロードします。
Slideshareにアップロードしたので、貼っておきますね。構文木やコントロールグラフ云々といった高度なところまではまだ実装できておらず、このときの資料でも詳しく説明できていないので、そういう点ではあまり期待しないでくださいね(汗 英語版の資料作成…
RECON 2008 Speakers RECON 2008で発表されたEric D. Laspe氏とJason Raber氏による「The Deobfuscator」(IDA Pro向け難読化の復号ツールの紹介)が興味深いです(Blackhat USA 2008でも発表されているようですが)。概要としては、難読化の復号ツール(Deo…
『Engineering a Compiler』『A Retargetable C Compiler: Design and Implementation』という言語処理系の洋書を大学図書館で借りてきました。タイガーブックと呼ばれる『Modern Compiler Implementation in C』は中央図書館に置いてなかったので、まずはこ…
耐タンパー(アンチクラック, アンチリバースエンジニアリング)と難読化を流行らせるにはどうすればいいか、一考してみました。とりあえずリバースエンジニアリングとか、プロテクト開発、難読化の何が熱いのか少し書きつづってみます。 果てのない戦いであ…
「難読化技術」について、広く浅く、できれば簡単に説明したいと思います。 難読化とは 難読化(obfuscation)とは、プログラムやHTMLなどのコード(ソースコード・アセンブリコードなど)を読みづらくする技術です。読みづらくとは、読んで字のごとく人間が…
実は釣りです。じゃなくて後で書く。
難読化ツールでやってしまうと面白そうな機能をメモってみる。 VM化 今流行のやつですね。 構造化例外ハンドラの追加 バッファオーバーフローの検出 スタックメモリの意図しない書き込みとかね! 単なる妄想でした。というか“難読化”だけだとプロテクトとし…
情報特別演習という講義で作っているので、進捗状況の中間報告書を先日書きました。本来はテーマ報告&進捗報告なので、1ページでよかったみたいなんですが、気付いたら2ページに。昨日内容についてアドバイスを指導教官から頂いたので、修正してから来週提…
Paperもあるし毎年開催してるから急がなくてもry、などと諭されてしまい(ry)。少しモチベーションが落ちたのでバイナリエディタ関連を少しやった後、また難読化へ。アセンブリ解析だけじゃぬるいから、Cパーサでも書くか?
構文木作成までできました。意味解析(or中間コード生成)して、コード生成と難読化するのがこれからです。ここからが難読化の本番ですよ。単純な置換なら一晩でできそうですが、複数ソースコードまたいでグローバルにpublicな関数の呼び出し規約変更してみ…