PVS-Studioセキュリティ調査

読者の皆さん、こんにちは! 私は初めて記事を書いています。私はPC-RETチームのメンバーの1人です。 記事を勉強し、反対側からアプローチすることにしました

作業段階

1.プログラムの分析
2.リバースするプログラムの選択
3.コード分析
4.パッチ

1.プログラムの分析

Detect It Easyプログラムを使用して 、プログラムの内容とコードの難読化の有無を確認します。

アナライザーのスクリーンショット
画像

プログラムがクリーンで難読化されていないことがわかります。

2.リバースするプログラムの選択

仕事では、 dnSpyプログラムを選択します。

3.コード分析

プログラムを起動してキーを入力すると、エラーメッセージが表示されます。

エラーのスクリーンショット
画像

dnSpyでプログラムを開き、「Incorrect」という単語を探します。多くの一致が見つかります。

検索スクリーンショット
画像

「InitFreeLicenseSourceFileHeaders」が必要です-2回クリックして、クラス「LicenseInfo」に移動します。 そこにGetLicenseInfoメソッドが表示されます-ここで必要なので、コードを見てください。

GetLicenseInfoスクリーンショット
画像

17行目にブレークを入れてプログラムを実行します(上部の[開始]を押して[OK]をクリックします)

起動画面のデバッグのスクリーンショット
画像

コードを分析すると、プログラム「clang.exe」が引数「--checkreg = yes」で起動され、答えが得られます
invalid \ r \ n不明なライセンスタイプ\ r \ n-1 \ r \ n "さらに行を" \ n "で分割し、文字列の配列を取得します
1- 無効 2- 不明なライセンスタイプ 3--1

4.パッチ

引数を付けてプログラムを呼び出すのではなく、プログラムに必要なものを与えるだけです。 そして、プログラムに「valid \ r \ nEnterprise License \ r \ n365 \ r \ n」という行を与える必要があります

これを行うには、 GetLicenseInfo関数を右クリックしてEditMetodを選択し、この方法でコードを置き換えます。

交換用スクリーンショット
画像

変更を保存して実行してください。

ライセンスのスクリーンショット
画像

これは私の最初の記事です。厳密に判断しないでください。
心から、PC-RET Misharチームのメンバー

Source: https://habr.com/ru/post/J323250/


All Articles