吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 26380|回复: 59

[NET逆向图文] 浅谈c#.net程序的逆向

  [复制链接]
Leo 发表于 2014-10-4 21:59 | 显示全部楼层 |阅读模式

本帖最后由 Leo 于 2014-10-4 22:01 编辑

第一次逆向c#的软件,好多工具不会使,废了半天劲,总算是成功了{:6_143:}

废话不多说直接切入主题,由于.net程序的特殊性,无法使用OD逆向等常用逆向工具
先来看下这个联网验证的FZ程序,今天就破掉它的登陆 1.jpg
程序打开后弹窗提示输入Key,输入假码后验证失败并不断弹验证窗并提示失败


ok,今天要介绍的第一款软件叫做reflector,专门用来反编译.net程序得到源码的,我们把程序载入
2.jpg
resources目录可以暂不关心,我们展开exe,如下

3.jpg
没有加壳,可以看到解析出来程序的很多类和函数,随便选中一个,
注意右侧窗口// This item is obfuscated and can not be translated.

这个意思是代码被混淆了,看不到,怎么办{:6_165:}
接下来就要用到另一个工具,de4dot,这个强大的东东有两个主要功能
1.可以脱掉绝大部分.net程序的壳 2.可以反混淆绝大部分.net程序
5.jpg
那我们来试一试,ok,生成了一个-cleaned后缀的exe文件
4.jpg

把生成的文件拖入reflector试试看代码反混淆成功了没
6.jpg
完整的c#代码已经被我们搞出来了,胜利50%~
剩下的工作就是在代码中找啊找,找到我们要破掉的登陆,c#代码比较简单,这个工作量不大

7.jpg
找到了,这一段就是登陆,我们找到关键地方的代码修改掉,注意c#代码并不能直接修改,我们要修改的是il代码
il是什么玩意儿,就是微软为.net衍生出来的一种中间语言,和汇编类似


我们简单修改一下试试,把成功的判断跳转改掉
8.png
再保存一个新的exe试一试,还是输入刚才的假码

9.jpg
输入假码后,看看这回是不是不再弹验证了,它已经开始检测游戏窗口了,不过我没有这个游戏哈哈


由于刚才只修改了一行if判断,所以大家可以看到还有一些问题,比如仍然输出了key无效的log信息,
这就是后面一点点修复的细活了,不再赘述,这里只谈一谈.net程序逆向的思路和方法,大神们莫喷

评分

参与人数 57威望 +1 HB +91 THX +33 收起 理由
五爱灰鞕 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
可爱的猫猫 + 1 + 1
壹佰 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
29590 + 1
虚心学习 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
24567 + 2
一路走来不容易 + 1
Soul1999 + 1
冷亦飞 + 1
纯英文 + 1
l278785481 + 1
maxdz + 1
pengyuwa1122 + 1
废喵 + 1
temp + 1 + 1
小菜虫 + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
hbyaojing + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
三月十六 + 1
Wayne + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
侠客行 + 1
xgbnapsua + 2
SmallEXpel + 1
徐闯 + 1
雷神来了 + 1
4957465 + 1
MoeRay + 1
河图 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
ghostxu + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
szukodf + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
小声点我布隆 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
消逝的过去 + 2 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
jaunic + 1
lies + 1
gccc + 1 [快捷评语]--吃水不忘打井人,给个评分懂感恩!
hnymsh + 1
goxp49 + 1 + 1
zllqwe001 + 1 + 1 大大,我的C#软件找不到key的位置,能帮下忙吗
toshibahb + 1 + 1 [快捷评语] - 评分=感恩!简单却充满爱!感谢您的作品!
289128110 + 1 + 1 2017,让我们17学破解!
创意合成 + 1 + 1 学破解论坛1周年了,感谢大家的付出与关注。学破解论坛助你呼风唤雨!!!
tony2526 + 1 + 1 ★★★★★ 热心人,佛祖保佑你事事顺利 ,财源滚滚!!!
凤凰de星空 + 1 + 1 被选中“最佳答案”荣耀+1,感谢你的热心解答!同时也感谢其他热心人!
danielwood + 1 + 1 评分=感恩!简单却充满爱!感谢您的作品!
呴呴喽 + 1 + 1 好人有好报!你的热心我永远不忘!谢谢!
zero_feng + 1 感谢!新技能get√
HawkSolo + 1 + 1 评分=感恩!简单却充满爱!感谢您的作品!
小野 + 2 + 1 教程非常易懂,对新人帮助极大!楼主大爱!
十月 + 1 + 1 评分=感恩!简单却充满爱!感谢您的作品!
samuel1116 + 2 + 1 支持原创,感谢楼主!
春哥 + 1 支持原创,感谢楼主!

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
zx2cwf 发表于 2014-10-4 22:19 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
大鸿 发表于 2014-10-4 22:38 | 显示全部楼层

