srupのメモ帳

競プロで解いた問題や勉強したことを記録していくメモ帳

2019-04-23から1日間の記事一覧

自己書き換えコード(self-modifying code)

自己書き換えコードとは, 実行時に自分自身の命令を書き換えるコードのことである. 以下のコードでは, foo() 関数の i++ の命令を i += 2に自己書き換えしている. 順に説明していくと, まず mprotect() 関数でfoo関数の命令が書かれているページに読み, 書き…