顯示具有 Software 標籤的文章。 顯示所有文章
顯示具有 Software 標籤的文章。 顯示所有文章

2026年7月14日 星期二

nmap 使用筆記

https://nmap.org/

公司實驗室的機器 IP有時候飄來飄去,這時候就可以靠 nmap來找到需要的機器。


掃描指定機器的常用埠

nmap 192.168.1.10
Starting Nmap 7.95 ( https://nmap.org ) at 2026-07-14 17:52 CST Nmap scan report for renegade-ThinkPad-L13 (192.168.1.10) Host is up (0.000069s latency). Not shown: 998 closed tcp ports (conn-refused) PORT STATE SERVICE 22/tcp open ssh 3389/tcp open ms-wbt-server Nmap done: 1 IP address (1 host up) scanned in 0.04 seconds


掃描子網路 (192.168.1.0 to 192.168.1.255)

nmap 192.168.1.0/24


掃描指定的埠

nmap -p 22 192.168.1.10
Starting Nmap 7.95 ( https://nmap.org ) at 2026-07-14 17:53 CST Nmap scan report for renegade-ThinkPad-L13 (192.168.1.10) Host is up (0.000052s latency). PORT STATE SERVICE 22/tcp open ssh Nmap done: 1 IP address (1 host up) scanned in 0.03 seconds


偵測每個埠上運行的服務

nmap -sV 192.168.1.10
Nmap scan report for renegade-ThinkPad-L13 (192.168.1.10) Host is up (0.000069s latency). Not shown: 998 closed tcp ports (conn-refused) PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 10.0p2 Ubuntu 5ubuntu5.4 (Ubuntu Linux; protocol 2.0) 3389/tcp open ms-wbt-server Microsoft Terminal Service Service Info: OSs: Linux, Windows; CPE: cpe:/o:linux:linux_kernel, cpe:/o:microsoft:windows Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 11.24 seconds


掃描子網路下所有 port 22的狀態為 open的機器

nmap -p 22 -T4 --open -oG - 192.168.1.10
# Nmap 7.95 scan initiated Tue Jul 14 18:16:59 2026 as: nmap -p 22 -T4 -oG - 192.168.1.0/24 Host: 172.31.97.112 (renegade-ThinkPad-L13) Status: Up Host: 172.31.97.112 (renegade-ThinkPad-L13) Ports: 22/open/tcp//ssh/// # Nmap done at Tue Jul 14 18:16:59 2026 -- 1 IP address (1 host up) scanned in 0.03 seconds
  • -T4 加速掃描速度
  • --open 只列出狀態為 open的 port
  • --oG - 輸出grepable的格式到console

2025年11月7日 星期五

lf - terminal file manager 使用筆記

官方網址:
https://github.com/gokcehan/lf

lf 命令


最重要的命令
q離開 lf

移動
j or [↓]檔案列表中往下移動
k or [↑]檔案列表中往上移動
[Ctrl] + d檔案列表中往下移動半頁
[Ctrl] + u檔案列表中往上移動半頁
[Ctrl] + b or [PgDn]檔案列表中往下移動一頁
[Ctrl] + f or [PgUp]檔案列表中往上移動一頁
h or [←]移動到上一層目錄
l or [→]移動到下一層目錄,或者開啟檔案
gg or [Home]移動到最上面的檔案
G or [End]移動到最下面的檔案

檔案操作
gg or [Home]移動到最上面的檔案
G or [End]移動到最下面的檔案
[Space]選取目前的檔案
v取消選取目前的檔案
u取消所有選取的檔案
y複製目前或者選取的檔案
d剪下目前或者選取的檔案
p貼上複製或剪下的檔案到當前的目錄
c取消貼上複製或剪下的檔案

命令列
:輸入預設或自定義的命令
$在 shell下執行命令
%在 shell下執行命令,並將ui pipe到input,output pipe到ui
!在 shell下執行命令,並等待按鍵輸入
&在背景執行命令

搜尋
/搜尋符合pattern的輸入
?反向搜尋符合pattern的輸入
n下一個符合pattern的結果
N上一個符合pattern的結果

設定
z更改某些選項的設定
s更改 sortby及 info的設定

開啟
e開啟檔案編輯器
i開啟 pager
w開啟 shell


lf 設定檔

Linux

  ~/.config/lf/lfrc

Windows

  C:\Users\%username%\AppData\Roaming\lf\lfrc


環境變數

可以透過修改環境變數來更改 lf的預設指令

環境變數
OPENERWindows: start
Linux: xdg-open
EDITORWindows: notepad
Linux: vi
PAGERWindows: more
Linux: less
SHELLWindows: cmd
Linux: sh

參考連結:
https://github.com/gokcehan/lf/wiki/Tutorial

2024年10月28日 星期一

rappel - Assembly REPL

官方網址:
https://github.com/yrp604/rappel

rappel提供了一個 assembly的交互式介面環境,可以在執行完指令後馬上看到暫存器狀態的變化,用來嘗試一些指令非常好用。

編譯完後可從./bin/rappel執行,Ctrl + d 退出程序:

./bin/rappel
rax=0000000000000000 rbx=0000000000000000 rcx=0000000000000000
rdx=0000000000000000 rsi=0000000000000000 rdi=0000000000000000
rip=0000000000400001 rsp=00007ffd6bf14b30 rbp=0000000000000000
 r8=0000000000000000  r9=0000000000000000 r10=0000000000000000
r11=0000000000000000 r12=0000000000000000 r13=0000000000000000
r14=0000000000000000 r15=0000000000000000
[cf=0, zf=0, of=0, sf=0, pf=0, af=0, df=0]
cs=0033  ss=002b  ds=0000  es=0000  fs=0000  gs=0000            efl=00000202

mov rax, 0x10
rax=0000000000000010 rbx=0000000000000000 rcx=0000000000000000
rdx=0000000000000000 rsi=0000000000000000 rdi=0000000000000000
rip=0000000000400006 rsp=00007ffd6bf14b30 rbp=0000000000000000
 r8=0000000000000000  r9=0000000000000000 r10=0000000000000000
r11=0000000000000000 r12=0000000000000000 r13=0000000000000000
r14=0000000000000000 r15=0000000000000000
[cf=0, zf=0, of=0, sf=0, pf=0, af=0, df=0]
cs=0033  ss=002b  ds=0000  es=0000  fs=0000  gs=0000            efl=00000202

2024年7月1日 星期一

[Linux] tmux 使用筆記

tmux是個 Linux下的終端機管理程式,可以在同一個終端 (terminal)下同時操作多個程式, 對於透過 SSH連線來使用機器來說非常方便。


tmux指令

開啟新的 tmux session

tmux

開啟名為 <session_name>新的 session

tmux new -s <session_name>

列出當前的所有的 tmux session

tmux ls

attach到 <session_name>的 tmux session

tmux a -t <session_name>

detach當前的 tmux session

tmux detach

關閉session

tmux kill-session -t <session_name>

tmux快捷鍵


tmux快捷鍵
[Ctrl]+b ddetach當前的 tmux session
[Ctrl]+b "垂直分割兩個 pane
[Ctrl]+b %水平分割兩個 pane
[Ctrl]+b [←/↓/↑/→]切換 pane
[Ctrl]+b x關閉當前的 pane
[Ctrl]+b c建立新的 window
[Ctrl]+b n移動到下個 window
[Ctrl]+b p移動到上個 window
[Ctrl]+b <index>移動到第<index>個 window
[Ctrl]+b &關閉當前的 window
[Ctrl]+b w打開操作面板,可以瀏覽所有 tmux session

參考連結:
A beginner's guide to tmux

2024年6月28日 星期五

[Linux] vim 使用筆記

模式 (mode)

一開始認識 vim就要先了解其不同的模式:

  • 普通模式 (Normal Mode)
  • 插入模式 (Insert Mode)
  • 命令列模式 (Command Line Mode)
  • 可視模式 (Visual Mode)

其中最常用是一般模式 (Normal Mode)、插入模式 (Insert Mode)及命令列模式 (Command Line Mode)。一開始進入 vim時的模式為普通模式, 其他模式都要經過普通模式進入,透過 Esc鍵返回。

普通模式 (Normal Mode)


游標移動
h or [←]游標向左移動一個字元
j or [↓]游標向下移動一個字元
k or [↑]游標向上移動一個字元
l or [→]游標向右移動一個字元
可以在指令前加上要執行指令的次數,例如 20l or 20[→],就可以往右移動 20個字元。
[Ctrl] + b or [PgUp]向上移動一頁 (backward)
[Ctrl] + f or [PgDn]向下移動一頁 (forward)
[Ctrl] + u 向上移動半頁 (upward)
[Ctrl] + d 向下移動半頁 (downward)
0 or [Home] 移動到此列的起始位置
$ or [End] 移動到此列最後面非空字元
^ 移動到此列最前面非空字元
+ 移動到下一列最前面的非空字元
- 移動到上一列最前面的非空字元
gg 移動到檔案的第一行
G 移動到檔案的最後一行
{number}G 可以移動到第 {number}行,例如 20G,可以移動到檔案第 20行
H 移動到目前顯示的第一行首字元
M 移動到目前顯示的中間一行首字元
L 移動到目前顯示的最後一行首字元
[Space] 向右移動一個字元
[Enter] 移動到下一行
{number}[Space]可以向右移動 {number}個字元,與[→]不同的是,[Space]會移動到下一行。 {number}[Enter]可以向下移動 {number}行。

搜尋與取代
/{string}向後搜尋 {string}字串
?{string}向前搜尋 {string}字串
n執行上一個搜尋操作
N反向執行上一個搜尋操作
s/{string1}/{string2}/g將此行的 {string1}取代成 {string2}
%s/{string1}/{string2}/g將檔案裡的 {string1}取代成 {string2}
%s/{string1}/{string2}/gc將檔案裡的 {string1}取代成 {string2},取代前需要確認

編輯
x刪除游標後面的字元
X刪除游標前面的字元
dd刪除游標所在的這一行
{number}X及 {number}x可以刪除游標前、後 {number}個字元。 {number}dd可以刪除游標往下 {number}行。
d1G刪除游標到第一行中的內容
dG刪除游標到最後一行的內容
d0刪除游標前的這一行的內容
d$刪除游標後的這一行的內容
yy複製游標所在的這一行 (yank)
{number}yy可以複製游標往下 {number}行。
y1G複製游標到第一行中的內容
yG複製游標到最後一行的內容
y0複製游標前的這一行的內容
y$複製游標後的這一行的內容
p在游標的後一行貼上
P在游標的前一行貼上
J將此行與下一行合成同一行
u回到上一個操作的狀態 (undo)
[Ctrl] + r回到下一個操作的狀態 (redo)
.重複上一個操作

插入模式 (Insert Mode)


進入插入模式
i在游標字元處前插入 (insert)
I從此行第一個非空字元前插入
a在游標字元處後插入 (append)
A從此行最後字元後插入
o插入新的下面一行 (open)
O插入新的上面一行
r進入取代模式,只取代一個字元 (replace)
R進入取代模式,直到離開

命令列模式 (Command Line Mode)


Command Line Mode指令
:w儲存目前檔案變更 (write)
:q離開 vim (quit)
:w!可以強制寫入唯讀檔案。:q!可以強制不儲存離開。
:wq儲存並離開
ZZ若檔案沒有修改,直接離開。若檔案有修改,儲存並離開
ZQ不儲存離開
:w {filename}將檔案另存到 {filename}
:r {filename}將另外一個檔案的內容加到游標位置的下一行
:! {command}暫時離開 vim並執行 {command}
vim 可以同時打開多個檔案進行編輯。ex: vim a.txt b.txt。
:files列出目前 vim所開啟的檔案
:n編輯下一個檔案
:N編輯上一個檔案

可視模式 (Visual Mode)


Visual Mode指令
v將游標經過的字元反白選擇
V將游標經過的行反白選擇
[Ctrl + v]以blcok的方式進行反白選擇
y複製選擇的內容
d刪除選擇的內容
p貼上選擇的內容

參考連結:
鳥哥私房菜 第九章、vim程式編輯器

2024年1月15日 星期一

com0com - Null modem emulator

官方網址:
https://com0com.sourceforge.net/

com0com可以在 Windows下虛擬出一組對接com port。

安裝完後,可用putty打開兩個com port進行測試是否可互傳訊息。


2022年9月15日 星期四

cURL 使用筆記

https://curl.se/

最近在工作上碰到有腳本使用 cURL來即時向 server請求資料,趁此紀錄一些其使用方法。

HTTP Request


curl -X [GET|POST|PUT|DELETE|PATCH] URL

-X 參數用來對 URL發出 HTTP request,後面帶入HTTP method。


curl -X [GET|POST|PUT|DELETE|PATCH] URL -x PROXY_ADDRESS:PROXY_PORT

-x 通過代理伺服器 PROXY_ADDRESS:PROXY_PORT使用 cURL。

2022年9月3日 星期六

jq - 輕量級 json解析工具

官方網址:

https://stedolan.github.io/jq
github
https://jqplay.org

最近工作上接觸到其他人寫的 script,使用 jq來將 curl所得到的 .json檔案解析成 .csv檔。
雖然目前只使用到 jq一點點功能,但還是趁此機會紀錄一下。

依照官網的範例,可透過 github的 api獲取 json格式的 jq最近 5個 commit資訊:

curl 'https://api.github.com/repos/stedolan/jq/commits?per_page=5'

使用 jq過濾 json:

curl 'https://api.github.com/repos/stedolan/jq/commits?per_page=5' | jq '.'

只取出第一個 commit的資訊:

curl 'https://api.github.com/repos/stedolan/jq/commits?per_page=5' | jq '.[0]'

取出所有 commit中的 sha資訊:

curl 'https://api.github.com/repos/stedolan/jq/commits?per_page=5' | jq '.[] | {sha: .sha}'

{
  "sha": "cff5336ec71b6fee396a95bb0e4bea365e0cd1e8"
}
{
  "sha": "f2ad9517c72f6267ae317639ab56bbfd4a8653d4"
}
{
  "sha": "c4d39c4d22f2b12225ca1b311708f7e084ad9ff8"
}
{
  "sha": "174db0f93552bdb551ae1f3c5c64744df0ad8e2f"
}
{
  "sha": "29cf77977ef52eec708982b19bf9d2ec17443337"
}


jqplay

也可以使用 jqplay的網站來嘗試 jq的輸出結果:


2022年4月17日 星期日

Chocolatey - Windows 軟體套件管理工具


官方網址
https://chocolatey.org

Chocolatey 可以讓 Windows以 command line的形式來安裝及管理軟體套件,類似
Linux使用的 APT。

使用Powershell 安裝


1. 以系統管理員權限執行 Powershell。

2. 在 PowerShell執行以下命令
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient). DownloadString('https://community.chocolatey.org/install.ps1'))

