2013-10-09から1日間の記事一覧

関数の動的書き換え(1)

関数の内容を動的に書き換えることをやってみます。 サンプルソースは、「リンカ・ローダ実践開発テクニック」(p139)より。 /* overwrite.c */ 1 #include <stdio.h> 2 #include <string.h> 3 #include <stdlib.h> 4 5 int value; 6 char buffer[100]; 7 8 void func1() { value += 1; }</stdlib.h></string.h></stdio.h>…

関数の動的書き換え(2)

前回は、関数の動的書き換えを行うプログラムを実行したところ、書き込み禁止領域に対して書き込もうとするため保護違反が発生し、プログラムはSIG_SEGVで終了しました。そこで、func1()が.textセクションではなく、.dataセクションに配置されるように、リン…