2023年12月31日 星期日

2024跨年GOOGLE BARD查詢最佳賞煙火地點

PROMPT提示訊息下法:

今天想要去台北101大樓跨年,請依中央氣象局氣象資訊,提供最佳賞煙火的位置,另外請提供從台北火車站至最佳賞煙火地點,搭乘大眾交通工具,要在何處下車

根據中央氣象局氣象資訊,今天(2023年12月31日)台北地區天氣為多雲時晴,氣溫介於14至20度,風向為東北東風2級,風速每秒3至5公尺。受東北季風影響,煙霧易向西飄散,因此最佳賞煙火地點應位於上風處,也就是台北101的東北東方。

以下提供幾個最佳賞煙火地點:

  • 象山:象山位於信義區,步行至台北101約1.5公里,是觀賞101煙火的經典地點。象山上視野遼闊,可將台北101及周邊景色盡收眼底。
  • 虎山:虎山位於信義區,步行至台北101約2公里,也是觀賞101煙火的好去處。虎山上有許多觀景台,可選擇視野最佳的台階欣賞煙火。
  • 南港山:南港山位於南港區,步行至台北101約3公里,是觀賞101煙火的新興地點。南港山上視野極佳,可將台北盆地盡收眼底。

從台北火車站搭乘大眾交通工具至上述地點,可搭乘捷運文湖線至象山站、虎山站或南港展覽館站下車。

以下提供詳細的交通資訊:

  • 象山站:從台北火車站搭乘捷運文湖線至象山站,約需30分鐘。
  • 虎山站:從台北火車站搭乘捷運文湖線至虎山站,約需35分鐘。
  • 南港展覽館站:從台北火車站搭乘捷運文湖線至南港展覽館站,約需35分鐘。

請注意,以上地點在跨年夜當天可能會非常擁擠,建議提早出門卡位

 

PROMPT提示訊息下法:

今天想要去台北101大樓500公尺以內處跨年,請依中央氣象局氣象資訊,提供最佳賞煙火的位置,另外請提供從台北火車站至最佳賞煙火地點,搭乘大眾交通工具,要在何處下車

根據中央氣象局氣象資訊,今天台北地區天氣晴朗,無降雨,氣溫約攝氏19度至25度,濕度約60%至80%。在這樣的天氣下,最佳賞煙火的位置是視野開闊、沒有遮蔽物的地方。

從台北火車站搭乘大眾交通工具前往台北101大樓500公尺以內處,可搭乘捷運板南線至「台北101/世貿站」下車,步行約5分鐘即可抵達。

臺北市跨年晚會交通管制 請多利用大眾運輸

 

2024看台北101 跨年煙火絕佳的觀賞地點


敬祝大家有美好的一天😄
毎日をイキイキ過ごせますように!
Hope you have a wonderful year^_^

2023年12月30日 星期六

Not enough space系統槽磁碟空間不足處理

情境:檔案總管打開時,C碟(系統槽)呈現紅色狀態,代表磁碟空間將屆滿
如C槽空間不足,想把LINE應用程式,改到C槽以外的位置作法,如整理階段三。 
(一般來說,整理階段一,即可清出不少空間,除非您不滿意空間大小,再執行整理階段二) 

整理階段一:
一键清理系统 (BATCH FILE批次檔),直接刪除電腦內久置未清除的暫存檔(*.tmp)
del /f /s /q
%systemdrive%\*.tmp
%systemdrive%\*._mp
"%userprofile%\Local Settings\Temporary Internet Files\*.*"
"%userprofile%\Local Settings\Temp\*.*"
%windir%\prefetch\*.*
cleanmgr /sagerun:99

整理階段二: 將C槽資料面之資料夾(如:桌面、下載 之資料夾);  另外,應用程式面 之資料夾,請使用整理階段三),指向其它槽(如:D槽)

以挪動「桌面」資料夾為例,只要在資料夾上,按滑鼠右鍵 |  點選【內容】|切換到〔位置〕功能頁面 | 按〔移動〕按鈕 | 找到新的資料夾後 | 點選使其反白 | 再按〔選擇資料夾〕按鈕。