3. 重新開機。

4. 在 Powershell執行 choco,確認是否安裝成功。
choco

Chocolatey v1.1.0

Chocolately 操作


安裝套件,以 jq為例:
choco install jq

2022年4月6日 星期三

Hello CMake


Source

CMake
https://cmake.org/

Visual Studio Community 2019
https://visualstudio.microsoft.com

以建立一個名為HelloCMake的專案為例,在 HelloCMake的目錄新增 CMakeLists.txt
檔案及放入專案程式碼 HelloCMake.cpp,如下:

HelloCmake
├ ─ ─ ─ CMakeLists.txt
└ ─ ─ ─ HelloCMake.cpp


CMakeLists.txt
cmake_minimum_required(VERSION 3.23)

# set the project name
project(HelloCMake)

# add the executable
add_executable(HelloCMake HelloCMake.cpp)

cmake_minimum_required

指定 CMake最低版本需求。

project

設定專案名稱。

add_executable

從指定的 source來產生執行檔。

Build CMake


在 HelloCMake的目錄下建立名為 build的目錄。
mkdir build


切換到 build,執行 cmake命令並指定 CMakeLists.txt所在的目錄。
cd build
cmake ../

在產生完 CMake檔案的 build下開始編譯
cmake --build .

2021年9月10日 星期五

