ここ数日やったことこと
最近バイナリ的なことをよく勉強していたのだが、SECCON2021で一問もPwnを解けないという醜態を晒したので、コンピュータ全般についてしっかり勉強をやり直すことにした。
・文字コードについて
今まで文字コードについて、たとえばUnicodeやUTF-8、Shift-JISの違いがよくわかっていなかったので改めて勉強し直した。
符号化文字集合と符号化形式の違いをしっかり理解して、区別して考えるとわかりやすかった。
文字コードに関するセキュリティリスクについては以下の連載記事がとても面白かった。
・その他メモ
Pwnを勉強するときに役立ちそうなgccのオプション
gcc -static // libcをスタティックリンクする、 シェルコードを書くとき便利
gcc -nostdlib // リンク時に標準ライブラリとリンクしない, つまり__libc_csu_init()とかが自動的に追加されない
gcc -z execstack // DEPを無効化
gcc -fno-stack-protector // スタック破壊を検知する機能(カナリア)を使わない🦃
gcc -no-pie // PIE無効化
この他、gccではないがASLRによるメモリのランダマイズを切り替える方法
sudo sysctl -w kernel.randomize_va_space=0 // ASLR無効化
sudo sysctl -w kernel.randomize_va_space=2 // ASLR有効化
この記事が気に入ったらサポートをしてみませんか?