【.NET程序动态分析】异常跳转法破解繁星.NET代码生成器笔记!

信息安全 4136 Views

开场白

闲来无事,得一NET代码生成器,名曰“繁星”!运行之,岂料欲征缴银两于老衲!甚怒,遂破之。。。吾恐后人不知其破解之法,卒记于此!望后人每观此文能有所得,实乃贫僧之幸。古人云:工欲善其事,毕先利其器!此番破解需用到“ILSpy(动态调试版)”,“.NET Reflector”以及其插件“Reflexil v1.6”!
繁星.NET代码生成器下载:http://www.onlinedown.net/soft/93015.htm

文能提笔控萝莉,武能床前定人妻。前能近身压正太,后能提臀迎众基。

破解笔记

1.打开软件,提示未注册!2.果断寻找注册位置3.用ILSpy打开该程序,依次找到FrmRegister下面的btnOk_Click函数!这个函数就是点击我们注册按钮的关键函数!4.分析右边窗口里面的代码,发现函数体中调用RegisterHelper.RegisterGUID()进行判断,那么我们左键点击RegisterGUID这个函数,进到RegisterGUID这个函数内部!5.在函数体中string[] array=xxxx这句下断点,然后运行程序6.随便输入注册码“11111111111111111111111”,点击注册,程序会断在我们断点处!7.F10单步往下跟踪,我们发现直接走到了catch这个段里面去了,接着就是result=fale,之后就是return result!由此我们可以推测,如果我们把result=false,改成result=true,那么就意味着这个函数一直返回为true,岂不是就是注册成功了?8.用Reflector打开程序,走到刚才这个RegisterGUID函数里面来,打开我们的插件Reflexil v1.69.将最下面ldc.i4.0修改为ldc.i4.1就相当于把false改成了true,我们保存修改之后的文件! 10.这里要注意:看看左边我们打开的程序集是MultiStar.comm,已经不再是主程序,别保存错了!11.选中当前的程序集,右键,Reflexil v1.6==>Save a==>“MultiStar.Common.dll”(名字必须改成MultiStar.Common.dll,否则无效)12.OK保存完毕,我们重新运行程序,到注册来随便输入注册码试试!哈哈,注册成功了!13.如果到这里就成功了,那么证明我们的大脑太过于简单粗暴!重启程序后又是这么个情况,提示未注册还剩XXXX天,看来程序有重启验证!14.继续请出我们的ILSpy,找到FrmMain下面的.ctor():void这个函数15.我们在LogHelper.Debug("FrmMain初始化!");这句下断点,运行程序之后断在此处,单步往下跟踪!16.通过调试代码,我们发现:如果num==0就会提示未注册,如果num不等于0,就会提示已注册!那么就简单了,我们让num永远不等于0,就达到了破解之功效!17.我们找找看是哪里在给num这个变量赋值,看到这一句int registerState = RegisterHelper.GetRegisterState(out num, out dateTime);左键点击GetRegisterState跟到GetRegisterState这个函数里面去!18.发现上面有一句 state=int.Parse(array[0]);这里就是给我们的num赋值的地方,咦,下面catch块中有一句state=0,意思就是如果程序异常,就会执行state=0!我们设想,如果程序一直异常,然后把state赋值为永远不为0,那么返回的时候num就永远不会是0,程序岂不是永远都是注册版了?我们找到注册表“HKEY_CURRENT_USER\SOFTWARE\MultiStar\gencode”,乱修改,只要程序读取该内容,进行分割的时候分割不成功就会异常!19.然后我们打开Reflector的插件Reflexil v1.6,定位到state=0这句,修改为ldc.i4.1然后保存!20.最后运行看看我们的程序!No problem,变成了已注册了!

–推荐给朋友

公众微信号:吾爱破解论坛

或搜微信号:pojie_52

–内容分享

点击右上角“…”标志,分享到朋友圈

–更多精彩内容

请点击右上角“…”标志,点击“查看公众号”,往下拉一点再点击“查看历史消息”即可!

–官方论坛

www.52pojie.cn

如未说明则本站原创,转载请注明出处:NULL » 【.NET程序动态分析】异常跳转法破解繁星.NET代码生成器笔记!