2023年10月18日星期三

[LEGO EV3]Battery Checker

 Created this for our little robot team.


It is simple but it can help you to detect your LegoEV3 battery status quickly after you created a base line for it in competitions.
Yes, I am their coach.

“Although we did not get enough score to enroll the WRO in Panama this year, I think our team will win in next year. “ teammate said.






2023年8月25日星期五

[Windows]License for windows95_WIndow95のライセンス解析

It is real that someone is still checking with old OS license key.

They are the heroes of internet.



  「Windows 11」ではデジタルライセンス認証も可能になったが、Windowsを使い始めるには、正規品であることを証明するために数桁のユニークな英数字「プロダクトキー」の入力が求められる。

 ある研究者は興味本位で「Windows 95」のプロダクトキーを解析したところ、ある法則によって生成されていたことが分かった。本質を理解すれば、誰でも簡単にプロダクトキーを生成できてしまうという。その法則とは?

 セキュリティ研究者のstacksmashing氏は、Windows OSのプロダクトキー認証を突破できる裏ワザを発見した。同氏はさまざまなデバイスやアプリ、ゲーム機などをハッキングしてはその模様をYouTubeに投稿している。Windowsのプロダクトキーに関する話も動画で取り上げられた話題の一つだ。

 ただし、この裏ワザが通用するのは「Windows 95」のインストール時のみだ。Windows 95は1995年8月25日に英語版が、同年11月23日に日本語版が発売され、今のWindowsの礎を築いたOSと言っても過言ではない。

 stacksmashing氏が解明したプロダクトキーの生成アルゴリズムについて、詳しく解説しよう。

 Windows 95のプロダクトキーは「XXX-YYYYYYY」というように「-(ハイフン)」で接続された10桁(前半3桁と後半7桁)の数字で構成される。同氏は試行錯誤しながらそのプロダクトキーを入力する中で、ある傾向をつかんだ。

 まず、「111-1111111」と全て「1」にするとインストールは成功する。また、全て「0」の場合でも成功する。そして前半3桁を「000」「001」「567」と変更し、後半7桁が全て「1」の場合も有効なキーと認識される。ただし「333」「444」「555」といった「0」や「1」「2」以外の3連続の数字を入力した場合は失敗するようだ。

 後半7桁は「0000001」だと失敗し、そこから1ずつ数を増やしていったところ「0000007」の場合は成功することが分かった。それを繰り返していくと、後半の数字は「0000000」「0000007」「0000016」「0000025」だと成功することが判明した。同氏は、後半7桁の各数字の合計が「7の倍数」であれば成功するのでは、と推測した。確かに「1111111」も全て合算すれば「7」だ。

 stacksmashing氏はリバースエンジニアリングツール「Ghidra」を使って禁断のプログラム解析を敢行した。すると前半3桁は「333」「444」「555」「666」「777」「888」「999」の数字がブラックリスト入りしているだけで、その他の3桁の数字なら何でもいいことが判明した。そして後半7桁については、同氏の予測通り、全ての桁の数字を合計して7で割り切れれば成功することが分かった。しかも、3桁と7桁の間の文字はチェックされておらず、必ずしも「-(ハイフン)」である必要がない。

 これらの情報をまとめると「前半3桁は3~9の3並び以外なら何でもいい」「前半と後半をつなぐ文字はどれでもいい」「後半7桁は合計したとき『7』で割り切れればいい」と単純なものだったのだ。

 ちなみに、このアルゴリズムはWindows 95リテール版で通用するものであり、OEM版はまた異なる。OEM版の場合、プロダクトキーは「AAABB-OEM-XXXXXXX-YYYYY」という形式(「A」「B」「X」「Y」はそれぞれ整数、「OEM」は固定の文字列)で構成されているが、これも単純なアルゴリズムだ。

 stacksmashing氏の解析をまとめると「AAA」は「1~366」で、「BB」は「00~02」または「95~99」、「XXXXXXX」は先頭が「0」で、かつ合算して7で割り切れる7桁の数字、そして「YYYYY」はノーチェック、つまり「何でもいい5桁の数字」だ。何とも単純な仕様だ。

2023年2月14日星期二

[RaspBerry Pi]How to expand the root partition of your Raspberry PI’s SD card

 How to expand the root partition of your Raspberry PI’s SD card?

After installing a new OS on your PI’s SD card you might notice there is a lot of diskspace ‘missing’ on the card…

By expanding the root partition of the card you can regain that ‘missing’ space!

This is the easiest way to do it:

  • open the PI’s configuration screen (in the terminal window) by typing:
    sudo raspi-config
  • run the bottom option just to make sure you have the latest version of the configuration software:
    update
  • run the second option:
    expand_rootfs
  • click:
    Finish
  • select ‘YES‘ when it asks for a reboot

2023年1月30日星期一

[PERL]Confirm installed module on linux server

 ■以下のコマンドを実行すること確認できる

find `perl -e 'print "@INC"'` -name '*.pm' -print

 

■grep で限定表示

 find `perl -e ' print "@INC"' `-name '*.pm' -print | grep LWP


●@INC

Perlの特殊変数

●LWP

Perlモジュール