解混淆/脱壳工具 - De4dot
De4dot
- 參數詳解
- Options
- File options
- Deobfuscator options
- 語法例子
- 使用
- 查殼
- dnspy
- 解混淆
- 運行軟件
- 解混淆后查殼
- 解混淆后dnspy
參數詳解
吾愛破解有比較詳細的帖子
下載鏈接
CSDN
GitHub
愛盤
Options
//全局參數
-r DIR Scan for .NET files in all subdirs
//搜索當前目錄以及子目錄中所有程序集并去混淆
-ro DIR Output base dir for recursively found files
//同-r參數,但是并不搜索子目錄,僅限當前目錄
-ru Skip recursively found files with unsupported obfuscator
//跳過查找到帶有de4dot不支持的混淆器的程序集
-d Detect obfuscators and exit
//查明混淆器名稱,然后退出de4dot
–asm-path PATH Add an assembly search path
//增加一個被搜索的目錄
–dont-rename Don’t rename classes, methods, etc.
//禁止所有重命名(比如類,方法,字段,屬性,資源…)
–keep-names FLAGS
Don’t rename n(amespaces), t(ypes), p(rops), e(vents), f(ields), m(ethods), a(rgs), g(enericparams), d(elegate fields). Can be combined, eg. efm
//禁止對指定內容重命名。比如我不想重命名命名空間、類名和方法名,那么我可以添加這樣一個參數"–keep-names ntm",這里的n代表namespaces,t代表types,m代表methods
–dont-create-params
Don’t create method params when renaming
//在重命名時不創建方法參數
–dont-restore-props
Don’t restore properties/events
//不還原屬性和事件
–default-strtyp TYPE
Default string decrypter type
//與–strtyp類似
–default-strtok METHOD
Default string decrypter method token or [type::][name][(args,…)]
//與–strtok類似
–no-cflow-deob No control flow deobfuscation (NOT recommended)
//不還原控制流混淆(舉個例子,ConfuserEx的恐怖的switch,幾乎只能讓程序來還原)
–only-cflow-deob
Only control flow deobfuscation
//僅還原控制流混淆
–load-new-process
Load executed assemblies into a new process
//將程序集放在新進程中進行解混淆處理
–keep-types Keep obfuscator types, fields, methods
//保留混淆器類、字段和方法
–preserve-tokens
Preserve important tokens, #US, #Blob, extra sig data
//保持tokens不變,包括#US, #Blob, extra sig data。比如有個方法的token是0x06000008,不使用這個選項,去混淆之后某方法的token可能會變成0x06000004(比如這之前有4個無效方法被de4dot移除了),使用這個選項之后,無論怎樣,方法的token始終是0x06000008
–preserve-table FLAGS
Preserve rids in table: tr (TypeRef), td (TypeDef), fd (Field), md (Method), pd (Param), mr (MemberRef), s (StandAloneSig), ed (Event), pr (Property), ts (TypeSpec), ms (MethodSpec), all (all previous tables). Use - to disable (eg. all,-pd). Can be combined: ed,fd,md
//保持表中指定種類的tokens不變。比如"–preserve-table ed,fd,md","–preserve-table all"
–preserve-strings
Preserve #Strings heap offsets
//保持#Strings堆偏移不變
–preserve-us Preserve #US heap offsets
//保持#US堆偏移不變
–preserve-blob Preserve #Blob heap offsets
//保持#Blob堆偏移不變
–preserve-sig-data
Preserve extra data at the end of signatures
//保持額外的簽名數據偏移不變
–one-file Deobfuscate one file at a time
//一次只對一個程序集去混淆
-v Verbose
//顯示詳細信息
-vv Very verbose
//顯示更多詳細信息(?應該是,反正和-v一樣都會顯示信息)
-h Show this help message
//顯示幫助,就是我翻譯的這些內容
–help Same as -h
//同-h
File options
//局部參數
-f FILE Name of .NET file
//指定被去混淆的程序集的路徑(可以是相對路徑或者絕對路徑)
-o FILE Name of output file
//指定輸出去混淆后的程序集的路徑(可以是相對路徑或者絕對路徑)
-p TYPE Obfuscator type (see below)
//指定混淆器類型(下面寫了)
–strtyp TYPE String decrypter type
//指定如何使用字符串解密器(字符串解密器指的是被混淆程序集中的一個方法)
–strtok METHOD String decrypter method token or [type::][name][(args,…)]
//指定哪一個方法作為字符串解密器
Deobfuscator options
//混淆器參數(我就不翻譯了,因為有些沒用過,不是很常用)
//比如--un-name REGEX Valid name regex pattern (^[a-zA-Z_<{$][a-zA-Z_0-9<>{}$.-]*$)`
//全大寫單詞代表一個參數,最尾處有一個括號,里面代表默認參數,如果你不填這個參數,那么de4dot認為你輸入了–un-name ^[a-zA-Z_<{$][a-zA-Z_0-9<>{}$.-]*$`,因為這是默認的
//這里有個地方要注意,REGEX的內容一定要用""包起來,比如–un-name ^就是無效的,–un-name "^"是有效的
//而BOOL只要直接輸入True/False,比如–an-methods True
語法例子
de4dot.exe -r c:\my\files -ro c:\my\output de4dot.exe file1 file2 file3 de4dot.exe file1 -f file2 -o file2.out -f file3 -o file3.out de4dot.exe file1 --strtyp delegate --strtok 06000123使用
查殼
常見的比如PEiD、Exeinfo PE
dnspy
混淆后,閱讀性極差
解混淆
運行軟件
以控制臺界面,在所在目錄打開運行
可通過Shift+右擊,選擇在此處打開PowerShell窗口
需要解混淆的文件,放在同目錄下面比較方便,不放的話,輸入絕對路徑也行
解混淆后查殼
解混淆我一查,還是有混淆啊!尷尬啊
不過還是有變的信息啦?
解混淆后dnspy
總結
以上是生活随笔為你收集整理的解混淆/脱壳工具 - De4dot的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [vue] 分别说说vue能监听到数组或
- 下一篇: L298N 驱动模块的应用