ichirin2501's diary

いっちりーん。

記号

ご無沙汰です。
はてなブログに貼り付けるつもりでしたが、ハイライトがまだ効かないのでこちらに。
バイナリエディタの開発を一旦中断して、夏コミネタに向けて違うことしてました。
その結果↓

__attribute__((section(".text"))) char main[] = 
    "%@@@@%!!!!-|||!-$*:!-/~{<`[[[[[[[%@@@@%!!!"
    "!-!!!!%!!!!`[[[[[[[%@@@@%!!!!-!!!!-!!!!-!|"
    "|]-!:`)-|:`~`[[[[[[[%@@@@%!!!!-!@!!%:+@@-`"
    "!@@`[[[[[[[%@@@@%!!!!-?!?!-&&:%-/?|``[[[[["
    "[[%@@@@%!!!!-!!?!--:$!-??/[`[[[[[[[%@@@@%!"
    "!!!-]!!!-%`!,-~~\\?`[[[[[[[%@@@@%!!!!-]!?!"
    "-%{:`-~{|~`[[[[[[[%@@@@%!!!!-!!!!%:^\\\\-_"
    "\\\\\\`[[[[[[[%@@@@%!!!!-!!!!%$!!!`[[[[[[["
    "%@@@@%!!!!-!!!!-@@@!%+,,[-{{{``[[[[[[[%@@@"
    "@%!!!!-!!!!-/*\\[-`/~{`^^^^^^^^%@@@@%!!!!-"
    "!!]]-$?::-`~<<`________!~,%@@@@%!!!!-!]!!-"
    "#:##-`<@@`________)~,____";

このままでは動きません。
スタックの実行権限許可と、書き換え許可を行う必要があります。
さらに絶対アドレスを使用しているため強く環境に依存します。
動作確認
gcc (GCC) 4.5.1 20100924 (Red Hat 4.5.1-4)
kernel 2.6.35.14-103.fc14.i686
プログラムヘッダ?の書き換え許可の変更には、
http://ph.halfmoon.jp/
trash -> 「プログラムヘッダのパーミッションをrwx にするスクリプト
をお借りした。

$ gcc kigou.c -z execstack
$ python pgm_hdr.py < a.out > b.out
$ chmod 755 b.out
$ ./b.out
$ assembly


本来の目的は、このプログラムを書くためのプログラムを書くことでした。
作成過程を夏コミネタにしようと思います。受かれば、ですが。


参考
http://perl-users.jp/articles/advent-calendar/2010/sym/16