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