Microsoftの全画面広告が阻止出来ない。
Windows11対応PCへの買い換えを促す全面広告で、これを阻止するために基本的な設定の変更やレジストリの書き換え、レジストリキーの追加などを行ったがダメだった。
この広告の元ネタがPC内部にあるとも思いにくいので、ならばMicrosoftとの通信を遮断したら阻止出来るのか?
と思ったが、WindowsのファイアウオールではMicrosoftのIPを指定しても(指定は出来るが)無視されるのだそうだ。
これってヤフーメールで、ヤフーから来る広告を阻止出来ないのと同じか。
マイクロソフトに関してはこんな事もあるようだ。
これは単にマイクロソフト側が悪いとしか言いようがないのだが、マイクロソフトは事象を認めながらも現時点では放置だそうだ。

Windows10に対する宣伝は何種類かある。
全画面広告に覆われ、それを「後で通知」をクリックして消すと、その下には別の宣伝ダイアログが出ている。
Windows11へのPC買い換え広告だけではなく、edgeをデフォルトブラウザにしろとのダイアログも出る。
これって放っておくといくつものダイアログが重なるみたいな、そんな状況になってしまうのだろうか。
デフォルトブラウザは何でも良いのでedgeにすると、今度はchromeがデフォルトブラウザ設定を要求してくるのがダルい。
こんな状況に陥っていて、前回に続き又気象データがサーバに送られなくなっていた。
全面広告を検知してブザーでも鳴らせば手動で回避出来る。
最も簡単そうなのが、バックライトの点灯検出だ。
Windows10のPCは気象データを送り出しているものなので、通常画面は点灯させていない。
しかし全面広告に覆われている間はバックライトが点灯する。
バックライトが10分以上点灯した事を検出してブザーでも鳴らせば良いが、夜中に鳴ったら迷惑だな。
この広告が出ている時にPCを再起動しても又同じ広告が出ると思うので、自動で消す処理はちょっと面倒かも。
全画面広告に×があればいいのだが、通常のウインドゥではないので「後で通知」をクリックするしかない。
常に同じ広告が出るのなら「後で通知」の場所を無駄に自動クリックしても良いけど。
Windows10なのでmicrosoftと通信する必要はなく、hostsに以下を書いてみる事にした。
“ファイル名を指定して実行”に以下を入力する。
powershell -NoProfile -ExecutionPolicy unrestricted -Command “start notepad C:\Windows\System32\drivers\etc\hosts -verb runas”
メモ帳でhostsファイルが開かれるので、0.0.0.0 microsoft.comと入力する。
# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
0.0.0.0 microsoft.com
これで効き目があるかどうかは分からないが、他にやる事がなくなった。
PCが動いているかどうかは従来からチェックしているのだが、全てのソフトが正常かどうか迄は見ていない。
このPCはIPv4の接続制御だとかネットワークカメラの画像伝送だとか、気象情報の伝送などを行っている。
中華カメラを接続しているネットワークなので、定期的にIPアドレスを変えているのは以前に書いた通りだ。
F&Fサーバに対するアタックの話は又後日書こうと思うが、あれを見るとあらゆる所が攻撃されているのだろうなと思う。
中華カメラが踏み台になれば、LANの中を覗かれる事になるので危険だ。
IPアドレスを変えたからと言ってどれほどの効果があるのかは分からないが、少なくとも連続的攻撃は避ける事が出来る。
IPアドレスが変わった事を通知するソフトはあるが、変わっていない事をトリガとしてアラートを出すソフトは(当たり前だけれど)ない。
IPアドレスが変わるのは正常動作なので、それでメールが来ても余り役に立たない。
異常時に通知される仕組みが欲しいのでサーバ側で工夫する事にした。
PCから自動でメールを送るためにサムソフトのIPアドレス変更通知を使った。
“IPアドレスに変更がなくても毎回メール送信を行う”設定にした。
赤矢印の所にチェックを入れる。

所がメールが送られてこない。
メール送信テストは成功するのだが、定時のメールが送信されない。
もしかして”IPアドレス変更時にメール送信を行う”(青矢印)にもチェックが要る?
いや、だったら青矢印の所にチェックを入れない場合は、赤矢印のチェックボックスがグレーアウトするはずだよなぁ。
でもチェックボックスがネストされているし…
と思って両方にチェックを入れたら、メールが来るようになった。
メールはサーバで受けるので、Perlでチェックソフトを作った。
IPアドレスの変化のない状態が一定時間続く、或いはメールが一定時間受信されないとアラートを出す。
プログラム自体はcronで定期的に実行させる。
配列などは余り使わない、冗長に作っているのは後で見て分かりやすいようにだ。
作った時は分かっているが、後で何かを改造しようと思った時にはすっかり忘れている。
なので冗長になっても、分かりやすいようにと思っている。
if文でも if (A==1 && B==3 )などは余り使わず、if文を並べている。
#! /usr/local/bin/perl
use strict;
use warnings;
use Net::POP3;
use Email::MIME;
use Encode 'encode';
# 接続設定
my $pop_server = 'localhost';
my $user = 'mail_account';
my $password = 'account_password';
my $msg_id = '';
my $count_file = '/home/user_home/count.txt'
# サーバー接続
my $pop = Net::POP3->new($pop_server)
or die "接続失敗: $!\n";
# ログイン
$pop->login($user, $password)
or die "ログイン失敗\n";
# メール一覧取得
my $msg_hash = $pop->list();
our $body = "";
our $nmail = 0;
foreach $msg_id (keys %$msg_hash) {
# 1通分のメールデータ処理
my $lines = $pop->get($msg_id);
my $raw_email = join('', @$lines);
my $email = Email::MIME->new($raw_email);
#デコード
my $from = $email->header('From');
my $subject = $email->header('Subject');
my $ssubject = encode('Shift_JIS', $subject);
$nmail = 1;
# 本文の抽出(本文内容はIPアドレスのみ)
$body = $email->body_str;
$body =~ s/\r\n//g;
$pop->delete($msg_id);
}
# 切断
$pop->quit();
#メール受信回数$mcount メール非受信回数$ucount IP変更が行われているかのチェック
open (FILE,"< $count_file");
my $r_data = <FILE>;
close(FILE);
# print "READ DATA=$r_data\n\n";
our ($ip_addr,$mcount,$ucount) = split(/,/, $r_data);
if ($ip_addr !~ /(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/){
$ip_addr = '0.0.0.0';
}
if ($nmail == 1){
$ucount = 0;
if ($ip_addr eq $body){
if ($mcount == 25){
$mcount = 0;
print "24時間以上IPアドレスが変わっていません\n\n";
}else{
$mcount ++ ;
}
}else{
$mcount = 0;
$ip_addr = $body;
}
}else{
$ucount ++ ;
if ($ucount == 3){
$ucount = 0;
print "3時間以上メールが送信されていないようです\n\n";
}
}
my $w_data = $ip_addr . "," . $mcount . "," . $ucount;
open (FILE,"> $count_file");
print FILE $w_data;
close(FILE);
全面広告ではないから良いが、Xではブラウザの全画面で広告を出している。
いつも50%割引をやっているのかな?
いや、それだと法に抵触するからたまに定価で売っているのか。

広告を非表示にするには月額6,080円も必要なんだ。
青バッジだけなら月額918円で買う事が出来る。
著名な人は別として、青バッジアカウント=インプレ稼ぎアカウントのイメージである。
金を払って(それ以上の金を稼いでいるのだろうけれど)、信頼性を失うのが青バッジ。

コメント