(myenv) mars@pi4Bu:~ $ cat weather-influx.py
#coding: utf-8
# encoding: utf-8
import sys
import subprocess
import json
import struct
from influxdb import InfluxDBClient
client = InfluxDBClient(host='XXX.XXX.XXX.XXX', port=8086,
username='root', password='XXXXX', database='iot01')
measurement = 'weather-station'
tags = {'place': 'leaf-weather', 'host': 'weather'}
cmd = [
"rtl_433",
"-F", "json"
]
process = subprocess.Popen(
cmd,
stdout=subprocess.PIPE,
universal_newlines=True
)
for line in iter(process.stdout.readline, ''):
if "time" in line:
data = json.loads(line)
temp = round((float(data["temperature_F"])-32)/1.8,1)
humi = data["humidity"]
wspd = round(float(data["wind_avg_km_h"])/3600,1)
wdir = data["wind_dir_deg"]
rain = data["rain_mm"]
json_body = [
{
'measurement': measurement,
'tags': tags,
'fields': {'temp': temp, 'humi': humi, 'wdir': wdir, 'wspd':wspd}
}
]
client.write_points(json_body)
print(json_body)
SeeStar で撮影





Install RTL_SDR Support
https://gist.github.com/derme302/a702e421b7cd133753e5ab87101a01c4
https://github.com/merbanan/rtl_433/tree/master
データの取得例
$ rtl_433 2>/dev/null
[SDR] Using device 0: Realtek, RTL2838UHIDIR, SN: 00000001, "Generic RTL2832U OEM"
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time : 2024-11-12 21:58:45
model : Emax-W6 id : dd9
Channel : 4 Battery_OK: 1 Temperature: 59.3 F Humidity : 81 %
Wind avg speed: 0.0 km/h Wind Direction: 228 Total rainfall: 0.2 mm UV Index : 1 Lux : 0
Integrity : CHECKSUM
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time : 2024-11-12 21:59:15
model : Emax-W6 id : dd9
Channel : 4 Battery_OK: 1 Temperature: 59.1 F Humidity : 80 %
Wind avg speed: 0.0 km/h Wind Direction: 229 Total rainfall: 0.2 mm UV Index : 1 Lux : 0
Integrity : CHECKSUM
$ rtl_433 2>/dev/null | python t.py
$ cat t.py
#!/usr/bin/python
import sys
for line in sys.stdin:
#print(line.strip())
res=line.split()
if len(res) == 34:
TT=round((float(res[6])-32)/1.8,1)
HH=res[10]
WS=round(float(res[15])/3600,1)
WD=res[19]
RR=res[22]
UV=res[27]
UL=res[30]
print(TT,HH,WS,WD,RR,UV,UL)
mars@pi4Bu:~/rtl_433 $ rtl_433 2>/dev/null |python t.py
18.4 69 0.0 229 0.2 1 0
18.4 69 0.0 229 0.2 1 0
18.4 69 0.0 229 0.2 1 0
18.4 69 0.0 229 0.2 1 0
18.5 69 0.0 229 0.2 1 0
18.4 69 0.0 229 0.2 1 0
18.4 69 0.0 229 0.2 1 0
18.4 69 0.0 229 0.2 1 0
SeeStar 50Sで月と太陽を撮影
2024入間航空祭
11月3日、青空に恵まれた久々のブルーインパルスの飛行




SeeStar で馬頭星雲、バラ星雲,M27,M13,M57
SeeStarへ新たに追加されたモザイクの機能を初めて使ってみた。オリジナルの画角よりも、最大2倍(面積では4倍)の範囲を撮影できる。








Apache2 の設定を確認する
- Ubuntuでのapache2の設定確認方法について説明します:基本的な設定確認コマンド
構文チェックbashsudo apachectl -t
またはbashsudo apache2ctl configtest
- 詳細な設定確認
sudo apachectl -S # 仮想ホストの設定確認
sudo apachectl -M # 読み込まれているモジュールの確認
紫金山/アトラス彗星 C/2023 A3
10月23日 黄色っぽい2本の線は、送電線。南西から北方向には、すぐ近くに多数の送電線が走っていて、長時間の露光は困難。

10月13日の西空に長い尾が特徴。双眼鏡でも確認できた。


Let’s Encrypt の証明書をブラウザ上で簡単取得
証明書の確認 cat cert.pem |openssl x509 -text -noout
Let’s Encrypt へ登録
Emailを入力して、署名鍵を取得

2. チャレンジトークンの取得

3. ドメイン名の所有確認

4. 証明書発行申請