Windows Server 延長使用授權 - slmgr

參考網站
https://docs.microsoft.com/en-us/windows-server/get-started/activation-slmgr-vbs-options

Windows Server 評估版在過了使用期限後,還是可以透過 slmgr來延長。


透過 Win + R快捷鍵執行:

查看使用期限及剩餘可延長次數

slmgr.vbs /dlv

延長使用授權

slmgr.vbs /rearm

2021年5月5日 星期三

建置 Windows Debugger(WinDbg) 環境 via Serial Cable

本篇文章參考
Debugging Tools for Windows

其他WinDbg相關細節
建置 Windows Debugger(WinDbg) 環境 via USB 3.0 cable

Setup Target Computer

1. 使用 Device Manager確認 COM port number。

2. 使用系統管理員權限開啟command prompt,並輸入以下命令
bcdedit /debug on
bcdedit /dbgsettings serial debugport:n baudrate:115200
n為 COM port number。

3. 重新開機。

Setup and Use WinDbg

1. 開啟WinDbg
(C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\windbg.exe)

2. 點選"File" > "Kernel Debugging"

3. 標籤頁切換到"COM",並輸入 HOST端所連接的 COM port number。

3. 按下確定,開始執行WinDbg

2021年4月27日 星期二

iASL - ASL Optimizing Compiler and Disassembler

