博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.NET破解之爱奇迪(三)
阅读量:7030 次
发布时间:2019-06-28

本文共 930 字,大约阅读时间需要 3 分钟。

本教程只能用于学习研究,不可进行任何商业用途。如有使用,请购买正版,尊重他人劳动成果和知识产权!

一打开软件,就看到各种注册和未注册提示信息,就有一种想征服它的冲动,而且是很彻底的那种。

思路一:生成序列号

如果我能按照它的加密算法生成序列号,就用不改动原程序了。生成机器码比较简单,注册类有一个Validate验证序列号的函数,但没有告诉怎么生成序列号,应该只有作者才有生成序列号的算法和工具。这个验证函数作用是将序列号各种加码和解码:

最后卡在FormBase64String函数上,大家可以去Msdn去了解一下这个函数。我选择放弃这种方法。

思路二:修改关键跳转

和以前一样,去寻找关键跳转,然后修改它,OK!可故事的结局我又没猜中:我原本以为定位到Register函数中,将"IsValid=flag2&&flag"改为"IsValid=!flag2||flag",反复修改后,还是不起使用,最后我还在这里插入了一个MessageBox来查询IsValid的值,结果根本没Show出来。所以应该是if里面就没有执行,算了。

思路三:彻底修改函数

这个程序破解的关键是GlobalControl窗体中的Register(string serialNumber) 函数,它返回的类型为RegisterResult。这个类型定义如下:IsValid表示是否注册,要改为T才行;ValidTo,注册到好久,即什么时间后过期,改个一万年。

下面是修改方法:

定位到Register函数,在Reflexil的IL代码上右键,选择"Replace all with code…"

打开"Compile"对话框,修改

修改代码(要保证语法没有问题哦),点击左下角的"Compile",如果没有语法问题,右边将会生成IL代码,点击OK即可。如下图:

现在,软件一启动就显示已注册到2115年,使用注册窗口,不输入什么,都注册成功。

其他软件的加密方法也是一样的,关键在于GlobalControl窗体中的Register(string serialNumber) 函数……

本教程只能用于学习研究,不可进行任何商业用途。如有使用,请购买正版,尊重他人劳动成果和知识产权!

转载地址:http://bwwal.baihongyu.com/

你可能感兴趣的文章
【100题】第五十九题 用C++编写不能被继承的类
查看>>
轻描淡写
查看>>
mysql基本操作
查看>>
39.CSS3弹性伸缩布局【下】
查看>>
[javascript]图解+注释版 Ext.extend()
查看>>
我的前端工具集(七)div背景网格
查看>>
linux 下mongo 基础配置
查看>>
【Dubbo实战】 Dubbo+Zookeeper+Spring整合应用篇-Dubbo基于Zookeeper实现分布式服务(转)...
查看>>
JUnit单元测试中的setUpBeforeClass()、tearDownAfterClass()、setUp()、tearDown()方法小结
查看>>
java之jvm学习笔记六(实践写自己的安全管理器)
查看>>
Docker容器查看ip地址
查看>>
在PC端或移动端应用中接入商业QQ
查看>>
将python3.6软件的py文件打包成exe程序
查看>>
DataTable 排序
查看>>
大白话5分钟带你走进人工智能-第二十节逻辑回归和Softmax多分类问题(5)
查看>>
嵌入式系统在工业控制中的应用
查看>>
使用httpclient异步调用WebAPI接口
查看>>
c++ 类的对象与指针
查看>>
SSTI(模板注入)
查看>>
rbac models
查看>>