まず、ls -lでどんなファイルがあるか確認して
ソースコードを見る
hashcodeは0x21DD09EC
argv[1]は20バイトを入力しないとダメみたい
そして、check_password()関数にargv[1]を渡いて、そのポインターをchar系からint系に変換する。
その後、for文で5回繰り返しながら4バイトの整数をresに足している。
その最後の値が0x21DD09ECにならなければいけない。
つまり、20文字列が入力されそれをint系ポインターに変換して計算するから
int(文字) X 5 = 0x21DD09EC
0x21DD09ECを5で割り算すると0x06C5CEC8になるが4があまるので
最後の値には+4しなければならないので
\xc8\xce\xc5\x06*4+\xcc\xce\xc5\x06にすれば良い
flagが出力される
/* argv 補充 */
argv[1]に値を\xaa\xbb\xcc\xddを入力すると
argv[1][0]には\xaa
argv[1][1]には\xbb
argv[1][2]には\xcc
argv[1][3]には\xdd
これをint系で変換して出力してみると



