dnspy的详细配置,dnspy如何过滤反编译之后的乱码,dnspy如何反编译表达式目录树
dnSpy应该是目前使用最多的.net反编译工具。很多情况下反编译C#代码非常方便,特别是查找基类,子类。搜索一些class,方法。接口,非常方便。比ILspy好很多。而且dnspy是可以配置的。
如果要dnSpy非常干净地显示反编译之后的代码,可以看我具体的配置:
第一张是效果图,过滤一个具体的关键词筛选的时候可以使用【全词匹配】,可以在所有的.net framework中查找你需要寻找的那个关键字,不区分大小写。
右侧底部的这个搜索框是可以配置的,而且有时候很容易被隐藏掉,需要“上拉”才能显示出来。隐藏得比较深。
第二张图:常规情况下,默认sndpy反编译出来会有很多垃圾注释。红色框部分都是我们不需要的,会干扰我们分析代码。如何去掉这些注释的干扰,请看第三张图。
第三张图:菜单导航栏 -> 视图 ->选项 ; 反编译器 -> C# || IL 设置如下即可。有时候为了查看表达式树的内部结构,我们一般不勾选 Expression Tree。查看ExpressionTree内部结构图,图4那样。
第四张图:默认情况下ILSpy要查看表达式目录树的内部实现,是看不到的,需要切换C#版本号,而dnspy更加简洁。直接取消掉ExpressionTree上面勾选即可。
取消对ExpressionTree的反编译,就是上面取消勾选“ExpressionTree”就是下面这种:
勾选 反编译 ExpressionTree 之后,效果如下,看到的是表达式目录树原始的样子:Expression<Func<People, bool>> lambda = (People x) => x.Id.ToString().Equals("5");
大家可以测试一下。
第五张图:一个经常需要用到的工具,就是查看某个类的子类。比如MVC5中的Action返回结构经常是ViewResult(); 除了这个返回值之外,它其实还可以返回所有基于ActionResult的子类。
还一个功能就是 重新加载所有程序集。其实dnspy是有这个功能的。
通过以上对dnspy的配置,基本上可以替代我们日常的反编译工具了。
唯一需要注意的是,exe文件被dnspy打开之后,就是独占的状态,会导致visual studio 2017无法重新编译生成exe。
需要退出dnspy才行。
另外,经常看见博客园中有人丢出一些类图。分析开源项目的框架,继承的一些关系。
比如像这种:
结合这种dnspy的反编译工具,把.net framework的类库摸一个dll反编译出 .sln 的解决方案文件,就可以用vs2017自带的组件“体系结构和分析工具”,
右键解决方案中“项目”——“在代码图中显示”,就可以像上面那样子去深度分析和实践面向对象程序设计了。理解别人的代码的底层实现和设计原理,会有比较大的帮助。
dnspy的详细配置,dnspy如何过滤反编译之后的乱码,dnspy如何反编译表达式目录树的更多相关文章
- Ext JS学习第十六天 事件机制event(一) DotNet进阶系列(持续更新) 第一节:.Net版基于WebSocket的聊天室样例 第十五节:深入理解async和await的作用及各种适用场景和用法 第十五节:深入理解async和await的作用及各种适用场景和用法 前端自动化准备和详细配置(NVM、NPM/CNPM、NodeJs、NRM、WebPack、Gulp/Grunt、G
code&monkey Ext JS学习第十六天 事件机制event(一) 此文用来记录学习笔记: 休息了好几天,从今天开始继续保持更新,鞭策自己学习 今天我们来说一说什么是事件,对于事件 ...
- 百度在线编辑器UEditor(v1.3.6) .net环境下详细配置教程之更改图片和附件上传路径
本文是接上一篇博客,如果有疑问请先阅读上一篇:百度在线编辑器UEditor(v1.3.6) .net环境下详细配置教程 默认UEditor上传图片的路径是,编辑器包目录里面的net目录下 下面就演示如 ...
- POM详细配置
POM的全称是“ProjectObjectModel(项目对象模型)”. pom.xml详解 声明规范 <projectxmlns="http://maven.apache.org/P ...
- squid透明代理+iptables防火墙,多网卡详细配置
squid透明代理+iptables防火墙详细配置 看到很多人都在不停地问iptables+squid做透明代理的问题,鄙人不才,斗胆在此做统一解答.如有任何纰漏还望各位批评指教. ========= ...
- Spring Security3详细配置
Spring Security3详细配置 表名:RESOURCE 解释:资源表备注: 资源表 RESOURCE(资源表) 是否主键 字段名 字段描述 数据类型 长度 可空 约束 缺省值 备注 是 ID ...
- 转载 - Struts2 拦截器详细配置过程
出处:http://www.blogjava.net/zzzlyr/archive/2009/10/12/297998.html Struts2 拦截器详细配置过程 1:所有拦截器的超级接口Inter ...
- 11.IntelliJ IDEA详细配置和使用教程(适用于Java开发人员)
转自:https://blog.csdn.net/chssheng2007/article/details/79638076 前言 正所谓工欲善其事必先利其器,对开发人员而言若想提高编码效率,一款高效 ...
- IntelliJ IDEA详细配置和使用教程(适用于Java开发人员)
关闭Intellij IDEA自动更新在File->Settings->Appearance & Behavior->System Settings->Updates下 ...
- IDEA详细配置+优秀插件
目录 IDEA破解 Settings配置 配置 settings 字体 关闭IDEA更新 设置IDEA打开为项目选择界面 自动导入包配置 显示方法的分割线 滚轮设置字体大小 智能提示忽略大小写 Tab ...
随机推荐
- <Android Framework 之路>BootAnimation(2)
前言 上一篇主要讲解了BootAnimation是从何而来,如何启动,从开机,到SurfaceFlinger服务起来,然后到执行开机动画,如果要深入的看里面的代码,是需要花一定的时间的,我们旨在了解大 ...
- OSGEarth加载 geoserver 发布 TMS
geoserver配好数据并用自带的gwc切片好后, 访问 http://localhost:9999/geoserver/gwc/service/tms/1.0.0/ 在OsgEarth的earth ...
- ORM(Object Relational Mapping)框架
ORM(Object Relational Mapping)框架 ORM(Object Relational Mapping)框架采用元数据来描述对象一关系映射细节,元数据一般采用XML格式,并且存放 ...
- JavaScript中的XMLHttpRequest与WebAPI
JavaScript中的XMLHttpRequest与WebAPI它仅仅是一种客户端与服务端的关系.JavaScript中的XMLHttpRequest负责在客户端发起请求,而Web API负责在服务 ...
- SQL Server ->> Memory Allocation Mechanism and Performance Analysis(内存分配机制与性能分析)之 -- Minimum server memory与Maximum server memory
Minimum server memory与Maximum server memory是SQL Server下配置实例级别最大和最小可用内存(注意不等于物理内存)的服务器配置选项.它们是管理SQL S ...
- Lua的协同程序初探
Content: 前两天把Lua的协同程序概念看了一下,不是很懂,只能说<Programming In Lua>中把它解释成线程让人很好的理解起来,但是真正去看的时候,收获并不是很大.第一 ...
- June 20th 2017 Week 25th Tuesday
Care and diligence bring luck. 谨慎和勤奋,带来好运气. In my opinion, care and diligence may just gurantee us a ...
- Graph 133. Clone Graph in three ways(bfs, dfs, bfs(recursive))
Clone an undirected graph. Each node in the graph contains a label and a list of its neighbors. OJ's ...
- CRUD是什么?数据结构、增查删改
http://blog.csdn.net/penginpha/article/details/6920444 CRUD是指在做计算处理时的增加(Create).查询(Retrieve)(重新得到数据) ...
- oracle数据库恢复归档脚本
cat restorearch1.sh rman target / << EOFRUN {SET ARCHIVELOG DESTINATION TO '/archlog1/db2_arch ...