解混淆/脱壳工具 - De4dot

2023-11-11

参数详解

吾爱破解有比较详细的帖子
下载链接
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窗口
在这里插入图片描述
需要解混淆的文件,放在同目录下面比较方便,不放的话,输入绝对路径也行

de4dot.exe [同文件夹下要解混淆的文件名(或者绝对路径)] -o [解混淆后.exe(或者绝对路径)]

在这里插入图片描述
在这里插入图片描述

解混淆后查壳

解混淆我一查,还是有混淆啊!尴尬啊
不过还是有变的信息啦?
在这里插入图片描述

解混淆后dnspy

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解混淆/脱壳工具 - De4dot 的相关文章

  • 解决IDEA导入MAVEN项目,jar包没有引进来报Cannot resolve symbol 'Autowired'

    解决IDEA导入MAVEN项目 jar包没有引进来报Cannot resolve symbol Autowired 原因 IDEA的缓存导致 解决办法 找到项目所在文件夹 找到 idea文件夹 删掉 从新导入 就好了
  • Your account has been blocked. git更新代码时报错

    记录一下问题 原因解释 当前用户登录信息过期 在浏览器里登录gitlab后台 长时间没有重新登录 导致后端登录session失效 自动锁住用户账号 此时通过ssh下载也就无法更新代码 解决办法 在浏览器重新登录gitlab网站 然后重新更新
  • 基于 UML 的业务建模举例

    基于 UML 的业务建模 2011 05 30 作者 杨敏强 来源 网络 简介 对于管理流程咨询项目 大型信息化建设项目和套装管理软件实施项目 对业务环境的分析和理解对项目的成功至关重要 系统 全面理解 IT 系统所处的业务环境 可以帮助
  • CStatusBar技巧

    一 状态条控制的主要功能 状态条控制 Status Bar Control 比较容易理解 使用起来也比较简单 状态条是位于父窗口底部的一个水平子窗口 它可以被分成多个显示信息的小区域 其MFC中封装的CstatusBarCtrl控制类提供了
  • 专业CPU信息检测工具:CPU-Z

    今天小编为大家测试了一款轻量级的CPU处理器的测试工具 可以查看CPU的详细信息 以供各位同学们学习 一 简单介绍 CPU Z是一款非常流行的CPU检测软件 被广大用户所熟知 它是目前最受欢迎的CPU检测软件之一 除了Intel和AMD自带
  • 一直谈失败的经历、再谈谈成功的经历、做软件真的不赚钱吗?4周搞定一个定制B2C网上购物、后台订单管理系统

    总写失败的经历 可能会误导大家 大家会觉得吉日嘎拉是个失败王子 更是常败将军一样 百战百败一样 总战总败 也可能会对刚开始学习软件技术的人也会有一些消极的负面的影响 大部分人也会觉得我的开发水平 管理水平很糟糕一样 其实我也说不出来有啥独特
  • word怎么删除最后一页空白页

    1 将光标移动到最后一页的起始处 不停的按删除键 gt 我试了 无效 2 将光标定位在倒数第二页的末尾 直接按delete键进行删除 或者可以试试按住ctrl键再按delete键 gt 我试了 还是无效 3 将光标移动到最后一页 在菜单栏找
  • 一些比较好用的域名信息查询网站

    NSEC Lab 查询IP地址所在位置及可信程度 真人概率 的数值在50 以上 可以被认定为此IP的网页访问量基本由人类主动行为产生 分值愈高越真实 低于50 则有较高可能性是此IP的行为是机器人主导 ip地址归属地查询 可查询网站域名 解
  • 我放弃了VMware

    文章目录 哈哈哈 不得不说 有点儿标题狗的意思 不去写新闻真的屈才了 正如标题所说 我弃用了VMware 但是我使用上了WSL2 相对来说 wsl2使我不怎么担心我16G的内存不够用 其实 wsl也是虚拟技术的一种 但是相比VMware v
  • postman使用过程中body中的form-data,x-www-form-urlencoded,raw,binary的简单记录

    引言 初次使用postman不是很清楚怎么使用 就直接上手 不想看postman的使用文档 故而采用直接上手实验的方式 下面记录一下 body在使用的时候的四种类型 类型说明 form data 既可以上传键值对 也可以上传文件 当上传的字
  • docker 安装wiki.js 和wekan

    wiki js https blog csdn net vegas lee article details 122356646 wekan http t zoukankan com caihemm p 14446937 html
  • Xmind for Mac 绿色破解(包含激活序列码)

    下载地址 主程序 https www xmind cn xmind downloads xmind 8 update8 macosx dmg 破解补丁 https carrot ctfile com fs 11269771 30027815
  • 【Apifox Helper】自动生成接口文档,IDEA+Apifox懒人必备

    文章目录 前言 缘由 接口文档对接爽 整理起来真费脑 本文阅读时长 约10分钟 前置条件 1 IDEA开发工具 2 Apifox 不必要 主要目标 一秒生成接口文档 水图 IDEA中项目接结构图 生成到Apifox接口文档图 试用人群 1
  • Markdown基本语法

    Markdown基本语法 一 Markdown了解 二 基本语法 1 各级标题的写法 2 段落 3 字体样式 4 分隔线 5 下划线 6 脚注 7 列表 8 代码块 9 引用 10 图片插入 11 链接 12 表格 三 高级技巧 1 HTM
  • 软件项目经理的基本职责

    软件项目经理的基本职责 1 制定项目计划 并根据各种变化修改项目计划2 实施 项目的管理 开发 质量保证过程 确保客户的成本 进度 绩效和质量目标 3 制定有效的项目决策过程4 确保在项目生命周期中遵循是实施公司的管理和质量政策5 选择一个
  • 组合测试方法PK正交分析方法

    测试过程中 我们经常遇到需要覆盖多个变化参数的测试场景 如我们测试BS配置控制客户端组织资源远程配置一个设备时 进行一个设备通道视频参数设置的各种组合测试 如下图 多数情况下 类似于这种多组合测试时 老员工则是依靠经验去进行有针对性的测试
  • 使用禅道 api 添加用户完整流程与分析

    在使用禅道系统时 有时为了方便 需要与其他系统对接 如其他系统添加用户后可以直接同步到禅道系统 而不是在禅道系统重新添加一遍用户 禅道系统提供了二次开发的api 但是里面的内容并不详细 故笔者写这篇文章进行记录 这里先以 postman进行
  • Toad常用快捷键和缩写替换

    Toad常用快捷键 F8 调出以前执行的sql命令 F9 执行全部sql Ctrl T 补全table name 或者显示字段 alt 箭头上下 看sql history Ctrl Enter 直接执行当前选中的sql Ctrl Shift
  • android无线调试连接

    开发时 遇到一些设备无法通过USB线连接adb时 可以尝试使用wifi无线调试 首先 要确保手机和电脑在同一个局域网内 再到开发者选项中打开无线调试 并进入子页面 如下 图一 无线调试设置界面 点击使用配对码配对设备 会弹出如下对话框 图二
  • 最新国内免费使用GPT-4分享,GPT语音对话,Midjourney绘画

    一 前言 ChatGPT3 5 GPT4 0 GPT语音对话 Midjourney绘画 相信对大家应该不感到陌生吧 简单来说 GPT 4技术比之前的GPT 3 5相对来说更加智能 会根据用户的要求生成多种内容甚至也可以和用户进行创作交流 然