整理階段三(重要資料建議另外備份): (建立符號連結Symbolic-links)手動搬移預設安裝在C槽之大空間應用程式,如:LINE、CHROME),重要系統資料夾,請勿搬移(如:c:\Windows)
步驟一:關閉LINE
步驟二:把LINE資料夾 (%USERPROFILE%\AppData\Local\),複製到別的磁碟機(如D:\LINE)
步驟三:打開DOS命令提示字元(系統管理員) 執行
步驟四: 進入LINE原始安裝路徑上,執行下面mklink指令
  cd "%USERPROFILE%\AppData\Local\"
  mklink /D LINE D:\LINE

註:搬移資料夾內含空白,請用""標準雙引號 標示起來,即英語:quotation mark,視為1組字串值,如下:

 mklink /D BigApplication "D:\Program Files (x86)\BigApplication"     
步驟五: 將原本LINE執行路徑,按滑鼠右鍵|內容|修改執行路徑為 (新的路徑 )D:\LINE\bin\LineLauncher.exe

整理階段四(進階使用者): 安裝挪動磁碟分割區軟體(如:EaseUS),此種作法建議進階使用者使用,如稍有不慎可能無法開機、資料遺失!


2023年12月29日 星期五

用PYTHON程式,解析XML文件檔案資訊

XML檔,文字編輯器打開,出現一堆HTML標記<>對稱TAG資訊,如何簡單去除TAG資訊方便我們解讀?
可透過下面PYTHON程式(BeautifulSoup模組)進行解析查看

右鍵傳送至XmlParser.py  快速傳遞檔案參數,直接轉換快速作法:
步驟一: 開始| 執行 | Sendto:shell  , (即  C:\Users\YourName\AppData\Roaming\Microsoft\Windows\SendTo  )
步驟二: 將下面程式另字成 XmlParser.py(右鍵傳送到桌面當成捷徑,產生lnk檔) ,並將該lnk檔案複製到上面SendTo資料夾內  
步驟三: 點選您欲轉換之XML檔案,並按右鍵,指定給 XmlParser,即可快速執行XML格式檔案檢視


import sys
from bs4 import BeautifulSoup

def remove_html_tags(html):
    soup = BeautifulSoup(html, 'html.parser')
    text = soup.get_text(separator='\n', strip=True)
    return text

def process_xml_file(file_path):
    with open(file_path, 'r', encoding='utf-8') as file:
        xml_data = file.read()
        # 假設 XML 内容位於 BODY 標記中,則可將其提取出来
        start_index = xml_data.find("<BODY>") + len("<BODY>")
        end_index = xml_data.find("</BODY>")
        xml_body = xml_data[start_index:end_index].strip()

        #  移除 HTML 標記,並整理為可讀性文本
        text_content = remove_html_tags(xml_body)

        # 產出結果至螢幕
        print(text_content)
        
        #將畫面將時暫停,方便複製下來,貼到EXCEL去分析,並按任意鍵後離開
        input("Press any key to continue!")

if __name__ == "__main__":
    if len(sys.argv) != 2:
        print("Usage: python XmlParser.py <xml_file_path>")
        sys.exit(1)

    xml_file_path = sys.argv[1]
    process_xml_file(xml_file_path)

 

XML格式開放資料集查詢:

 展覽資訊、電影資訊、演唱會資訊


No-Break Space 不換行空格 之處理 ChrW(160)

情境:
因原自網頁來源資料,內含NBSP不換行空格(即 &nbsp; ) ,故藉由 PYTHON程式去除 空白特殊字元,
才不會看起來一樣,但對電腦(如:EXCEL之vlookup比對函數)來說,後面多個空白字元,就是2個不同的字串值。


import os
import sys