參考網站
ACPICA

Errors, Warnings, and Remarks

-ve
只回報Error,忽略Warning及Remark。

編譯 DSDT0000.dsl時只回報 Error iasl.exe -ve DSDT0000.dsl

AML Disassembler

-d <f1 f2 ...>
反組譯 AML檔案回 ASL(*.dsl)

反組譯 DSDT0000.bin回 DSDT0000.dsl 的ASL檔案 iasl.exe -d DSDT0000.bin

-e <f1 f2 ...>
在反組譯AML時,會遇到有些 unresolve external control method,用以指定含有其
external control method的 AML檔

反組譯DSDT0000.bin時,指定 SSDT0000.bin及 SSD10000.bin為含有其
external control method的AML檔
iasl.exe -e SSDT0000.bin SSD10000.bin -d DSDT0000.bin

指定所有 SSD*.bin為含有DSDT0000.bin external control method的AML檔
iasl.exe -e SSD*.bin -d DSDT0000.bin

2021年4月13日 星期二

asl.exe - Microsoft ASL Compiler

參考網站
microsoft-asl-compiler

Windows在使用 ACPI table時,不是每次都從記憶體存取,而是暫存在其登錄檔,透過登錄檔
來存取。可以透過 regedit登錄檔編輯程式來讀取修改 ACPI的登錄檔,其路徑為
Computer\HKEY_LOCAL_MACHINE\HARDWARE\ACPI

