今日はlevel6を解きますー!
同じく前獲得したlevel6のパスワードでログインします。
いきなり、こういう画面がでました。
hintはインフォショップbbsのtelnet接続メニューでよく使われたハッキング方法です。
と書かれています。
私はまだ、89年生まれなので。。分からないです。。それでgoogle先生に
聞いても、よくわからなかったです。。
一応エンターキーを押したら
こういう画面が。。接続したいbbsを選択してくださいと。。。
????????????????????????????????????????????????????????????????????????????
今回はさっぱり分からなくて、色々検索したり、本をみたりしました。
回答は!シグナルに関係がある問題でした!!
それでシグナルに関して、勉強も少ししました!
シグナル=信号!!
linuxではkillコマンドでシグナルを送ります!linuxを使ったことある方は知ってますよね!
windowsでもタスクマネージャーでプロセスを強制終了する時シグナルを
送ります。
それがCUIがGUIかだけの差だとgoogle先生が教えてくれました!
それで、一番最初のhintが出力される時ctrl+cを押すとlevel6の
シェールが現れます。
ここでpasswordファイルの中身をみると。。次のパスワードがでます
ははははは。。。。。ん。。。何か物足りないですね。。
なのでgdbで分析をしてみました。
お。。今回はちょっと長いですねwww
一番上から見ていきましょうー!
まず何かをpushそてsystem関数を呼び出します。
それは”cat hint”ですね!!
だから、ログインしたらすぐhintの内容が見えたのですね!
次は、キャプチャー撮るを忘れましたがgetchar関数で一文字を
入力されます。
その後”clear”をpushしてsystem関数を呼び出します。
clearした後は次のprintf文達で上の画面のように(#########なんちゃら~)
何かのサービス達を出力します!!
そして、signal関数を呼び出します。
signal(2、sig_func)こういう形ですね。
つまり、ctrl+cシグナルが入力されるとsig_funcが実行されます。
それで、sig_func関数を見てみると、ctrl+cが入力されると
Can't use ctrl+cという文字列を出力します!
→2番はSIGINTです!interrupt!これです!
日本語では割り込みだとgoogle先生が翻訳してくれました。
実行されてる処理を一時的に中断する!ということで。。。ww
そして、上で見てた、1,2,3番のサービス番号を入力されます。
scanfは引数が二つですね!scanf(”%d”、&buf)こういう形なのでpushを二回します。
二回というか。。二つをpushしますね!
これの下はif文で1か2か3かを判断し、それぞれのIPアドレスに接続をして
終了するものです!!
それでパスワードは
これでーす!!









