.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程序逆向后,保存了比较完整的函数名等信息,也得出了比较完整的程序逻辑。


相关文章
|
2月前
|
开发框架 前端开发 Java
闲话 .NET(2):.NET 起名的原因、读法和演变
闲话 .NET(2):.NET 起名的原因、读法和演变
|
5月前
|
供应链 前端开发 项目管理
分享88个NET源码,总有一款适合您
分享88个NET源码,总有一款适合您
58 3
|
5月前
|
开发框架 自然语言处理 负载均衡
分享91个NET源码,总有一款适合您
分享91个NET源码,总有一款适合您
57 2
|
5月前
|
SQL 开发框架 前端开发
分享65个NET源码,总有一款适合您
分享65个NET源码,总有一款适合您
56 1
|
5月前
|
SQL 开发框架 自然语言处理
分享77个NET源码,总有一款适合您
分享77个NET源码,总有一款适合您
251 1
|
5月前
|
SQL 开发框架 安全
分享84个NET源码,总有一款适合您
分享84个NET源码,总有一款适合您
56 1
|
5月前
|
开发框架 前端开发 JavaScript
分享86个NET源码,总有一款适合您
分享86个NET源码,总有一款适合您
35 0
|
5月前
|
开发框架 搜索推荐 .NET
分享66个NET源码,总有一款适合您
分享66个NET源码,总有一款适合您
46 0
|
5月前
|
XML 开发框架 安全
分享92个NET源码,总有一款适合您
分享92个NET源码,总有一款适合您
76 0
|
开发框架 前端开发 JavaScript
温故知新 .Net重定向深度分析
在早期的.NET Framework程序员心里,重定向Redirect其实分为两种: Response.Redirect:Response对象的Redirect方法提供了一种实现客户端重定向的方法 Server.Transfer:Server对象的Transfer方法使用服务器执行重定向,并避免HTTP请求
温故知新 .Net重定向深度分析