简易.NET程序(某助手)破解

闲得无聊,日站日不下来,来日程序。
一到考试就沉迷砍口垒。但是我也不知道为啥。
总之先下载,是个用户名密码登陆的。
这个程序是用账号密码破解的。第一个思路是直接劫持他们的对象socket,伪造一个返回值来欺骗程序,达到不修改程序的效果。
但是抓了个包看了一下。。。
TIM截图20200106210252.jpg
emmm,base64解不出来,算了还是拉到程序ilspy分析一波。
TIM截图20200106210252.jpg
看这一波乱码,不用说了,直接de4dot走起
TIM图片20200106210831.png
继续拉进ilspy分析。
这次可以了
TIM截图20200106210252.jpg
为了方便,我们直接搜索 登录
TIM截图20200106210252.jpg
很轻松的找到了。直接右键,分析,寻找调用
TIM截图20200106210252.jpg
发现是一个Update函数
在如图所示的地方判断是否登陆
TIM截图20200106210252.jpg
跟进,判断,发现是个DLL,名字叫做CCLR
直接在目录下面,找到CCLR.dll
TIM截图20200106210252.jpg
直接拖进dnSpy,因为ilspy不能反汇编,所以直接拖进去。
找到相关函数。根据上面的反汇编,直接右键,修改函数。
把相关函数修改为对应的值
1.png
2.png
3.png
TIM截图20200106210252.jpg
再根据这里,把这个函数返回值也随便改一下。
看了一下这个函数返回值是直接返回int然后在string化的,而不是使用时间戳
TIM截图20200106210252.jpg
所以,就直接改成99吧
TIM截图20200106210252.jpg
文件,导出模块。
很多人说编译过程中会有错误,那我就在这更新一下吧,忘记加了。
首先,编辑点编辑方法
1.jpg
按照上面的修改之后,编译,会报错
2.jpg
直接跟进,找到两个
3.jpg
4.jpg
在编译还会有一个错误,把 这个删了。
5.jpg

保存,启动。
TIM截图20200106210252.jpg
破解成功。

Tags: 破解, 非提助手

