質問: ソフトウェアのパスワードはリバースエンジニアリングで回避できますか? たとえば、私は自分のOS(Windowsなど)に管理者権限があります。ソフトウェアある[ **XYZ** ]がインストールされて実行されると、OSと **XYZ** の間に通信が確立され、OSは **XYZ** のすべてを実行して確認できます。 これが私のパスワードの認識です(.zipパスワードなど)。 ![enter image description here](https://i.stack.imgur.com/ZLrXC.png) 他のコマンドの代わりにコマンドを実行するようにソフトウェアロジックを変更することは可能ですか?もしそうなら、何も割れから保護することはできません?
回答: パスワードを解読するときにシステムがどのように機能するかは、すべて異なります。 あなたは潜入することができる非常に基本的な「ログイン」タイプのパスワードシステムを想像しています。しかし、ZIPファイルのようなもの、そしてWebサイトは、システムを編集してパスワードを明らかにさせるだけの人々と戦うためにさまざまな方法を使用します。 1つの方法は、セキュリティを強化するためにMD5と「salt」を併用することです。これは、パスワードが元に戻せない認識不能なコードに変わるという事実に基づいて機能します。 システムがパスワードを要求します - 例パスワード システムはパスワードに「salt」を追加します - 例えば1234(パスワードはPASSWORD 1234になりました) システムはパスワードでMD5をsaltと共に使用します - ほとんどの人はそれ自身のPASSWORDがMD5コード319f4d26e3c536b5dd871bb2c52e3178を生成することを知っているでしょう - しかし、 "1234"塩がパスワードに追加された この時点で、システムはまだそのパスワードが有効かどうかをチェックしていないので、この新しいコードをプログラムの別のセクションに渡し、MD5コードがファイルを表示している場合に予想されるものと一致するかどうかを判断します。初期パスワードは長い間メモリから破棄されています。 誰かがこのタイプのパスワードを浸透させるには、最初に入力された初期パスワードを入手し、その後プログラムがファイルのオープンを許可したかどうかを調べる必要があります。コンピュータ上のソフトウェアでは、パスワードを取得し、後でファイルが開かれているかどうかを確認してパスワードを取得することもできます。ただし、パスワードがMD5 + saltとして別のサーバーに送信されている場合例えばjavascriptやPHPを介して)それはそれが変換するそのメモリにパスワードを持っていてphpサーバーが逆変換できないちょうどmd5 + saltパスワードを持っているのでそれはずっともっとトリッキーになります。 使用されている他の方法に加えて、パスワードを取得し、それを何らかの方法でデータ内にエンコードするという方法もあります。これは、たとえば、zipファイルの動作方法です。 速い茶色のキツネは怠惰な犬を飛び越える 1文字のパスワードを渡します。私はそれが少し単純であることを知っています、しかしこれは単純な例です - コンピュータはそれを変換することができます!それをASCIIに相当するものに変換し、それからすべての文字のASCIIコードを差し引いてそれをエンコードします。は33で、tのASCIIコードは116および116 - 33 = 83です。これは大文字のSのASCIIコードなので、データが暗号化されると、上記の行は次のように格納されます。 SGD PTHBJ AQNVM JAW ITLOR NUDQ SGD K @ YX CNF 今、誰かがこのメッセージを暗号化解除しようとしているなら、あなたは彼らが正しいパスワードを持っているかどうかわからない - 彼らが#ではなく#のパスワードを入れたら!次のようなメッセージが返されます vjg swkem dtqyp hqz lworu qxgt vjg nc | {fqi 意味をなさないので、ほとんどのシステムは実際にパスワードの有効性をチェックしますが、最初はパスワードを変更するので、結果を流用するだけではハッキングされることはありません。自分自身の偽のWebサイトやプログラムを作成し、ユーザーが最初に自分のパスワードを偽のプログラムやWebサイトに入力するようにします。もちろん、多くのWebサイトでは認証トークンを使用してパスワードを生成します。時間(たとえば、HSBCスマートキー)。