好友
阅读权限10
听众
最后登录1970-1-1
|
buoy
发表于 2018-4-13 22:11
本文旨在使用Reflector来去除原程序的限制,不在于获得源代码。
使用工具:带Reflexil的Reflector v9.0
使用材料:一个.NET CM分析(ReWrit__s_Crackme__8)
https://www.52pojie.cn/thread-19324-1-1.html
(出处: 吾爱破解论坛)
破解要求:
①去除NAG的定时弹框
②显示正确密码到灰色文本框中
破解步骤:
1.使用Reflector的字符串搜索功能定位着手处。
2.从着手处分析代码,处理逻辑,使用Reflexil修改IL指令。
3.运行原程序,分析密码获取逻辑和显示逻辑,结合代码阅读,改变其逻辑,达到破解的要求即可。
详细说明:
1.打开Reflector后,将原程序拖入Reflector,并展开代码,点击搜索工具,选择字符串搜索,在搜索框输入需要搜索的关键字NAG,在匹配列表定位你所要的匹配。定位的匹配即为入手处。
图1-1
2.在入手处分析代码,可知只需去掉弹框的代码,就可以完成要求①,我们可以使用Reflexil工具修改弹框代码对应的IL指令,使用Nop大法替换掉即可,注意,最后的ret指令不要替换。
图2-1
3.运行原程序,结合代码阅读,我们不难分析出,密码原本的处理逻辑是》输入正确的密码,显示后续业务,输入不正确,显示Wrong Password。
我们的目的是直接获得密码并显示密码到灰色文本框,这是题目要求②。
那么,我们需要知道两件事情:随机密码在哪里获得和显示密码去哪里显示。
结合运行程序,可知,textBox1就是密码输入框,那么毫无疑问,textBox2就是密码显示框,代码里已经告诉我们num就是正确密码。
现在,已经具备所有要知道的事情了,那么就是开始干了。
怎么干?
还是要用到神器Reflexil工具,使用它,可以轻松改变IL指令,获得我们想要的结果。
图3-1
图3-2
图3-3
4.修改好所有的IL指令后,使用Reflexil工具保存一份Patch即可。
5.运行破解后的Patch程序,验证破解是否达到要求的效果。
图5-1
图5-2
运行正常,去掉了NAG弹框效果,点击OK正确显示密码到灰色文本框处。
6.最后,我们还可以去看一下,我们修改后的程序的实际代码,即IL指令修改后的C#代码。
图6-1
图6-2
7.附上材料包,包含未破解前的CrackMe和破解后的UnCrackMe。
CrackMe.zip
(79.38 KB, 下载次数: 6)
|
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|