随机推荐

  • JAVA报错:Variable 'vv' is accessed from within inner class, needs to be declared final

    内部类中使用但未声明的任何局部变量必须在内部类的正文之前明确分配
  • struts2中validator配置文件验证不起作用的问题解决办法、根源

    在采用struts的xml配置方式校验数据时 发现怎么也不起作用 无法按照正常流程 走到input指向的页面 一 问题的解决 很多博客说明了自己查找的方式 最后都指明了是因为配置文件格式不正确的原因 出现这种问题的时候 应该从下面4个部分考
  • SpringCloud Alibaba 教程

    SpringCloud Alibaba GitHub官方地址 https github com alibaba spring cloud alibaba blob master README zh md SpringCloud Alibab
  • 大学生团体天梯赛(第九届)

    题目地址 天梯赛 include
  • 憨批的语义分割重制版4——TF2 搭建自己的PSPNet语义分割平台

    憨批的语义分割重制版4 TF2 搭建自己的PSPNet语义分割平台 学习前言 什么是PSPNet模型 代码下载 PSPNet实现思路 一 预测部分 1 主干网络介绍 2 加强特征提取结构 3 利用特征获得预测结果 二 训练部分 1 训练文件
  • Vue3 之 readonly

    Vue3 之 readonly readonly 取得一个对象 反应性或普通 或ref并返回一个只读代理 访问的任何嵌套属性也将是只读的 传入普通对象等返回只读代理 传入普通数值或字符串不能变成只读 例如 readonly abc cons
  • 约束下的最优求解:拉格朗日乘数法和KKT条件

    机器学习面对各种各样的求解极值或者最值问题 现在对常见的求解极值或者最值问题思路做一下理论上的梳理 最值问题 简单了解最值问题 求最值是非常常见的问题 比如如何选择交通路线 最快地到达某地 如何用手头的钱买到分量最重的水果等等 我们可以把需
  • 解决An attempt was made to call a method that does not exit问题

    解决An attempt was made to call a method that does not exist The attempt was made from the following location 最近在学习springc
  • KPCA代码

    KPCA算法在TE过程故障诊断的应用 KPCA算法介绍 KPCA代码 数据预处理 计算核矩阵 中心化核矩阵 协方差矩阵的特征值分解 确定主元个数 将特征向量按特征值的大小顺序排序 单位化特征向量 重建测试数据 控制限的设定 故障数据的检测
  • HTML学习-表单语法、表单元素格式、单选框、多选框、按钮 2021-1-19

    表单语法 表单form action 表单提交的位置 可以是网站 也可以是一个请求处理地址 method post get 提交方式 get方式提交 我们可以再url中看到我们提交的信息 不安全 高效 post方式提交 比较安全 传输大文件
  • 利用setTimeout实现倒计时

    倒计时60秒 function countDown that count if count 0 that setData timeCountDownTop 获取验证码 counting false return that setData c
  • stata学习笔记

    受限被解释变量类型 普通断尾随机变量 断尾回归 对于分析的样本解释变量有上限或者下限的要求 零断尾计数数据 零断尾泊松回归和负二项回归 正整数 偶然断尾 自选择问题 样本选择模型 因为某些原因 导致被解释变量的取值有所不同 归并数据 归并T
  • 实例一 LINUX OS 简单制作 JAVA WEB + TOMCAT7.0 RPM 安装包

    1 安装rpmbuild 并配置环境 1 1 首先 你应该检查 rpmbuild 是否已经被安装在你的系统上 你将会利用这个工具从 spec 文件或 SRPM 组件创建 RPM 要检查它是否被安装了 请执行 rpmbuild showrc
  • 单链表、双链表以及环形单链表

    1 单链表 import java util Stack public class SingleLinkedListDemo public static void main String args 测试 HeroNode h1 new He
  • Python:奇数筛选

    今天第一次来csdn 写博客 还是蛮兴奋的 看了小甲鱼的Python视频 想照着他的写写看 功能 从一组数中筛选出奇数 def odd x return x 2 temp range 10 show filter odd temp list
  • 电脑分辨率高,plsql显示太小,怎么设置

    新电脑分辨率比较高 装了plsql developer后 打开发现整个界面的字体菜单非常小 如何设置 效果如下图片 解决方案 右键 gt 属性 gt 兼容性 gt 更改所有用户的设置 gt 更改高DPI设置 gt 高DPI缩放替代 gt 勾
  • unity3D代码控制脚本的停止和启动

    这个问题已经是我第三次在网上查资料了 同样的问题应该重复查询说明使用频率很高 就有理由应该记住 其实这个问题很简单 我认为可行的方法只有一种 就是获取脚本文件 然后把enable属性设置为true或者false就行了 ps 脚本文件可以堪称
  • 文本编辑器Vim常用操作和技巧

    文章目录 1 Vim常用操作 1 1 Vim简介 1 2 Vim工作模式 1 3 插入命令 1 4 定位命令 1 5 删除命令 1 6 复制和剪切命令 1 7 替换和取消命令 1 8 搜索和搜索替换命令 1 9 保存和退出命令 2 Vim使
  • CSMA/CA协议详解【计算机网络】

    读书笔记 2018年9月5日17 13 26 计算机网络 第六版 谢希仁 虽然CSMA CD协议已成功地应用于使用有线连接的局域网 但无线局域网能不能也使用CSMA CD协议呢 显然 这个协议的前一部分CSMA能够使用 在无线局域网中 在发
  • 解混淆/脱壳工具 - De4dot

    De4dot 参数详解 Options File options Deobfuscator options 语法例子 使用 查壳 dnspy 解混淆 运行软件 解混淆后查壳 解混淆后dnspy 参数详解 吾爱破解有比较详细的帖子 下载链接