我表示看起来顶晕,继续努力!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Shark恒 发表于 2014-10-4 23:07 | 显示全部楼层

说实话,我对这个NET程序逆向一直不是太了解,代码能看懂,也知道修改那里,但是不能达到逆向。
尤其是de4dot这个插件,为什么要那么改,他代表了什么?Leo给讲讲。
比如我想把某个语句NOP掉或者把 == 该成 !=  该怎么操作?




吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
轮回 发表于 2014-10-4 23:29 | 显示全部楼层

....直接看不懂。这个NET的程序
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| Leo 发表于 2014-10-4 23:32 | 显示全部楼层

Shark恒 发表于 2014-10-4 23:07
说实话,我对这个NET程序逆向一直不是太了解,代码能看懂,也知道修改那里,但是不能达到逆向。
尤其是de4 ...

恒大,de4dot是脱壳和去混淆的工具,具体翻译代码的工具是reflector,但是reflector也有个弊端,就是只能阅读代码,不能修改,所以需要给它加载一个插件叫reflexil,通过这个插件可以对代码进行修改,但是也不能修改原始的c#代码,只能修改编译后的IL代码,我是查找了IL指令集参考修改, 1.jpg
这个就是在reflector工具中通过reflexil插件查看到的对应IL代码,callvirt就是调用一个虚函数,比如nop就是右键点删除它,
跳转的指令是leave.s这个,brtrue.s就是if (bool_true)的处理,brfalse.s就是if (bool_false),
2.png
比如 if (![url=]nullable[/url].HasValue || ![url=]nullable[/url].Value) 这句if,就对应上图那几条语句,如果满足为真,就跳的第20行语句,不为真就向下执行,==和!=就把这句改掉就好,大概就是这些,其他的指令也不熟了
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| Leo 发表于 2014-10-4 23:33 | 显示全部楼层

也有其他的一些il代码编辑工具,但是应该没有这个方便

点评

Shark恒”点评说:
对,就是reflexil不知道怎么用……刚才说错了。你说的那个IL指令集参数在哪儿能找到?  详情 回复 发表于 2014-10-4 23:57
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Shark恒 发表于 2014-10-4 23:57 | 显示全部楼层

Leo 发表于 2014-10-4 15:33
也有其他的一些il代码编辑工具,但是应该没有这个方便

对,就是reflexil不知道怎么用……刚才说错了。你说的那个IL指令集参数在哪儿能找到?
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| Leo 发表于 2014-10-5 00:00 | 显示全部楼层

Shark恒 发表于 2014-10-4 23:57
对,就是reflexil不知道怎么用……刚才说错了。你说的那个IL指令集参数在哪儿能找到?

我找一找,一会传到论坛上来吧,那几个工具我也打包传上来

点评

Shark恒”点评说:
好,太好了,学习了~ 对于NET怎么修改,我始终没有时间研究,今天开眼了。  详情 回复 发表于 2014-10-5 00:05
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Shark恒 发表于 2014-10-5 00:05 | 显示全部楼层

Leo 发表于 2014-10-4 16:00
我找一找,一会传到论坛上来吧,那几个工具我也打包传上来

好,太好了,学习了~ 对于NET怎么修改,我始终没有时间研究,今天开眼了。{:6_135:}
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层
8层
9层
10层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

快速回复 返回顶部 返回列表