def replace_string_in_file(file_path):
    # 讀取欲去處理之原始檔案內容
    with open(file_path, 'r', encoding='utf-8') as file:
        content = file.read()

    # 替換NBSP特殊字元
    replaced_content = content.replace('&nbsp;', '')

    # 取得原檔案的檔名和副檔名
    file_name, file_extension = os.path.splitext(file_path)

    # 產生新檔案名稱( 原檔名_1 )
    new_file_name = file_name + '_1' + file_extension

    # 寫入去除空白字元後的內容,到新檔案
    with open(new_file_name, 'w', encoding='utf-8') as new_file:
        new_file.write(replaced_content)

    print(f"已完成去除空白字元,並產製新檔:{new_file_name}")


if __name__ == "__main__":
    if len(sys.argv) != 2:
        print("Usage: python RemoveNSPF.py <Original_file_path>")
        sys.exit(1)

    nspf_file_path = sys.argv[1]
    replace_string_in_file(nspf_file_path)



相關查詢:

No-Break Space 不換行空格 ChrW(160)

如何檢視空白CRLF換行等特殊字元神器? 可透過Notepad++文字編輯器,查看 檢視(V) | 特殊字元 | 顯示所有字元

空白字元導致vlookup查詢函數失敗,因此需將NBSP特殊字元予以去除

用PYTHON程式,進行2個EXCEL表,欄位比較

 
比較2個EXCEL表格,檢視上月 及 本月之差異,為加快人工檢視處理,分別各捉取前7筆資料,並對欄位進行比較處理之VBA程式;
同時亦將完整月份(上月/本月)資料載入不同頁籤


Sub CompareExcelFiles()
Application.DisplayAlerts = False
'控制 Excel 應用程式是否顯示警告訊息。
    Dim wb1 As Workbook, wb2 As Workbook, wb3 As Workbook
    Dim ws1 As Worksheet, ws2 As Worksheet, ws3 As Worksheet
    Dim i As Integer, j As Integer
    Dim fd As FileDialog
    Dim strFilepPre As String
    Dim strFileCur As String
    
    
    ' '開啟檔案GUI對話窗格,選取上月EXCEL檔,將路徑傳給strFilePre,供開啟比對用
    
     Set fd = Application.FileDialog(msoFileDialogFilePicker)
    With fd
        .Title = "Select a XLS (上月)"
        .Filters.Clear
        .Filters.Add "Excel Files", "*.xls*", 1
        .InitialFileName = "C:\Users\Downloads"
        .AllowMultiSelect = False
        If .Show = True Then
            strFilePre = .SelectedItems(1)
        Else
            Exit Sub
        End If
    End With
    
    
    Set wb1 = Workbooks.Open(strFilepre)
    Set ws1 = wb1.Worksheets(1)
    
    
    '開啟檔案GUI對話窗格,選取本月EXCEL檔,,將路徑傳給strFileCur,供開啟比對用
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
    With fd
        .Title = "Select a XLS (本月)"
        .Filters.Clear
        .Filters.Add "Excel Files", "*.xls*", 1
        .InitialFileName = "C:\Users\Downloads"
        .AllowMultiSelect = False
        If .Show = True Then
            strFileCur = .SelectedItems(1)
        Else
            Exit Sub
        End If
    End With
    
    
    ' 開啟本月.xls  ,路徑請自行修改
    Set wb2 = Workbooks.Open(strFileCur)
    Set ws2 = wb2.Worksheets(1)
    
    ' 建立檢核結果.xls
    Set wb3 = Workbooks.Add
    Set ws3 = wb3.Worksheets(1)
    
    ' 將上月.xls複製到「檢核結果.xls」的"上月"工作表
    On Error Resume Next
    Set ws1Copy = wb3.Worksheets("上月")
    If ws1Copy Is Nothing Then
        Set ws1Copy = wb3.Worksheets.Add(Before:=wb3.Worksheets(1))
        ws1Copy.Name = "上月"
    End If
    ws1.UsedRange.Copy ws1Copy.Range("A1")
    
    ' 將本月.xls複製到「檢核結果.xls」的"本月"工作表
    On Error Resume Next
    Set ws2Copy = wb3.Worksheets("本月")
    If ws2Copy Is Nothing Then
        Set ws2Copy = wb3.Worksheets.Add(Before:=wb3.Worksheets(1))
        ws2Copy.Name = "本月"
    End If
    ws2.UsedRange.Copy ws2Copy.Range("A1")
    
    ' 比較標題欄並將結果寫入「檢核結果.xls」的第1列
    For i = 1 To ws1.UsedRange.Columns.Count
        If ws1.Cells(1, i).Value = ws2.Cells(1, i).Value Then
            ws3.Cells(1, i).Value = "相同"
        Else
            ws3.Cells(1, i).Value = "不同"
        End If
    Next i
    
    ' 保存檢核結果.xls
    wb3.SaveAs "檢核結果.xls"
    
    ' 開啟檢核結果.xls
    Set wb3 = Workbooks.Open("檢核結果.xls")
    Set ws3 = wb3.Worksheets("工作表1")
    
    Windows("檢核結果.xls").Activate
    ws3.Cells.Select
    Selection.ClearContents
    Windows("活頁簿1.xlsm").Activate
    
    
    ' 將上月.xls前6筆(含標題列)複製到檢核結果.xls
    ws3.Cells(2, ws3.UsedRange.Columns.Count + 2) = "上月檢核ˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇ"
    ws1.Range("A1").Resize(5, ws1.UsedRange.Columns.Count).Copy ws3.Cells(3, ws3.UsedRange.Columns.Count + 2)
    ' 將本月.xls前6筆(含標題列)複製到檢核結果.
    ws3.Cells(ws3.UsedRange.Columns.Count + 5, 5) = "本月檢核ˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇ"
    ws2.Range("A1").Resize(7, ws2.UsedRange.Columns.Count).Copy ws3.Cells(ws3.UsedRange.Columns.Count + 6, 5)
    
    ' 關閉工作簿
    wb1.Close SaveChanges:=False
    wb2.Close SaveChanges:=False
 '  wb3.Close SaveChanges:=True
 
    
    ' 釋放物件
    Set ws1 = Nothing
    Set ws2 = Nothing
    Set ws3 = Nothing
    Set wb1 = Nothing
    Set wb2 = Nothing
 '  Set wb3 = Nothing
    

    Windows("檢核結果.xls").Activate
    Sheets("工作表1").Select
    
 
 Application.DisplayAlerts = True
