解混淆/脱壳工具 - De4dot
De4dot
- 參數(shù)詳解
- Options
- File options
- Deobfuscator options
- 語法例子
- 使用
- 查殼
- dnspy
- 解混淆
- 運(yùn)行軟件
- 解混淆后查殼
- 解混淆后dnspy
參數(shù)詳解
吾愛破解有比較詳細(xì)的帖子
下載鏈接
CSDN
GitHub
愛盤
Options
//全局參數(shù)
-r DIR Scan for .NET files in all subdirs
//搜索當(dāng)前目錄以及子目錄中所有程序集并去混淆
-ro DIR Output base dir for recursively found files
//同-r參數(shù),但是并不搜索子目錄,僅限當(dāng)前目錄
-ru Skip recursively found files with unsupported obfuscator
//跳過查找到帶有de4dot不支持的混淆器的程序集
-d Detect obfuscators and exit
//查明混淆器名稱,然后退出de4dot
–asm-path PATH Add an assembly search path
//增加一個(gè)被搜索的目錄
–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
//禁止對(duì)指定內(nèi)容重命名。比如我不想重命名命名空間、類名和方法名,那么我可以添加這樣一個(gè)參數(shù)"–keep-names ntm",這里的n代表namespaces,t代表types,m代表methods
–dont-create-params
Don’t create method params when renaming
//在重命名時(shí)不創(chuàng)建方法參數(shù)
–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)
//不還原控制流混淆(舉個(gè)例子,ConfuserEx的恐怖的switch,幾乎只能讓程序來還原)
–only-cflow-deob
Only control flow deobfuscation
//僅還原控制流混淆
–load-new-process
Load executed assemblies into a new process
//將程序集放在新進(jìn)程中進(jìn)行解混淆處理
–keep-types Keep obfuscator types, fields, methods
//保留混淆器類、字段和方法
–preserve-tokens
Preserve important tokens, #US, #Blob, extra sig data
//保持tokens不變,包括#US, #Blob, extra sig data。比如有個(gè)方法的token是0x06000008,不使用這個(gè)選項(xiàng),去混淆之后某方法的token可能會(huì)變成0x06000004(比如這之前有4個(gè)無效方法被de4dot移除了),使用這個(gè)選項(xiàng)之后,無論怎樣,方法的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
//保持額外的簽名數(shù)據(jù)偏移不變
–one-file Deobfuscate one file at a time
//一次只對(duì)一個(gè)程序集去混淆
-v Verbose
//顯示詳細(xì)信息
-vv Very verbose
//顯示更多詳細(xì)信息(?應(yīng)該是,反正和-v一樣都會(huì)顯示信息)
-h Show this help message
//顯示幫助,就是我翻譯的這些內(nèi)容
–help Same as -h
//同-h
File options
//局部參數(shù)
-f FILE Name of .NET file
//指定被去混淆的程序集的路徑(可以是相對(duì)路徑或者絕對(duì)路徑)
-o FILE Name of output file
//指定輸出去混淆后的程序集的路徑(可以是相對(duì)路徑或者絕對(duì)路徑)
-p TYPE Obfuscator type (see below)
//指定混淆器類型(下面寫了)
–strtyp TYPE String decrypter type
//指定如何使用字符串解密器(字符串解密器指的是被混淆程序集中的一個(gè)方法)
–strtok METHOD String decrypter method token or [type::][name][(args,…)]
//指定哪一個(gè)方法作為字符串解密器
Deobfuscator options
//混淆器參數(shù)(我就不翻譯了,因?yàn)橛行]用過,不是很常用)
//比如--un-name REGEX Valid name regex pattern (^[a-zA-Z_<{$][a-zA-Z_0-9<>{}$.-]*$)`
//全大寫單詞代表一個(gè)參數(shù),最尾處有一個(gè)括號(hào),里面代表默認(rèn)參數(shù),如果你不填這個(gè)參數(shù),那么de4dot認(rèn)為你輸入了–un-name ^[a-zA-Z_<{$][a-zA-Z_0-9<>{}$.-]*$`,因?yàn)檫@是默認(rèn)的
//這里有個(gè)地方要注意,REGEX的內(nèi)容一定要用""包起來,比如–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
混淆后,閱讀性極差
解混淆
運(yùn)行軟件
以控制臺(tái)界面,在所在目錄打開運(yùn)行
可通過Shift+右擊,選擇在此處打開PowerShell窗口
需要解混淆的文件,放在同目錄下面比較方便,不放的話,輸入絕對(duì)路徑也行
解混淆后查殼
解混淆我一查,還是有混淆啊!尷尬啊
不過還是有變的信息啦?
解混淆后dnspy
總結(jié)
以上是生活随笔為你收集整理的解混淆/脱壳工具 - De4dot的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [vue] 分别说说vue能监听到数组或
- 下一篇: L298N 驱动模块的应用