私の blog にはあまりアクセスはありませんが、twitter log となっている旧 Blog (http://blog.okumura.com) のうちのある 1 日、2019/09/11(水) のページ にはけっこうアクセスがあります。HOLUX ezTour を使えない人が検索で見に来ているのかな、と思いますが、この 2019/09/11(水) の tweet には、具体的な対策は何も書かれていません。
その後、2019/09/14(土) の tweet (2019/09/14 のつぶやき) では具体的な対策を書きましたが、Google Maps への HOLUX の支払いが停止してしまったことにより、ezTour に組み込まれている HOLUX が契約していたと思われる Google Maps API キー “AIzaSyBuAcOB_vBhIk5EcBGT4zMQ8NNPh7ORKjA” が無効になってしまい、この 2019/09/14(土) に書いた方法は使えなくなってしまいました。
そこでもう少し調べてなんとかできないかやってみました。
ezTour の実行ファイルをバイナリエディタで確認すると、上記のキーが UTF-16 形式で保存されている個所がありました。Google Maps の API キーは誰でもお金を払えば登録できるので、登録して、バイナリエディタで ezTour の実行形式の該当部分をバイナリエディタで書き換えました。また、Google Maps の API キーがアクセスする時の Host: ヘッダーのドメイン名と関連付けられているため、元々 holux.com となっていたドメイン名部分も、バイナリエディタで書き換えてしまい、かつ、そのドメインのサーバー (つまり自分の web server) で動く php プログラムを作ることで、ezTour はちゃんと Google の地図を表示できるようになりました。ドメイン名部分を単純に書き換えると、私の所有しているドメインとは長さが異なるため、バイナリ全体の長さが変わってしまいます。それでも動くかどうかはよくわからなかったので、URL のドメイン名とは別の部分を変更して長さが変更前と全く同じになるように調整しました。
URL の部分は具体的には、”http://gomap.holux.com/uploadhtmlfile.php” という URL が実行形式内にハードコードされています。これを自分のドメインに変更するのですが、自分の所有しているドメイン名はもっと長いので URL のドメイン名部分が長くなってしまうので、例えば “uploadhtmlfile.php” を “updhtml.php” に変更して、その長さの分を短くして、URL 全体の長さを同じにするようにしました。
本来の uploadhtmlfile.php の中身は当然見れませんが、外形的にやっていることは proj_id という query 引数に html 拡張子を付けたファイルに、クライアントから送られてきたデータを全て保存しているだけとわかったので、その動きに合わせて以下の php スクリプトを作りました。(ドキュメントルートは /volume1/web/ です。実際に試みられるのであれば、それぞれの web server の document root に応じて書き換える必要があります)
<?php
// ezTour uploader (emulated)
// Fri. Oct. 04, 2019 by Hirotoshi OKUMURA$uploaddir = ‘/volume1/web/ezToolD/TGV/ezTour/’; // need to be changed for actual path for that web server’s document root
$uploadfile = $uploaddir . basename($_POST[‘proj_id’]) . ‘.html’;echo ‘<pre>’;
if (move_uploaded_file($_FILES[‘file’][‘tmp_name’], $uploadfile)) {
echo “File uploaded.\n”;
} else {
echo “Error on move_uploaded_file()\n”;
}>
updhtml.php
以下の 2019/10/04(金) の tweet が、実際にこれらの変更を行った後の画面です。
2019/09/14(土) につぶやいた #HOLUX #m241 #m241Plus 用 #ezTour の復活方法実施後も、
— Hirotoshi Okumura (@okumura1967) October 4, 2019
You must enable Billing on the Google Cloud Project at https://t.co/xT21Dz9jKT
というエラーが出るようになってしまったが、さらに色々変更して、ezTour を復活させた。こちらが復活後の画面です。 pic.twitter.com/HermTvxXdN
現在 2020/12/09(水) でも、この書き換えた実行形式で ezTour は HOLUX m241Plus から読み込んだ GPS log データの地図を表示できています。
ただ、実行形式ファイルを書き換えてしまっているためか、セキュリティソフトが警告を出すようになってしまいました。
上記までの説明を読んで意味が理解できる人は、おそらく全く同じことができます。リスクと言えるようなリスクはありませんが、own risk でやってみようという方のヒントとなれば幸いです。なお、上記までを読んで「自分でもできるな」と「思えない人」への質問に答えるつもりはありませんのでよろしくお願いします。
このページにも「コメント書けない」という人がいたので、確認のため自分でコメントを書いています。
このページへのコメントは承認制なので、コメントしていただいてから私が承認するまで、若干反映に時間がかかる場合があります。
1 年前の話ですが、この記事を参考にしていた方がいたようです。ezTour 復活はできなかったらしい。この記事内容だけだと難しいかなぁ。必要な情報は全部書いてあるつもりではあるけど…
https://takahide1.seesaa.net/article/202110article_2.html