カスペルスキーのハッシュの元の名前を教えてくれ的なやつ [プログラミング]
コードを書こうかと思ったが、よく読んだら書くまでもなかった
https://www.securelist.com/en/blog?weblogid=208193781
アメリカとイスラエルが開発したとされるスパイウェア「Gauss」のハッシュがわからんので教えてくれというのが発端
Validation
・%PROGRAMFILES%にあるフォルダを列挙する
大抵は「c:\Program Files」 のUnicode
・1文字目が0x007A以下は除外
Unicodeで'z'を表す。つまりASCII以外の文字を含むフォルダだけをターゲットとする
AMDとかWindows~というのは除外される
・パス+フォルダ+Salt を作る
Saltは16バイトでハードコードされている?
Unicodeだけだと半分は0になっているので解読されやすいかもしれないのでそれを考慮してSaltを追加?
・md5を1万回計算する
hash = md5(hash)
1回だけだとすぐバレるので追加。
MD5を使っているのは実装が簡単、軽量だから?
・ハードコードされた値と一致したらOK
復号のほうもにたようなもん。なぜかWindowsのAPIを使ってるが、理由は不明。
で、パスとフォルダで何百万という組み合わせをためしたがダメだった。のでわかったら教えてくれというのが課題。
まあ、普通の人なら自作コードでサンプルが一致するのを確認するのがせいぜいだろう。
サンプルが確認できるコードを書いて、元ネタのパスを探すのがいかに難しいかをまとめると夏休みの自由研究にはいいかもしれない。
https://www.securelist.com/en/blog?weblogid=208193781
アメリカとイスラエルが開発したとされるスパイウェア「Gauss」のハッシュがわからんので教えてくれというのが発端
Validation
・%PROGRAMFILES%にあるフォルダを列挙する
大抵は「c:\Program Files」 のUnicode
・1文字目が0x007A以下は除外
Unicodeで'z'を表す。つまりASCII以外の文字を含むフォルダだけをターゲットとする
AMDとかWindows~というのは除外される
・パス+フォルダ+Salt を作る
Saltは16バイトでハードコードされている?
Unicodeだけだと半分は0になっているので解読されやすいかもしれないのでそれを考慮してSaltを追加?
・md5を1万回計算する
hash = md5(hash)
1回だけだとすぐバレるので追加。
MD5を使っているのは実装が簡単、軽量だから?
・ハードコードされた値と一致したらOK
復号のほうもにたようなもん。なぜかWindowsのAPIを使ってるが、理由は不明。
で、パスとフォルダで何百万という組み合わせをためしたがダメだった。のでわかったら教えてくれというのが課題。
まあ、普通の人なら自作コードでサンプルが一致するのを確認するのがせいぜいだろう。
サンプルが確認できるコードを書いて、元ネタのパスを探すのがいかに難しいかをまとめると夏休みの自由研究にはいいかもしれない。
コメント 0