Ghidra 竟然是 美國國家安全局 NSA 自己做的

https://github.com/nationalsecurityagency/ghidra

Ghidra 是由美國國家安全局研究理事會創建和維護的軟體逆向工程 (SRE) 框架 。該框架包含一套功能齊全的高階軟體分析工具,使用戶能夠在包括 Windows、macOS 和 Linux 在內的各種平台上分析已編譯的程式碼。其功能包括反彙編、彙編、反編譯、圖形化和腳本編寫,以及數百種其他特性。 Ghidra 支援多種處理器指令集和可執行檔格式,並可在使用者互動和自動化模式下運作。使用者還可以使用 Java 或 Python 開發自己的 Ghidra 擴充元件和/或腳本。

為了支援美國國家安全局 (NSA) 的網路安全任務,Ghidra 的開發旨在解決複雜 SRE 專案中的擴展和團隊協作問題,並提供一個可自訂和可擴展的 SRE 研究平台。 NSA 已將 Ghidra 的 SRE 功能應用於各種問題,包括分析惡意程式碼,並為 SRE 分析師提供深入的洞察,幫助他們更好地了解網路和系統中的潛在漏洞。

如果您是美國公民,並且對這類專案感興趣,例如為美國國家安全局開發 Ghidra 和其他網路安全工具,以幫助保護我們的國家及其盟友,請考慮申請加入 我們
還有 PEView / PEViewAI / PEStudio ...

給不太懂 assembly 的人用
cruiseton wrote:
直接問了 ChatGPT
any windows software that can analyse a exe file and try to figure out its command line parameters ?                     中文
有,而且如果你的目的是真正想「分析一个 EXE,尽量猜出它支持哪些命令列参数」,Windows 上有几款工具很适合。
我最推荐这几个

软件 主要用途 难度
Detect It Easy (DIE) 判断 EXE 是什么编译器/语言、是否加壳 ⭐
Sysinternals Strings 从 EXE 找出 --xxx、/xxx、-xxx、Usage/Help 等文字 ⭐
Process Monitor (Procmon) 观察程序实际被其他程序用什么参数启动 ⭐⭐
Ghidra 反汇编/反编译,深入分析参数解析代码 ⭐⭐⭐⭐
x64dbg 动态调试,直接观察程序如何处理命令列参数 ⭐⭐⭐⭐
最简单的方法:Strings
先用 Sysinternals Strings 扫描 EXE。
例如:
strings.exe xxx.exe | findstr /i "help usage option command"
或者直接:
strings.exe xxx.exe | findstr /i /c:"--" /c:"/" /c:"-"
有时候可以直接找到:
Usage: xxx.exe [options]
-h
--help
-i
--input
-o
--output
--config
--verbose
/silent
/install
/uninstall
这种情况下基本就能猜出参数了。
如果 EXE 没有明显的文字
这时候我会推荐 Ghidra。
它可以反编译 EXE,然后搜索:
GetCommandLineW
CommandLineToArgvW
__argv
argv
argc
再往下追踪参数比较代码。
例如可能发现类似:
if (strcmp(argv[1], "--config") == 0)
或者:
if (wcscmp(arg, L"/silent") == 0)
这样就可以比较可靠地把参数找出来。
一个非常实用的方法:Procmon
如果这个 EXE 本来就是由另外一个程序启动的,Procmon 反而可能是最简单的。
例如你发现:
launcher.exe
↓
mytool.exe
你想知道 launcher.exe 到底给 mytool.exe 传了什么参数。
Procmon 可以看到类似:
Process Create
C:\Program Files\xxx\mytool.exe
--mode convert
--input "C:\test\a.dat"
--output "C:\test\b.dat"
这种情况甚至不需要逆向 EXE。
如果你想让我帮你判断某个 EXE
你可以直接把 EXE 文件上传给我。我可以先帮你从静态信息入手,看看里面有没有明显的:
--xxx
-xxx
/xxx
argc/argv
GetCommandLine
Usage
Help
错误提示
配置文件参数
输入/输出参数
隐藏参数
<button class="QZcSVW_Button shrink" type="button" data-color="primary" data-variant="outline" data-pill="" data-size="lg" aria-disabled="false" data-w-component="button">上傳檔案</button>
如果你有一个具体的 EXE,直接传上来通常比我泛泛介绍工具更有用——我可以告诉你应该从哪里下手,以及哪些参数最值得测试。


AI 文 就 不看了.
★★★ "我要留言" 不回, 只回 1 般回文. ★★★
cruiseton wrote:
Ghidra 竟然是 美國國家安全局 NSA 自己做的
https://github.com/nationalsecurityagency/ghidra
Ghidra 是由美國國家安全局研究理事會創建和維護的軟體逆向工程 (SRE) 框架 。該框架包含一套功能齊全的高階軟體分析工具,使用戶能夠在包括 Windows、macOS 和 Linux 在內的各種平台上分析已編譯的程式碼。其功能包括反彙編、彙編、反編譯、圖形化和腳本編寫,以及數百種其他特性。 Ghidra 支援多種處理器指令集和可執行檔格式,並可在使用者互動和自動化模式下運作。使用者還可以使用 Java 或 Python 開發自己的 Ghidra 擴充元件和/或腳本。
為了支援美國國家安全局 (NSA) 的網路安全任務,Ghidra 的開發旨在解決複雜 SRE 專案中的擴展和團隊協作問題,並提供一個可自訂和可擴展的 SRE 研究平台。 NSA 已將 Ghidra 的 SRE 功能應用於各種問題,包括分析惡意程式碼,並為 SRE 分析師提供深入的洞察,幫助他們更好地了解網路和系統中的潛在漏洞。
如果您是美國公民,並且對這類專案感興趣,例如為美國國家安全局開發 Ghidra 和其他網路安全工具,以幫助保護我們的國家及其盟友,請考慮申請加入 我們


IDA 賊棒,
Ghidra 賊肥.
★★★ "我要留言" 不回, 只回 1 般回文. ★★★
cruiseton wrote:
還有 PEView / PEViewAI / PEStudio ...
給不太懂 assembly 的人用


靜態分析 = 解剖 死人,
動態分析 = 解剖 活人,
你 覺的 1 般人 喜歡 哪 1 種.
★★★ "我要留言" 不回, 只回 1 般回文. ★★★
IQuit wrote:
靜態分析 = 解剖 死人,
動態分析 = 解剖 活人,
你 覺的 1 般人 喜歡 哪 1 種


死人變活人時的狀態很可能完全不同

當然是解剖死人比較簡單

但解剖死人時很可能什麼都查不出來 ( 如 exe 加過密 )

只能解剖 活人
cruiseton wrote:
死人變活人時的狀態很可能完全不同
當然是解剖死人比較簡單
但解剖死人時很可能什麼都查不出來 ( 如 exe 加過密 )
只能解剖 活人


有 腦科 醫生 說 :
曾經 未全麻 開腦,
手術中 開腦病人 全程清醒,
1 邊 手術開腦 1 邊 與 開腦病人 聊天 找 病因,
這 有問題 立刻 有 反應,
這 就是 解剖 活人 的 重要.

靜態分析 = 解剖 死人,
動態分析 = 解剖 活人,

PS:
印像中 是 找 癲癇 病因.
★★★ "我要留言" 不回, 只回 1 般回文. ★★★
還是正常裝64位元 問題比較不會那麼多
翔翔帥哥NO1 wrote:
還是正常裝64位元 問題比較不會那麼多


因為 你 不知 32 位元 的 優點.
★★★ "我要留言" 不回, 只回 1 般回文. ★★★
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!