Home > Krack > 難読化について

難読化について

  • 2008-10-02 (木) 17:41

難読化というのは読んで字の如く「ソースコードを読むのを難しくする」事です。
java,C#,VB.NETなどの中間言語を用いるものは簡単にデコンパイルできるので結構難読化を施されたアプリケーションもありますが、ネイティブアプリケーションで難読化が施されたアプリケーションは少ないかと。
理由としてはPackerの方が手軽でデバッグ時の問題が起こりにくいからではないかと思います。
今回はネイティブアプリケーションの難読化に絞って、うだうだ書きますw
まずネイティブアプリケーションの難読化には二種類あり、違いは高級言語の時点で難読化するか、それともasmコードに変換後に難読化すると言うことです。図にするとこんな感じ。

前者の方が後者に比べ技術的には難易度が高いですが、今回の中国の発表で求められているのはこっちです。
後者の方は物にもよりますが結構簡単に作れるんじゃないかなーと思います。
前者の例はsumaさんが最近の記事で書いてるのでそっちを参照してくださいw
というわけで、asmコードに変換後に難読化する例としては、関数を呼ぶコードをこんな感じとすると。

push 0
push eax
call 00401715

これを難読化して、こんな感じ。

sub esp,0×8
mov [esp],eax
mov [esp+4],0
call 00401715

さらにさらに、movをpush、popで代用すると

sub esp,0×8
push eax
pop [esp]
push 0
pop [esp+4]
call 00401715

取り敢えず、読みにくくなったかもしれませんが、実行速度は確実に落ちますw
実際の所、コンパイラも結構アクロバティックなコードを吐いたりしてるのでasmコードに変換後に難読化する必要性があるのかな?と思いますが、素直なコードも吐きますので、そこをなんとかする意味では面白いかもしれませんね。

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://security.symphonic-net.com/krack/%e9%9b%a3%e8%aa%ad%e5%8c%96%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6/trackback
Listed below are links to weblogs that reference
難読化について from Security Ark

Home > Krack > 難読化について

Calendar
« 1 月 2009 »
M T W T F S S
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
最近のコメント

Return to page top

Security Ark is Digg proof thanks to caching by WP Super Cache!