デジタル世界のお散歩

パソコンなどデジタル機器やネットに関連する経験上で得た知識を綴ります

パッチとは?

2024-07-28 19:01:40 | デジタル機器

パッチとは?

デジタルの世界ではあまり耳に(目に)しない言葉ですね

パッチワーク(色柄の違う布を縫い合わせて作る生地)とか、あて布(セーターの肘が抜けた時に布や皮などで覆って縫う)などが一般的なパッチのイメージですよね

 

さて、デジタルの世界で言うパッチとは何の意味でしょう

 

一口で言うと「プログラムの修正」の一つの方法です

既にプログラムをリリースした後にバグの修正や機能変更が必要になった場合にパッチをオンライン・アップデートとして配布します

*DLLを置き換えてしまうケースもあると思いますがサイズが問題です

 

と言うことで、

「パッチとは、実行ファイルの不具合をバイト単位で修復するあて布」

と言えば解り易いでしょうか

 

具体的なパッチのイメージ

実行ファイルの中身は2進数の複雑な並びで構成されていますが、その一部を変更するイメージが下図です

(16進数表記しています)

上の例では実行ファイルの一部を正しいデータに置き換えるためのパッチ(あて布)のイメージですが、

新イメージが長い場合(命令が増えるなど)は「Go To命令」を書き込み、飛び先のパッチエリアに正しい命令や命令群を書き込むケースもあります

 

ざっくりとご説明しましたがおおまかにはご理解頂けたでしょうか
マイクロソフトではWindows Updateとしてタイムリーに送って来ますが、その内容のほとんどがパッチと言えるわけです

 


DLLって何?

2024-07-09 11:12:16 | デジタル機器

拡張子がdllとなっているファイルを見かけた事はありませんか?

DLLとは Dynamic Link Library(ダイナミック・リンク・ライブラリ)

つまり動的リンクライブラリと呼ばれるものです

相対するものにStatic Link スタティックリンク、つまり静的リンクというものがあります。(ライブラリとは言いません)

 

と言われても何ことかさっぱり解りませんね

 

簡単に説明します

★ソフトの設計をしていると、しばしば同じ処理を行う部分が出てきます

例えば : A + B の結果を C に入れる

と言う処理をする部分があちこちにある場合、

いちいちその場でロジックをコーディングするのは無駄になりますね(EXE  

ファイルのサイズや実行時のメモリ容量など増大につながる)

そこでサブルーチンという概念があります

つまり、プログラム本体とは別に作る特定の処理だけを行う実行ファイルです

下図のようにこの処理を必要とする部分から呼び出して、各部共通の処理を行わせる部分プログラム(サブルーチン)となります

AとBとCの情報だけ引数(パラメータ)で教えてあげれば同じ処理を1か所に纏めることができて無駄な諸元を省く事ができます

 

このように本体のプログラムXとサブルーチンYは別々の実行ファイル(EXEファイル、ロードモジュール)として作られます

注:サブルーチンは単独で動作することはできません

 

ここまでは動的リンク静的リンクも考え方は同じです

 

1.実行ファイルが作られる時の違い

静的リンクの場合

プログラムXとサブルーチンYはコーディング後に

CU(コンパイル・ユニット)と言う形式に一旦変換されます(コンパイルするなどと言います)

これをLinker(リンカー)と言う処理ソフトによってリンク(結合する、個々のプログラムを一体化するなど)と言う処理が行われて一つの実行ファイル(ロードモジュール、EXEファイル、DLLファイルなどと言います)が作られます

動的リンクの場合
  プログラムXとサブルーチンY(DLL)は別々に単体モジュールとし     

  てビルドされてOSに登録されます

 

2.実行時の違い

静的リンクの場合はプログラムXがメモリ上に読み込まれ、OSによって実行されますが、この時サブルーチンYはこのプログラムによって使われる事がリンカーからOSに伝えられているので、GoTo命令が実行された時にハードディスク等の記憶媒体からメインメモリに実装され、実行されます

ただし、プログラムXしかこのサブルーチンYを使うことはできないので、Xの動作時に判定される実行ファイルサイズにあらかじめYのサイズが含まれています。

動的リンクの場合、必ずしもサブルーチン(DLL)は一つのプログラムから使われるものとは限りません

そこでOSは現在実行されているタスク(JOB)がどのDLLを使うかを判断して必要な物はメモリーに常駐させ、個別に呼び出されるDLLは必要に応じて実装されます

これが動的と言われるもとになっています

 

3.静的リンクの実行時イメージ

 

 

4.動的リンクの実行時イメージ

 

 

 

5.まとめ

動的リンク方式は、今ではパソコンはもとより、UNIX系のEWSなどもこの方式がほとんどです(例:ORACLEサーバ他)

②大きなプログラムになると数百とか数千ものDLLを有したものもあります

