.net逆向初试

简介: .net逆向初试

逆向.NET程序常用的一些工具


1.dotPeek


  • 官网地址:
    https://www.jetbrains.com/decompiler/

  • 是一个免费的.net逆向工具,可以将.net程序反汇编为等价的C#或者IL代码支持dll、exe、winmd文件的反汇编

  • 由JetBrain出品,有较为良好的软件支持


2.Net Reflector



3.dnSpy



4.dotPeek逆向——两道CTF题


4.1.


dotPeek安装


4.1.1.


 从官网下载安装程序,双击安装程序直接安装


0ab17c41fc07f8097d6359af31c8fb08_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


4.1.2.


默认安装目录


C:\Users\你的用户名\AppData\Local\JetBrains


4.2.题一


4.2.1. 需要输入正确的账号密码


c8768d26d5645f25410d69a3424b33d9_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


4.2.2. 将程序拉进dotPeek软件


8bb9970562691deaa3edd56531cc0103_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


4.2.3. 找到源码


986f89b72043cccf14e70bfb56642db4_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


4.2.4.


btnLogin、checkPassword() 等函数很可能与登录相关


35f4413beea4e646a8fecd45287120bf_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


4.2.5. 到账号密码


91b773f996e19c70a6b8971849a2ae96_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


4.2.6. 登录成功,出现flag


3b66dd1d9747bf9f28e00e9286591697_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


4.3.题二


4.3.1. 仅输入密码


acdd8fe946a819e4fb065363ebdbaa75_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


4.3.2.将程序拉进dotPeek软件


App一般是初始化用的,我们一般关注MainWindow


69ab0a85a30e0b6db8bc2170ef2e2287_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


4.3.3. 程序只有一个按钮,Button_click很有可能就是对应着这个按钮的


b29c58f5a20a38729b604150ffec95c3_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


4.3.4.


通过源代码可以看出文本框输入不正确时会返回,

而输入正确时会弹出一个含有flag的MassageBox


eda04748ec7d51c5fe72167d073f8049_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


4.3.5.


可以通过分析文本框中输入的字符


数组长度为5,


分别对应Letters数组中的Letters[5]、Letters[14]、Letters[13]、Letters[25]、Letters[24],即FONZY


51fd802d96b8d8dbdb41605d5be7a1c4_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


4.3.6.输入密码,获取flag


87997cda5a15ad08fafc09aba884d209_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


4.3.7. 也可以直接破解MessageBox中的内容


与Letters[]数组一一对应,得到flag为FLAG{I_LOVE_FONZY}


52fde79aee81b6b4137517dbed768346_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


5. .net总结


使用虚拟机的编程语言往往会面临比较严重的代码安全问题,.NET程序如果未经过适当的加密和保护,很容易被逆向人员还原出完整的程序逻辑。


可以看出.net程序逆向后,保存了比较完整的函数名等信息,也得出了比较完整的程序逻辑。


相关文章
|
3月前
|
开发框架 前端开发 Java
闲话 .NET(2):.NET 起名的原因、读法和演变
闲话 .NET(2):.NET 起名的原因、读法和演变
|
6月前
|
SQL 开发框架 自然语言处理
分享77个NET源码,总有一款适合您
分享77个NET源码,总有一款适合您
307 1
|
6月前
|
SQL 开发框架 前端开发
分享65个NET源码,总有一款适合您
分享65个NET源码,总有一款适合您
60 1
|
6月前
|
XML 开发框架 安全
分享92个NET源码,总有一款适合您
分享92个NET源码,总有一款适合您
86 0
|
6月前
|
开发框架 搜索推荐 .NET
分享66个NET源码,总有一款适合您
分享66个NET源码,总有一款适合您
52 0
|
设计模式 C# 数据库
.Net5发布在即,当心技术断层
.Net5发布在即,当心技术断层
253 0
.Net5发布在即,当心技术断层
|
图形学 容器
MEF——.NET中值“.NET研究”得体验的精妙设计
  MEF(Managed Extensibility Framework)是.NET Framework 4.0一个重要的库,Visual Studio 2010 Code Editor的扩展支持也是基于MEF构建的。
876 0
|
XML 数据格式
VS2010 调“.NET研究”试利器
一、通过VS2010可以将断点保存成本地文件(xml格式)   假设当代码中有CRUD(增、删、改、查)功能时,我们debug增加功能时在代码内设置了一个断点进行查错。再检查删除时又要为删除代码设置一个断点并且要清除上一个为debug增加功能时设置的断点。
759 0
|
C# Windows
验证.N“.NET研究”ET强命称的思路和实例
  手头有一个行业软件,是需要插上加密狗才能正常运行的,C# / .Net Framework 1.1环境开发的。这是我们公司购买的正版软件,所以是能正常使用的,但是由于电脑多,加密狗难免要拔来拔去的。
927 0
|
.NET 容器
一句代码实现批量数“.NET研究”据绑定[上篇]
  对于一个以数据处理为主的应用中的UI层,我们往往需要编写相当多的代码去实现数据绑定。如果界面上的控件和作为数据源的实体类型之间存储某种约定的映射关系,我们就可以实现批量的数据绑定。为了验证这种想法,我写了一个小小的组件。
815 0