'控制 Excel 應用程式是否顯示警告訊息。
 
 
End Sub



相關查詢:
INQUIREというアドインを使用して、2つのファイルを比較して違いを表示する (經由 Inquire增益集比對2個EXCEL)

スプレッドシート比較の基本的な作業 (Compare two or more worksheets at the same time)

複数のワークシートを同時に比較する


2023年12月26日 星期二

主機中勒索病毒ransomware參考資訊

風險評估: 優先斷網避免擴散、評估組織內的安全風險,包括網絡架構(重新REVIEW網路分段,是否可能因同網段相連有安全性漏洞進而横向擴散攻擊?)、應用程式漏洞、用戶設備(來源外部維護廠商、USB使用管理)和安全政策。
    

進行專業鑑識,掌握記憶體中是否有殘存的執行程式、分析該程式及攻擊行為可能管道,做為事後改進防止再發生策略
    檢視主機內SERVICE服務、
    檢視開機執行機碼位置(如:AUTORUNS)、
    檢視日誌是否有多餘帳號被建立、何時建立何時執行?(久未使用帳戶應予以停用或刪除)
    檢視防火牆日誌是否有可疑連線、
        

更新和補丁管理: 確保所有系統、防毒軟體引擎及防護碼、應用程式和防火牆,都經常接收最新的安全更新和補丁。
    😐利用已知系統安全漏洞進行提權,如果系統未適時更新又沒安裝IDS就可能遭受攻擊
    😐可利用WEB服務安裝性漏洞,如:上傳一句話木馬(簡稱Webshell)到web服務目錄,進而提權獲取系統權限