已有 38 条评论 »

    1. hiyume 2020-10-31 at 15:10

      大佬现在有新的破解方法吗,这个方法远征10以上就会关闭所有的程序,或者告诉下大佬当时破解时用的什么版本

      1. 路过的假面骑士 2021-09-29 at 18:09
        public int GetExpiredDate(int param) { switch (param) { case 1: return 2099; case 2: return 1; case 3: return 1; case 4: return 0; case 5: return 0; case 6: return 0; default: return 99; } }

        现在大概要这样改写,原程序通过参数控制了返回值的内容,1是年2是月,以此类推

    2. 非洲人 2020-04-17 at 16:04

      你好 我按照教程修改后为什么一旦跑远征十以上就立刻闪退了

      1. ⑨BIE 2020-04-17 at 16:04

        因为这个教程是去年的

    3. ligang 2020-04-07 at 22:04

      博主好,在按照教程进行修改并编译后,程序无法打开版本2.4.2
      错误log如下ERROR, date = 2020/4/7 22:13:37 +08:00, sender = System.Windows.Threading.Dispatcher,
      System.TypeInitializationException: “Grabacr07.KanColleViewer.Models.Assistant”的类型初始值设定项引发异常。 ---> System.IO.FileNotFoundException: 未能加载文件或程序集“System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e”或它的某一个依赖项。系统找不到指定的文件。
      在 Grabacr07.KanColleViewer.Models.Assistant..ctor()
      在 Grabacr07.KanColleViewer.Models.Assistant..cctor()
      --- 内部异常堆栈跟踪的结尾 ---
      在 Grabacr07.KanColleViewer.Models.Assistant.get_Instance()
      在 Grabacr07.KanColleViewer.Application.BDLPTFhWLkX9Gvrppj4()
      在 Grabacr07.KanColleViewer.Application.OnStartup(StartupEventArgs e)
      在 System.Windows.Application.<.ctor>b__1_0(Object unused)
      在 System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
      在 System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
      如果有指导不胜感激

      1. ⑨BIE 2020-04-07 at 23:04

        看Assistant,估计是日期那里,也就是改99那里的变量类型错了。没下载最新版本不知道。

        1. ligang 2020-04-08 at 10:04

          看了下返回值类型还是int32,估计是别的地方做了调整

    4. mm 2020-04-05 at 14:04

      为啥修改完了 运行后 选择远征>10 并勾选自动远征 所有程序会立刻闪退?
      版本2.4.2

      1. ⑨BIE 2020-04-06 at 02:04

        母鸡欸?也许作者添加了反破解?

        1. mm 2020-04-06 at 09:04

          看起来不是。我尝试了一个旧版的,依然会闪退。

    5. ufo 2020-04-04 at 17:04

      我按照这个方法改完了,软件打不开了,怎么办求教

      1. ufo 2020-04-04 at 18:04

        还有,一共要改4个函数,我每改一个,都要遇到两个错误,所以我一共删了8个

        1. ufo 2020-04-04 at 18:04

          ===========================================================
          ERROR, date = 2020/4/4 星期六 18:16:55 +08:00, sender = System.Windows.Threading.Dispatcher,
          System.TypeInitializationException: “Grabacr07.KanColleViewer.Models.Assistant”的类型初始值设定项引发异常。 ---> System.IO.FileNotFoundException: 未能加载文件或程序集“System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e”或它的某一个依赖项。系统找不到指定的文件。
          在 Grabacr07.KanColleViewer.Models.Assistant..ctor()
          在 Grabacr07.KanColleViewer.Models.Assistant..cctor()
          --- 内部异常堆栈跟踪的结尾 ---
          在 Grabacr07.KanColleViewer.Models.Assistant.get_Instance()
          在 Grabacr07.KanColleViewer.Application.B4RQonYJuDfPHSCCqPm()
          在 Grabacr07.KanColleViewer.Application.OnStartup(StartupEventArgs e)
          在 System.Windows.Application.<.ctor>b__1_0(Object unused)
          在 System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
          在 System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
          这是error记录

          1. ufo 2020-04-04 at 21:04

            好吧,事实上只要我这样改了其中一个函数,软件就打不开了

            1. ufo 2020-04-05 at 01:04

              是。。。。。

            2. ufo 2020-04-05 at 01:04

              不是,我是用了编辑方法

            3. ⑨BIE 2020-04-04 at 22:04

              你是用,编辑--编辑方法 编辑的吗?

    6. 非洲酋長 2020-04-02 at 15:04

      请问报错应该刪那一些函数
      怕刪多了会破坏程式 (´இ皿இ`)

      1. ⑨BIE 2020-04-02 at 15:04

        文章已更新,里面有写

    7. Satila 2020-04-02 at 14:04

      (能不能上传一下完成的文件让我研究一下

      1. ⑨BIE 2020-04-02 at 15:04

        文章已更新,里面有写

    8. Satila 2020-04-02 at 14:04

      弄好之后又不能开了(会不会我刪太多了😂

    9. Satila 2020-04-02 at 14:04

      还是剩下一行CS0116

      1. ⑨BIE 2020-04-02 at 14:04

        就是那个:IDisposable

      2. ⑨BIE 2020-04-02 at 14:04

        那一行把class Cp那啥那啥的冒号之后去掉就行,包括冒号

    10. Satila 2020-04-02 at 14:04

      这个 为什么弹出了一大堆错误 CS1525 CS1003 有几百条

      1. ⑨BIE 2020-04-02 at 14:04

        编辑->选择编辑方法,然后再编译就会只有几条错误,吧那几条错误的函数都删了就行了

    11. Kancolle 2020-03-27 at 18:03

      谢谢博主分享,是不是只需要把CCLR.dll文件脱壳,然后用ILspy反编译导出项目文件,然后再修改GetError,GetState等函数的返回值,再编译项目文件就可以了呢?

      1. ⑨BIE 2020-03-27 at 18:03

        对,脱壳方式和主文件一样,修改之后编译,可能会有些错误,直接把那些错误的函数删掉就可以通过编译了

        1. Kancolle 2020-03-27 at 19:03

          似乎没法使用![img]() ht....tps://img.....chr.com/i/GiE528 谢谢博主指点了

        2. Kancolle 2020-03-27 at 19:03

          将CCLR.DLL导入DNSPY后编译出现错误代码CS1525

    12. mirai 2020-03-17 at 18:03

      和楼上问题一样,按照您的步骤在dnspy里无法修改函数,点编辑方法在新窗口改完点编辑的时候总是报错,编译器错误 CS1519等一堆,请问这里应该怎么操作,亦或是我的操作哪里不对?求教 :@(小怒)

      1. ⑨BIE 2020-03-17 at 19:03

        有图嘛_(:з)∠)_。。有图咱帮你看看

        1. mirai 2020-03-17 at 20:03

          怎么发图。。。或者说怎么联系上大佬

    13. 非提一個 2020-02-03 at 14:02

      // CCLR.CppWrapper // Token: 0x06000080 RID: 128 RVA: 0x0001AF84 File Offset: 0x0001A384 public int GetExpiredDate(int param) { return .CppUtils.GetExpiredDate(this.pc, param); }請問這裡怎樣把相关函数修改为对应的值

      1. ⑨BIE 2020-02-03 at 14:02

        用dnspy,直接把dll拖进去,然后修改整个程序集而不是只修改函数,直接把return改成99就行,或者其他任意数字都行,这个问题不大的,主要是上面那三个函数

    14. 小学生 2020-01-30 at 22:01

      ::(滑稽) 绿色游戏啊

      1. ⑨BIE 2020-02-03 at 15:02

        自己动手,丰衣足食,这才是学计算机的乐趣.jpg

添加新评论 »