而 Microsoft的 WDK提供 asl.exe可以用來取出或取代其中的 ACPI table。

/tab=<TabSig>
將 <TabSig>的 AML反組譯回 ASL檔案,<TabSig>可從 regedit查詢。

取出 DSDT.asl
asl.exe /tab=DSDT

取出所有 ACPI table並存成 ACPI.txt
asl.exe /tab=*

/nologo
不印出logo banner的訊息。

Example 1: without /nologo
asl.exe /tab=DSDT
Output 1:
Microsoft ACPI Source Language Assembler Version 5.0.0NT
Copyright (c) 1996,2014 Microsoft Corporation
Compliant with the ACPI 5.0 Specification

Example 2: with /nologo
asl.exe /nologo /tab=DSDT
Output 2:


/c
將 table存成 .bin檔

取出 DSDT的 AML並存成 DSDT0000.bin
asl.exe /c /tab=DSDT

ACPI-table-load usage


只能用於已存在在系統中的ACPI table

/loadtable
將ACPI table load進 registry中

將 AMLFile load進 registry中
asl.exe /loadtable [-v] [-d] <AMLFile>
-v: verbose mode
-d: 移除先前所 load的 AML檔

在 Windows下修改及替換 DSDT或SSDT table

1. 以DSDT為例,先使用 asl.exe將 DSDT的 AML從 registry取出
asl.exe /tab=DSDT /c
會得到 DSDT0000.BIN。

