dnspy使用教程(dnspy详细教程)
Spyder基本操作和使用技巧
本期小哥将简单讲解一下Spyder的基本使用方法,提高生产力的小技巧。
1. 界面简介点击Spyder即可直接启动(建议将快捷方式发送到桌面,方便以后使用)。初始界面如下:
简单介绍一下:代码编辑窗口【Editor】,在这里主要用于编写脚本代码;交互式shell【ipython console】,主要用于显示脚本运行结果,最重要的功能是与用户进行交互,用户可以快速验证代码运行结果是否符合预期;变量/帮助/绘图【Variable/Help/Plots】,用户可以在这里查看变量的详细信息(数值、类型、结构等),查看函数的Help说明,显示绘图结果等。
Spyder的默认操作界面同Matlab非常相似,而且功能差不多,有Matlab基础的朋友非常容易上手。
2. 修改界面为简体中文关于Spyder界面可以设置中文,小哥也是在构思本期推文时才发现的(不知是不是Spyder 4.+版本开始才有的),以前一直使用【English】模式。设置方法为:菜单栏 Tools> Preferences打开偏好设置窗口。
根据图中箭头指示操作即可设置软件界面为【简体中文】。小哥建议大家还是使用【English】,提升自己的英语使用能力还是不错的!
3. 修改显示主题Spyder可以根据用户喜好,设置各种显示风格、语法高亮主题等。修改显示主题在【Preferences】进行。
4. 运行与调试(Debug)操作运行代码操作:
代码调试操作:
除了使用以上按钮操作,还可以在【Editor】中点击鼠标右键选择需要的操作:
5. 绘图窗口弹出数据可视化中最重要的就是绘制各种图表,Spyder中的绘图结果默认在【Plots】中显示。
用户可以进行保存等一些基本操作。但是小哥更加喜欢使绘图结果在单独的窗口中显示,设置如下。
设置完成后,重启Spyder,运行代码,出现绘图结果窗口。
在这个窗口中可以对图片进行移动、放大、修改刻度参数等操作。但是!但是!但是!此类基本操作仅可作为调试代码时使用,不可依赖。编程进行数据可视化的优越性就在于一切参数均可通过简单的代码实现,无需重复多次操作!
小哥Tips:当鼠标指向图中某处时,窗口左下角会显示当前位置的坐标。这个坐标可用于在图中添加注释等操作!后期小哥会单独讲解如何操作!尽请期待!
6. Cell(小哥最爱)Spyder的【Editor】中有个非常实用的操作:Cell。操作方法如下
#%%
使用Cell可对代码分块,提升代码的层次感,选中目标Cell,代码高亮。而且Cell中的代码可以单独运行,调试代码时非常有用!!
7. Editor常用快捷键小哥总结了Spyder中的常用快捷键,如下所示。大家也可以根据自己的需要在 Preferences> Keyboardshortcuts中查询/自定义。
快捷键功能F5运行Shift+Enter运行当前CellCtrl+R替换文本Ctrl+1注释 / 取消注释Ctrl+D删除整行Ctrl+R查找替换Tab
缩进 /代码自动
补全或者提示
Shift+Tab取消缩进Ctrl+IHelp
8. 代码阅读器推荐在学习代码时,经常会参考阅读别人的代码,那就需要一个阅读工具。小哥推荐Notepad++,Notepad++小巧经典,免费使用,可支持众多语言格式,唯一的缺点就是颜值差了一点点。。。。。
追求颜值且电脑性能不错的朋友可以选择VScode,VScode虽然“体积”较大,但是功能强大,有兴趣的朋友可自由探索!
关于Spyder的更多用法,大家可以参考官方说明文档。
======================
公众号:牵引小哥讲Python
如何调试没有源码的.Net程序
在.Net开发过程中,经常会使用一些没有源码的第三方库,在代码出了问题时,如果怀疑跟该库的内部实现有关,我们该怎么办呢?首先,自然会想到反编译去看看代码或者联系作者,然而,有没有办法让我们在debug时进入这个第三方库,并看看里面在运行时到底发生了什么呢?本文就来介绍三种debug第三方库的办法,希望能够对你有所帮助。
先介绍一下我们的样例代码,下面这段代码比较简单,主要功能:从text.csv文件中读取每行数据并在控制台显示。其中用到的类CsvConfiguration,CsvReader,CsvDataReader来自第三方库CsvHelper,可以通过Nuget下载,这里假设我们想要调试CsvDataReader类的Read方法。完整的代码工程请参考:https://github/DerekLoveCC/Writings/tree/master/Article/DebugWithoutSourceCodeInDotNet/code
internal class Program { private static void Main(string[] args) { using (var textReader = new StreamReader(@".\test.csv")) { var config = new CsvConfiguration(CultureInfo.InvariantCulture) { HasHeaderRecord = false }; var csvReader = new CsvReader(textReader, config); var csvDataReader = new CsvDataReader(csvReader); while (csvDataReader.Read()) { for (int i = 0; i < csvDataReader.FieldCount; i++) { Console.Write(csvDataReader.GetString(i) + " "); } Console.WriteLine(" "); } } Console.Read(); } }方法一 使用dnSpy
dnSpy构建在ILSpy的基础上,开源免费,不但可以反编译代码而且能够调试,关于dnSpy的更多信息请访问:https://github/0xd4d/dnSpy ,下面我们一起来看看具体操作。
下载dnSpy,并根据目标程序是64还是32位,打开对应的dnSpy。本例中由于目标程序是32位的,所以打开了32位的dnSpy用dnSpy打开CsvHelper的dll,并找到CsvDataReader类的Read方法,点击左侧来设置调试断点,如下图所示:在菜单栏,选择调试->开始调试,或者F5打开要调试的exe,如下图所示,然后点击确定开始调试程序会自动在第二步中的断点处停下,接下来的调试工作跟在VS里基本一样了,包括快捷键也是一样的,如下图:总结,dnSpy功能很强大,对于的系统库也是可以的,从此调试无忧。此外,dnSpy可以附加到已运行的进程上,但是由于JIT的优化,使得这种方式可能无法获得想要的信息。关于编译优化和运行时优化,咱们以后再聊。
方法二 使用dotPeek + Visual StudioVisual Studio就无需介绍了,dotPeek是大名鼎鼎的JetBrains出品的免费工具,可以到:/d/file/gt/2023-09/5jnjnmvwcjp 下载。这种方法的基本思想就是把dotPeek作为VS的Symbol Server,下面是使用方法:
根据目标程序是64还是32位,打开对应的dotPeek,本例是32bit所以打开的是32位dotPeek用dotPeek打开CsvHelper的dll,然后在工具栏里点击“Start Symbol Server”按钮开启Symbol Server,如下图:如果是第一次打开symbol server会弹出下面的配置框,请根据你的情况选择,笔者选择了“All Assemblies”,以后如果想修改,可以在Tools->Options->Symbol Server里修改
现在就可以开始配置VS了,在VS里通过Tools->Options打开Options配置窗口,在Debugging/General下,取消“Enable Just My Code”, 并选中“Suppress JIT optimization on module load”,如下图:设置VS的Symbol Server,回到dotPeek,打开Tools->Options\Symbol Server,拷贝一下地址,然后在Visual Studio的Tools->Options\Debugging\Symbols, 添加一个新的地址,请查看下图:现在,在VS里就可以正常的debug了,第一次由于需要生成和加载pdb文件,所以有可能慢点。笔者测试效果图如下:总结,这种方式的优点是能够使用熟悉的VS
方法三 ResharperResharper也是JetBrains的付费产品,使用也很方便,请查看下面步骤:
安装Resharper之后,Resharper会作为VS的Extension,首先确保Enable了Resharper:首先用VS启动debug,打开Debug->Windows->Modules, 然后继续debug直到CsvHelper程序集加载右键点击CsvHelper程序集,选择“Load Symbols with ReSharper Decompiler”,等symbol加载完之后,就可以正常debug了,可以通过F11进入Read方法的内部,下面是一些相关截图总结,这种方式可以使用VS,但是Resharper插件可能拖慢VS
dnSpy——针对.NET程序的逆向工程工具
dnSpy是一款针对.NET程序的逆向工程工具,基于ILSpy发展而来的.Net程序集的编辑,反编译,调试神器。。该项目包含了反编译器,调试器和汇编编辑器等功能组件,而且可以通过自己编写扩展插件的形式轻松实现扩展。该项目使用dnlib读取和写入程序集,以便处理有混淆代码的程序(比如恶意程序)而不会崩溃。
dnSpy主要功能:
1、程序集编辑
2、反编译器
3、调试工具
4、Tabs及tabs分组
5、提供多主题
反编译工具Dnspy开发人员可以使用它反编译.NET代码,以了解它是如何工作的,学习或指导.NET语言的复杂性,提供一个更好的替代库的文档,恢复丢失或不可用的源代码,定位性能问题,分析依赖关系,检查混淆
支持.NET1.0,2.0,.NET3.5,.NET4.0等
还记得Spy++吗?在Win32时代,这个软件对于我们分析一个陌生软件的设计思路可谓立下汗马功劳。在如今的.NET时代,Reflector又成为每个严肃的.NET开发人员工具箱中必不可少的精髓工具之一。怎么样,请赶紧试锋吧。
同时界面采用VS2015的风格,重点是开源的,可以随便进行DIY。代码高亮酷炫,实在是逆向神器。
渗透DNS信息收集利器 DNSenum
简介:
DNSenum是一款dns查询工具。它能够通过Google或字典文件猜测可能存在的域名,并对一个网段进行反向查询。它不仅可以查询网站的主机地址信息,域名服务器和邮件交换记录,还可以在域名服务器上执行axfr(区域传送)请求,然后通过Google脚步得到扩展域名信息,提取子域名并查询,最后计算IP地址并执行whois查询,执行反向查询,把地址写入文件。
常用选项:
-enum --相当于--threads 5 -s 15 -w. 进行whois查询线程数是5最大子域数15
-v 详细显示所有进度和所有错误消息,加上-v会很慢,会动态的进行记录扫描
-o 输出报告,结果以HTML结果显示
-t --timeout 超时设置,可以提高速度但可能会影响查询结果
-f 字典破解破解DNS,默认字典文件/usr/share/dnsenum/dns.txt
使用实例:
声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送至邮件举报,一经查实,本站将立刻删除。转载务必注明出处:http://www.hixs.net/article/20231218/169624739847357.html