知己知彼、百戰不殆:適時擇定內、外部系統,進行滲透測試,及早發現可能的潛在問題;執行弱點掃描,掌握可能的弱點,並進行修補;原始碼檢測避免留由OWASP TOP10問題;對內適時辦理社交工程演練,提昇同仁對資安防護意識敏感度(郵件改成預設為純文字方式讀取)。     

入侵檢測系統: 部署入侵檢測系統(IDS)以監控網絡流量和系統活動,以檢測異常行為和潛在的攻擊跡象,同時特徵碼亦需持續更新。
 

威脅情報分享: 參與威脅情報共享社群,以獲取關於最新威脅和攻擊的信息。

用戶教育和培訓: 提供安全意識培訓,讓員工了解有關勒索軟體(家中電腦是否有裝防毒並定期更新、儘量減少瀏覽器外掛軟體,因為當外掛來源遭駭時,有可能惡意程式經過此管道入侵)和釣魚攻擊的風險。
 

定期備份及BCP:定期備份重要數據,並確保備份是可恢復的。(還原時建議不要還原前1天,可能仍有安全疑慮;還原時應預先確認還原主機未受感染);另外持續定期對重要系統還原演練亦很重要(模擬異地備份,多久可還原?平日備份後應確認是否有成功?空間及時間是否足夠),確認系統備份、程式碼、虛擬機,是否可由異地還原回來,並確認資料是否正確等,如同保險一樣隨時可能會派上用場(付贖款、營運中斷、商譽損失,遠遠超過平日營運成本數百倍)。
 

密碼管理:實施具複雜度密碼政策,並定期要求員工更換密碼。(維持使用舊密碼可能不安全且仍需備妥忘記密碼方案、儘量不要將密碼儲存在瀏覽器內,瀏覽器外掛程式不使用就應關閉或移除)
 

假若上面工作沒做好,系統雖很快還原,但未落實根因分析?攻擊者很可能已摸透內部架構及系統,將情資再轉賣他人,公司再受到類似攻擊也不足為奇👀
    
    勒索軟體解鎖參考資訊:
    Nomoreransom,
   

2023年12月24日 星期日

Wav to Txt 聲音檔案轉換成純文字檔 (逐字稿)

 情境:逐字稿 公司提供開完會後之WAV錄音檔,想轉換成純文字檔,節省打字時間


需預先載入:語音辨識相關套件

pip install SpeechRecognition



以下為PYTHON程式:

import os,sys
import subprocess


import speech_recognition as sr

# language='ja-JP' 可改成辨識日文語系; language='en-US' 可改成辨識英文語系
def convert_audio_to_text(audio_file):
    recognizer = sr.Recognizer()
    with sr.AudioFile(audio_file) as source:
        audio = recognizer.record(source)
    try:
        text = recognizer.recognize_google(audio,
language='zh-TW')
        return text
    except sr.UnknownValueError:
        return "無法辨識音訊"
    except sr.RequestError:
        return "無法連接到語音識別服務"


#'開啟GUI 取得來源檔(準備欲轉換聲音來源,開啟檔案對話視窗宣告處理)
import tkinter as tk
from tkinter import filedialog

root = tk.Tk()
root.withdraw()

# 取得轉換聲音,轉成純文字檔來源資訊
file_path = filedialog.askopenfilename(initialdir = "/",title = "Select file for OCR (選擇欲辨識聲音檔轉文字檔)",filetypes = (("Audio files","*.wav"),("All files","*.*")))

text1 = convert_audio_to_text(file_path)
print(text1)

with open('wavfile.txt', mode = 'w') as f:
    f.write(text1)
    f.close()

#將剛產出之文字檔,直接開啟顯示出來

subprocess.Popen('explorer "wavfile.txt"')


其它辦識資源 聲音轉換成純文字:
OpenAI (whisper)
 

其它轉換成文字相關工具:
圖檔轉換成文字檔 (Jpg to txt)