③OSのベンダーはDLLをサードパーティなどに公開して、仕様も有料で提供しています

④個別のソフトウェアが使用するDLLはインストール時に登録されます

 

以上、ごくごく簡単な説明ですが、かえって解り難かったらごめんなさい


またまたフィッシング画面の例です

2023-11-14 18:49:40 | インターネット

ブラウザーを使っていると

『突然大音量の警告音とともにすぐにサポートに電話するように』

と表示された

使用中に突然起きるとびっくりしてどうしたら良いのか分からなくなりますね

これは完全なフィッシング画面であり、ブラウザを閉じる事もできなくなり慌ててしまいます

でもこの段階ではウィルスに感染したわけではないので落ち着いてください

サイトに仕組まれたポップアップが表示されただけです

とりあえず画面を消す/音を止めるためには以下のような方法があります

①ブラウザを閉じる (これができれば良いですが)

②システムアイコンかキーボードの音量ボタンでミュートにするか、音量を下げる

③タスクマネージャーを立ち上げる (Ctrl + Shift + Esc 同時押下)

④タスクマネージャーが立ち上がらない場合はパソコンを再起動

 (ロゴキーもクリックできない場合は Ctrl + Alt + Del キーを押して、

  現れた画面の右下の電源ボタンから再起動します)

  *シャットダウンではダメです


⑤PCが再起動したら、ブラウザを立ち上げる前に設定から履歴の削除とCookieの削除をおこなう

以上でこの現象は対処できますが、このようなフィッシングポップはどこに潜んでいるか分かりませんので、必ず知名度の高いウィルス対応ソフトを購入/インストールしておくことをお勧めします

下は実際の画面例と煽り音声の例をアップしました。ご参考まで

なお、画面と音声は別々のポップアップからキャプチャしたものですが、悪しからず

 

 

 

 

 


マルウェアの削除例 「 PC HelpSoft Diver Updater」

2023-10-29 12:07:11 | パソコン

僕が最近出くわしたマルウェア

「PC HelpSoft Diver Updater」

を削除した手順を紹介します(あくまでも僕の例です)

  1. デスクトップにショートカットがあったので右クリックして「ファイルの場所」を
    開いておきました「C:\Program Files( x86)の下でした」

  2. このショートカットを起動すると以下の画面が表示されました
       

  3. 上記画面の「Start Scan」をクリックすると以下の画面が現れました (スクショ失敗)

       
  4. 「OK」を押しても 2. の画面に戻るだけでした
  5. ところが、②の画面を横にずらすと、下に別の下記画面がありました
            (ブラウザをインストールせい だとさ)
                                       

  6. ここでは「Decline」も「Accept」もクリックすると危ないので触らないようにしました
    ※この画面の上に書いてある電話番号「03-4589-4614」に
    番号非通知で電話をしてみたらお話し中のまま誰もでませんでした(いたずら小僧)
  7. 念のためPCをオフラインにしました
  8. コンパネからアンインストールしてもぜんぜん終わりません(まぁそうだろうなぁ)
  9. タスクマネージャーで怪しい、それらしきタスクを終了
  10.  1. で開いておいた「ファイルの場所」内を少しずつ削除
    ※一括削除ではいくつかが使用中のエラーにる
  11. 最後まで消えないファイルはコンパネからアンインストールして削除となりました
  12. PCを再起動して削除されたことが確認できました


    ネットを見ると削除用のソフトを入れろとか、どこどこに連絡しろとかありますが
    こんな方法もあると言う例でした

    もっと違う方法もあるよ!と言う方は是非コメントで教えてくださいまし

               よろしくお願い致します                                           

 


ビット と バイト について

2023-07-24 19:19:58 | デジタル機器

通常、「ビット」とか「バイト」と言う言葉はあまり意識しませんよね

でも、違いを知っていても損はしないと思いませんか?

1b と書くと ビット

1B と書くと バイト

と大文字と小文字のBで違いますね

8b(ビット)=1B(バイト)の関係にあることはご存じと思います

ではどう言う時に使い分けるかと言う事ですが、

基本的にはちょうど1バイト単位で表せない場合にビットの単位を使います

例えば通信量転送速度など信号を扱う場合にビットが使われます

例1:30Mbps これは信号が流れる時の大きさの単位でバイトでは表わせない数値です

例2:1パケット = 1024ビット

1パケットは一般的には128バイトと言われていますね

無論、間違えでは無いのですが、128バイトと言ってしまうと、

1バイト文字なら128文字分送られると勘違いしてしまいます

実際に128バイトの中には、IPヘッダーや様々なインターネットプロトコルに

必要な情報が付加され、中には3ビットや13ビットなどの長さの情報も含まれるので、

そこは誤解のないようにお願いしたいです

 

ややこしい話は抜きにして、「ビット」「バイト」の違いを薄っすらとでも覚えて頂ければ幸いです