UEFIは現在、標準のx86アーキテクチャフレームワークの初期化など、より人気があり、広く業界で認識されています。その多くのプログラミングのアイデアは、学習の価値が本当に採用します。要約UEFIの枠組みの今日の下のコードはほとんど経験が、新人参照目的のみを変更します。
概要を補完するために、最初の列ドライ、具体的なフォローアップ:
1.希望する論理機能を実装特定し、あなたはどの位置にコードを追加する必要があります。
(この手順が間違ったら非常に重要な、それはあなたの提案が重要な前提条件可能であると判断し、以降のコードは完全に崩壊し、不適切な、フレームのコードを実装します)
2.コードは、良いパッケージング、高い凝集を必要とし低カップリング。この原則が成り立ちます。私は最後の関数の開始時にコードが、どのような変数、GUID、または追加するために行ったものの定義に使用されるヘッダファイルを書き始め書きすることを提案します。これは、すべてのニーズを追加し、アイデアが混乱しないことを保証します。
3. UEFIフレームワークの下では、多くの場合、この概要は見えるだろうに、LibのコールのクロスPKGを含め、いくつかのGUIDを伴います。
OK、これらの点の乾燥品は、小さな問題で私は現在経験して-一例として、「USERPASSWORDリピートパスワードが正常にBIOSセットアップで機能することができます」。
コーミングの1プロセス
。パスワードの保存と一般的な使用HASH値チェックパリティモード、利点[安全、シンプル]
BIOSの下のBパスワードのプロセス。:
- ユーザは、ユーザの入力文字列を取得するには、パスワード、BIOSを入力する最初のパスワードの複雑性を検証する必要があります。遵守の複雑さを参照してください。
- 第二には、あきらめるために繰り返される場合は、パスワード比較の以前のパスワードの保存現在入力されています。一般的に、文字列のハッシュ値を使用して格納されているパスワードとの比較は、単純な非セキュリティは、テキスト形式で格納されています。彼らが要件を満たしている場合は、さらにパスワードの保存
(CRBを繰り返し、その実装プロセスは比較的複雑なパスワードの確認の過去3 ADMINPASSWORDに提供されたコードが、原理は、過去3回のパスワードを設定することにより、ハッシュ値検証を格納する必要があり、そして結局、ストレージの順序に従う必要唯一、過去に3回を格納することができます。この場所は、同様のスキームキュー、FIFOを使用する必要があります)
- 最後にハッシュをパスワードにするたびに保存されている、あなたは最終的には管理者パスワードを保存する必要があります内部キューに格納されています。第三位までキューに置かれ、1を高めるために次の2つのハッシュパスワードを保存された最も古いを削除し、新たに保存されたパスワードはハッシュへの元のパスワード
2.デザイン
最終的には2.1ハッシュの現在のUserPasswordを格納する変数を設定するときにパスワードを保存
UserPassword 2.2を入力した後、パスワードハッシュは、現在入力パスワードハッシュと比較して、読書に配置されています。書くことができるかどうかを判断します
3.コーディング
3.1のUserPasswordハッシュ値の設定は、我々だけはSetVariableを保存するために、文字列現在のパスワードを取得し、その後、SHA256 ED値を取得する必要があり、かつgRT->ストレージサービスを介して、保存されます。書かれた関数の予備は次のとおりです。
次のように検証が複製さUSERPASSWORDコードを追加し、複雑さをした後、パスワードを入力した後、3.2は、次のとおりです。
3.3はSetVariableは最終的にBIOSは、パスワードの場所を設定した場合、保存して終了する機能が追加されます。
概要並べ替え:
最终将SetVariable的函数添加至BIOS保存退出时,设置密码的位置即可。
此Bug梳理之后其实挺简单的,回想自己的解问题思路,应该注意的几个点主要如下:
a. 理清处原有的AdminPassword的检验机制,学习其的一些处理方法
b. 编码时,对GUID和一些Lib库的调用有点不够清晰,也是通过本次整理重新梳理了下GUID的用法和Lib库的调用。(后续着重总结)
c. 有一些过程功能函数,仅限在某个.c文件内部使用,这种情况下,果断考虑重写一套函数供自己使用。不要为了外部调用原有函数而花费过多无用的时间。
d. 最最重要的一点,写代码时一定要明确需求,自己要写什么,在哪个地方写?然后从最根本的需求处入手,需要什么就添加什么,这样才能稳住阵脚,从容应对。
针对此次解决的一些小Bug,做以上总结,给同为程序猿的我们,留下些许的足迹。
一个普通程序员的成长路程,欢迎关注我的公众号,茫茫人海,能与你相遇既是有缘。哈哈