5. 発行された証明書
cert.pem (サーバ証明書)、chain.pem (中間証明書)、fullchain.pem (サーバ証明書 + 中間証明書)と、STEP4で取得した秘密鍵をサーバーへ設置する
/etc/letsencrypt/archive/live/b17.ddns.net/
インストールの確認
$cat cert.pem |openssl x509 -text -noout
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
04:85:92:51:53:66:49:fe:d6:7a:17:6a:1a:9f:aa:ab:c2:4c
Signature Algorithm: sha256WithRSAEncryption
Issuer: C = US, O = Let's Encrypt, CN = R11
Validity
Not Before: Jan 8 00:12:59 2025 GMT
Not After : Apr 8 00:12:58 2025 GMT
Subject: CN = rfsec.ddns.net
今年のノーベル賞はAI祭り
化学賞受賞のハサビス氏は、世界最高ランクの囲碁棋士である李世乭に5試合中4試合に勝利したAlphaGoプログラムを開発したほか、機械学習のスタートアップであるDeepMindテクノロジーズを共同で立ち上げCEOを務めた。
生成AIを利用した様々なサービスが利用できる昨今ですが、Googleが今のところ無料で公開しているnotebookLMを使ってみました。(料金については、Googleによると「NotebookLM はまだ早期テスト段階であるため、現時点では料金は発生しません」となっていますが、そのうちに課金の対象になるかも?)
Google NotebookLMは、ユーザがアップロードした資料に対して、要約や質問に対する回答などを得ることができます。試しに、自分が2008年に執筆した博士論文のpdf(約100ページ)をアップロードしてみました。Google NotebookLMの興味深い機能の一つに、男女2人が、アップロードしたファイルの内容についての説明・感想を数分程度の会話を音声で聞くことができます。アップロードした資料が日本語であっても、今のところ音声は英語だけなのが残念な点ですが、再生できるようにしてみました。
Google NotebookLMが処理した結果の「要約」は、次のようになりました。Google NotebookLMの出力は、飾りのないテキストなので、多少読みやすくなるよう手動で体裁を整えました。
マルウェア自動解析システムの研究
1. マルウェアの脅威と対策
近年、マルウェアによる被害が急増しており、その種類や手法も多様化していることを説明。
従来のシグネチャベースの対策では未知のマルウェアへの対応が困難であることを指摘。
マルウェアの挙動解析に基づく自動解析システムの必要性を論述。
2. マルウェア自動解析システムの概要
本研究で提案するマルウェア自動解析システムの全体構成を図を用いて説明。
システムの主要な機能である、マルウェアの動的解析、挙動データの収集、数値化と類似性判定、そして視覚化について概説。
3. マルウェアの動的解析
サンドボックス環境を用いたマルウェアの動的解析手法について解説。
APIコール、レジストリへのアクセス、ネットワーク通信など、解析対象となるマルウェアの挙動を列挙。解析結果から得られる情報とその利点について説明。
4. 挙動データの数値化と類似性の判定
マルウェアの挙動データを数値化するための特徴量抽出方法を説明。
使用する特徴量として、APIコール系列、レジストリキー、通信先ポート番号などを例示。
数値化された挙動データに基づいて、マルウェア間の類似性を判定するためのアルゴリズムを解説。具体的には、ユークリッド距離、マンハッタン距離、コサイン類似度などの距離尺度を用いた類似度計算方法を説明。
5. 挙動データの視覚化
多次元尺度構成法 (MDS) を用いたマルウェア挙動の視覚化手法について説明。
MDS により、高次元の特徴量空間を2次元または3次元に写像することで、マルウェアの類似性を視覚的に表現。視覚化結果から、マルウェアの分類や未知マルウェアの検出が可能になることを示唆。
6. 実験と評価
実験に用いたマルウェア検体データセットの概要を説明。
検体数は約8,000個体で、トレンドマイクロ・ウィルスバスター2007を用いてスキャンし、名前が判明したものを使用。提案システムの性能評価指標として、検出率、誤検知率、処理時間を設定。実験結果に基づいて、提案システムが従来手法と比較して高い検出率と低い誤検知率を達成したことを示す。処理時間についても、実用的な範囲内であることを確認。
7. PDBを用いたマルウェア挙動の可視化
マルウェアの挙動を可視化するために、PDB (Position Dependent Bits) を導入。
PDBを用いることで、マルウェアの挙動をビット列として表現し、視覚的に比較分析することが可能になる。実際に、上位15種類のマルウェアについて、PDBへの変換結果を視覚化し、その特徴を分析。結果として、同種に分類されるマルウェアの挙動は一定ではないものの、利用ポートの状況など、種類ごとに特徴が認められることを示す。
8. 結論と今後の展望
本研究では、マルウェアの挙動解析に基づく自動解析システムを提案し、その有効性を検証。
提案システムは、未知のマルウェアに対しても高い検出率を達成し、マルウェア対策への貢献が期待される。今後の課題として、解析精度の向上、処理速度の高速化、マルウェアの進化への対応などを挙げ、さらなる研究の必要性を論述。
9. 付録
上位15種類のマルウェアのPDB可視化結果の詳細を掲載。実験対象とした検体の内訳を、AV製品ごとに「科名」と「科名+亜種名」で分類し、検体数を表示。特徴量抽出に用いたパラメータ (port100_md50_svcN_rootN_host_file4.hex) と、それによって得られたデータセットの分割方法について説明。各分割データセットにおける、F値、F&V値、F-STD、F&V-STD、Totalなどを表形式で表示。
参考文献
本研究に関連する参考文献を列挙。