2. 使用 ASL compiler iasl.exe將 DSDT0000.bin 反組譯。
iasl.exe -d DSDT0000.bin
若是反組譯成功,就會產生 DSDT0000.dsl的 ASL檔。
有時會遇到缺少 external control method的情況導致反組譯失敗,這時就可以使用 -e
參數來 include包含 external control method的 AML檔。

EX: Include SSD0及 SSD1
iasl.exe -e SSD00000.bin SSD10000.bin -d DSDT0000.bin
或是使用 -fe來 include描述 external control method的檔案。

3. 依照需求修改 DSDT0000.dsl

EX: 在 DSDT0000.dsl中加入 Serial port的定義

DefinitionBlock ("", "DSDT", 2, "ACRSYS", "ACRPRDCT", 0x00000000)
{
    External (_GPE.HLVT, MethodObj)    // 0 Arguments
    External (_PR_.BGIA, UnknownObj)
    External (_PR_.BGMA, UnknownObj)
    External (_PR_.BGMS, UnknownObj)
......
    OperationRegion (SERP, SystemIO, 0x3F8, 0x8)
    Field (SERP, ByteAcc, NoLock, Preserve)
    {
      THRR, 8,
      , 8,
      , 8,
      , 8,
      , 8,
      LSRR, 8,
      MSRR, 8
    }

    Name (SS1, Zero)
    Name (SS2, Zero)
......

4. 使用 iasl.exe compile修改過的DSDT0000.dsl
iasl.exe -ve DSDT0000.dsl
成功後就會產生 DSDT0000.aml。
-ve為忽略 warning及 remark,只顯示error。

5. 將DSDT0000.aml load到 registry
asl.exe /loadtable DSDT0000.aml

6. 啟動 Windows test mode
bcdedit /set testsigning on
重新開機以後就能生效。

2021年3月20日 星期六

The Blue Nowhere Developer Software Select


程式碼編輯器 (Code Editor)


Visual Studio Code
https://code.visualstudio.com

Buckup
Sublime Text
https://www.sublimetext.com

Notepad++
https://notepad-plus-plus.org


內容比較軟體


Beyond Compare
https://www.scootersoftware.com


Hex Editor


HxD
https://mh-nexus.de


Git GUI


TortoiseGit
https://tortoisegit.org


網頁瀏覽器 (Web browser)


Firefox
https://www.mozilla.org


壓縮軟體


7-Zip
https://www.developershome.com/7-zip/


映像檔掛接工具


Virtual CloneDrive
https://www.elby.ch/


檔案總管


Q-Dir
https://www.softwareok.com/


SSH Client


MobaXterm
https://mobaxterm.mobatek.net/

2020年9月19日 星期六

DISM - Windows 映像檔佈署工具

DISM 是Windows下用以佈署映像檔的工具。

/Split-image

將 .wim檔分割為多個 WIM(.swm)檔案。以 /FileSize來指定 .swm檔的檔案大小上限。
/CheckIntegrity 用以偵測並追蹤 WIM檔案毀損狀況。

dism /Split-Image /ImageFile:"<WIM_PATH>" /SWMFile:"<SWM_PATH>"
/FileSize:<MB> [/CheckIntegrity]


分割 install.wim
在製作 Windows USB開機隨身碟時,會遇到 install.wim檔案大小大於 4GB的情況。
目前 UEFI系統只支援 FAT32格式,而 FAT32有單一檔案大小不能超過 4GB的限制,
所以如果要不透過其他工具直接製作 USB開機碟,可以將 install.wim分割成多個
檔案來避開限制,使用分割出的 .swm檔取代原本的 .wim檔。


2020年8月30日 星期日

USB多重開機選單製作工具(2) - Ventoy


官方網址

https://www.ventoy.net
https://github.com/ventoy

與前篇介紹的YUMI一樣,Ventoy也是製作USB多重開機選單的工具,但是使用上我覺得更
方便,只需要製作完Ventoy的USB碟,就可以直接把ISO檔放進USB空間中使用。


Install: 製作Ventoy的開機USB碟

Update: 更新USB碟的Ventoy版本

2019年4月25日 星期四

USB多重開機選單製作工具 - YUMI


官方網址

https://www.pendrivelinux.com
https://www.pendrivelinux.com/yumi-multiboot-usb-creator

YUMI可在USB儲存裝置上建立多重開機選單,目前支援建立Windows 10、Ubuntu等常見OS選
單,也支援像是MemTest86的系統測試工具。


Step 1: 選擇USB磁碟磁區
Step 2: 選擇要加入的OS
Step 3: 選取OS ISO檔的路徑

2018年10月15日 星期一

檔案加密軟體 - AxCrypt


官方網址

https://www.axcrypt.net

測試系統

Windows 10

使用版本

AxCrypt2.1.1560.0

AxCrypt 為一套開源的檔案加密軟體,有釋出免費、付費及商用版本。
其免費版本就含有使用AES-128的檔案加解密功能。

安裝完成後,AxCrypt 會要求使用者提供帳密來做加解密使用。
接者,就可在所要加密的檔案上按下右鍵,選擇功能表中的AxCrypt來加密檔案。



AxCrypt會將加密過的檔案顯示在其列表中。



使用者也可以"右鍵 -> Remove from list but keep file secured" 來移除列表的檔案但保持其加密的狀態。



若要在其他裝置使用加密檔案,只需在該裝置上安裝AxCrypt,並使用同組帳密登入即可。

2018年8月7日 星期二

建置 Windows Debugger(WinDbg) 環境 via USB 3.0 cable

本篇文章參考
Debugging Tools for Windows

Preparation

Host Computer (with USB3.0 port)
  - windows-10-sdk
Target Computer (with USB3.0 Debug port)
USB 3.0 Debug Cable (A-A crossover, no VBus)

Setup Target Computer

1. 使用UsbView.exe來確認該port是否能Debug(Is Port Debug Capable: yes)。

2. 紀錄該port的xHCI Controller的Bus、Device和Function的number。

3. 使用系統管理員權限開啟command prompt,並輸入以下命令
bcdedit /debug on
bcdedit /dbgsettings usb targetname:TargetName
TargetName為自行命名。

4. 將step2 所記下的資訊帶入以下命令
bcdedit /set "{dbgsettings}" busparams b.d.f

5. 重新開機。

Setup Host Computer

1. 安裝Windows SDK

2. 安裝WinDbg的USB driver
(預設路徑:C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\usb)


使用WinDbg

1. 開啟WinDbg
(C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\windbg.exe)

2. 點選"File" > "Kernel Debugging"

3. 標籤頁切換到"USB",並輸入Setup Target Computer step 3的TargetName


3. 按下確定,開始執行WinDbg


設定Symbols

https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/symbol-path

.sympath
設定Debugger所要參考的symbol file的位置。

.sympath srv*c:\MyServerSymbols*https://msdl.microsoft.com/download/symbols 使用Microsoft Public Symbol Server https://msdl.microsoft.com/download/symbols 所提供的symbol並把local端的c:\MyServerSymbols 用來存放symbols。

或使用 "File" > "Symbol File Path ..." (Ctrl+S) 來設定。


2020/06/02 Note
最近嘗試用這樣的方式設symbol path會遇到ERROR_INTERNET_CANNOT_CONNECT無法 load symbol的情況。
所以參考how-to-specify-symbol-file-locations-from-the-command-line的方式,將
_NT_SYMBOL_PATH設成系統的環境變數,就能正常load到symbol。


Modules

lm
列出已載入的Modules

m PATTERN - 指定符合PATTERN的Module
ex: lm m a* 為列出所有a開頭的Modules

.reload
重新從Symbol Path載入Modules