阳光网驿-企业信息化交流平台

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

查看: 32426|回复: 84

[原创] 手把手教你破解XX婆 ERP A8 V3.9并制作自定义信息补丁,小儿科一般

    [复制链接]
  • TA的每日心情
    开心
    2019-9-16 08:52
  • 签到天数: 85 天

    [LV.6]常住居民II

    发表于 2012-9-22 16:41:37 | 显示全部楼层 |阅读模式
    本帖最后由 andywu 于 2012-9-22 18:03 编辑

    破解首先需要反编译神器 Reflector和Reflexil插件,Reflexil插件主要是用来修改IL语言的。
    什么是IL:IL全称是Microsoft 中间语言 (MSIL),它是将.NET代码转化为机器语言的一个中间过程,它是一种介于高级语言和基于Intel的汇编语言的伪汇编语言。

    工具下载地址,里面包含有注册机,可能被报有病毒,请注意:
    请点击此处下载

    查看状态:已购买或有权限

    您的用户组是:游客

    文件名称: 
    下载次数:277  文件大小:1.42 MB 
    下载权限: 不限  以上或 VIP会员   [购买VIP]   [充值阳光币]  [免费赚币]



    请点击此处下载

    查看状态:已购买或有权限

    您的用户组是:游客

    文件名称: 
    下载次数:290  文件大小:2 MB 
    下载权限: 不限  以上或 VIP会员   [购买VIP]   [充值阳光币]  [免费赚币]



    请点击此处下载

    查看状态:已购买或有权限

    您的用户组是:游客

    文件名称: 
    下载次数:342  文件大小:2 MB 
    下载权限: 不限  以上或 VIP会员   [购买VIP]   [充值阳光币]  [免费赚币]



    请点击此处下载

    查看状态:已购买或有权限

    您的用户组是:游客

    文件名称: 
    下载次数:312  文件大小:2 MB 
    下载权限: 不限  以上或 VIP会员   [购买VIP]   [充值阳光币]  [免费赚币]



    请点击此处下载

    查看状态:已购买或有权限

    您的用户组是:游客

    文件名称: 
    下载次数:341  文件大小:2 MB 
    下载权限: 不限  以上或 VIP会员   [购买VIP]   [充值阳光币]  [免费赚币]



    在反编译之前,需要先了解一下几个IL指命:

    call:调用由传递的方法说明符指示的方法;
    callvirt:对对象调用后期绑定方法,并且将返回值推送到计算堆栈上。
    ldstr: 推送对元数据中存储的字符串的新对象引用
    ldarg.0:将索引为 0 的参数加载到计算堆栈上。
    stfld:用新值替换在对象引用或指针的字段中存储的值。

    有这几个差不多了

    更多指命,请看微软MSDN官方网站:http://msdn.microsoft.com/zh-cn/library/812xyxy2.aspx


    下面进入正题,从XX婆安装目录中找到“CarpaServer.dll”,路径为“ERPA8TOP\Program\bin\”里面,
    运行Reflector,将DLL拖到里面,如下图:
    未命名.jpg
    我们要解除加密狗,使用自己的信息,首先在里面找一下看看是否有Dog的字样,看下面,还有dogInfo(加密狗信息)
    2.png

    展开DogInfo,选择.ctor(),这里在右边就可以看到,这正是加密狗的默认配置信息,string.Empty,表示为空。
    3.png

    下面,我们用Reflexil插件修IL语言,关于如何加载插件,请自行网上查询。
    4.png

    打开Reflexil插件后,在右下角有对应的IL指令。
    5.png

    如果你想做固定信息补丁的话,直接在string.Empty这行上,点击右键,EDIT,改为如下效果就行
    6.png

    如果要做自定义信息补丁的话,那需要找到“System.Configuration.dll”,这个文件在系统盘Windows\Microsoft.NET\Framework\v2.0.50727\下,将它拖到Reflector窗口中后,继续回到刚才的DogInfo下面。

    接着做自定义补丁,在string.Empty这行上,点击右键,EDIT
    7.png
    这里就用到前面提到的call指命,操作码类型为“方法”,点击operand的下拉框

    8.png

    下面的get_AppSettings(),就是从配置文件中获取信息。
    9.png

    点击OK返回,再点击update(更新)。

    由于我的上传权限只有15个,今天上传完了,所以没办法一次发完,明天再继续写完。


















    补充内容 (2012-9-25 00:27):
    25号凌晨1点更新,贴子不能编辑了,下部分的内容在第9楼中。。。。。

    补充内容 (2012-9-25 00:28):
    25号凌晨1点更新,贴子不能编辑了,下部分的内容在第9楼中。。。。。

    补充内容 (2012-9-26 10:58):
    26号更新,最后第三部分内容在第二页中。。。。。

    补充内容 (2012-9-26 14:20):
    注意,本贴已全部更新完成了,最后一部分在第15楼。。。。

    补充内容 (2012-9-26 14:26):
    另外说明一下,本贴标题写错了,本次破解的是A8 TOP V9.0版,也就是2012.9.1发布的版本,写成了V3.9了,抱歉

    评分

    参与人数 1阳光币 +10 收起 理由
    y48161493 + 10 很给力! 分享破解过程

    查看全部评分

    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    开心
    2019-9-16 08:52
  • 签到天数: 85 天

    [LV.6]常住居民II

     楼主| 发表于 2012-9-25 00:23:10 | 显示全部楼层
    本帖最后由 andywu 于 2012-9-25 00:33 编辑

    纠正一下,上面有字打错了,指令,写为了指命

    接1楼,继续。。。。。

    上次说到get_AppSettings(),就是从配置文件中获取信息,

    获取配置信息,需要对应的配置项,下面再增加配置项,在上面修改的行上,点右键,“新建一行指令”
    10.png

    在web.config中增加对应的配置项,同时,设置指令为“ldstr”,指令码类型为“string”,operand为对应的配置项“DogID”
    11.png

    同时,也要注意,当前的配置项必须与下一行的变量名相匹配,strDogID,就是DogID,前面的str表示变量的类型为字符串,这是XX婆公司自己定义变量的方式,方便识别的。
    12.png

    下面就是破解后的IL指令,请对照一下是否正确。
    13.png

    到此,我们已经破解了其中的一项,为了验证指令是否正确,我们先保存一下这个破解过的文件,在文件名上点击右键,选择Reflexil v1.5---》save as....(保存),这将生成一个破解的文件。
    14.png


    再重新载入破解后的文件,如何载入文件,看本文中,第一段。

    下面就是重新载入后,进入DogInfo所看到的结果。
    原版为:this.strDogID = string.Empty;
    破解后:this.strDogID = ConfigurationManager.AppSettings["DogID"];

    这段含义就是从配置项DogID中读取值,并赋值给strDogID,代替了原来的赋值为空,这就表地破解是成功的,不过也不要高兴得太早,还有很多地方需要破解。
    13.jpg

    上面,我们已经学会了破解增加自定义string(字符串)类型的配置项。
    下面的strDogType,strUserCardNo等,操作都完全一样,注意,是前面含有"str"的变量名的破解操作一样。

    那如何知道变量的类型呢?只需点击变量名即要,例如,我点击ifDogValid
    15.png
    之后会看到如下,
    16.png
    这里的int就是变量类型,本次破解,所看到的只有两种类型,string和int。

    点击后,如果要后退到原来代码的地方,只要点一下后退按键即可。
    17.png

    上面说了string类型变量的破解,还有一种整型的变量,破解有一点点不同,需要多增加一行IL指令,例如intAccountNumber,intDogUserCount等。

    先说一下为什么会多一条指令,多的是什么指令。

    由于从配置项中读取的值全部都是string类型,string字符串类型是不能直接赋值给整型的,需要多一个转换为整型的指令。
    转换为整型的指令有好多个,这里,我们只说一个C#代码为:int.Parse(“1”);
    我们先按上面的方式,增加三条指令,完成后,接着,按如下图,中间再插入一行转换指令即可。
    18.png

    在上面行上右键单击,点击“新建行”,输入指令码为“call”,指令码类型为方法,这可以理解为“调用方法int.Parse来转换string为int”
    19.png

    接着,在Operand下拉框中选择
    20.png

    选择system后,往下拉,找到Int32,并展开,看到有多个Parse,选择第一个,点击OK返回,再点击“Insert after select”。
    21.png

    最终结果如下图:
    22.png

    同样,再保存一下这个破解后的DLL,再重新载和,看看结果是不是如下:
    this.intAccountNumber = int.Parse(ConfigurationManager.AppSettings["AccountNumber"]);
    如果是上面这样,那就没错了。

    下图是所有配置顶破解后的结果,请勿必核对,不要弄错。
    23.png

    到此,破解已经完成了一半,

    上面这部分,是对加密狗默认信息的改造,下面文章是要删除读取加密狗信息的代码,这样就能保证默认配置信息不会改变,要不然,破解了也没有,会被系统自动改回去。

    明天再接着写,睡了。。。
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    开心
    2019-9-16 08:52
  • 签到天数: 85 天

    [LV.6]常住居民II

     楼主| 发表于 2012-9-26 10:47:16 | 显示全部楼层
    看下图,找到ReadWriteDog,FindTopDog和FindNotTopDog,相信这个英文应该好理解,说简单点,就是“查找狗”,有TOP版和Not TOP区别。
    1.png

    这里,我们就只讲破解top版。点击FindTopDog,在右侧,第11行左右,有如下代码,这就是读加密狗信息的代码,接着下面的是把从加密狗中读取到的数据赋值上面所讲的加密狗默认配置中。
    RegisterData data = new RegisterData();
    GSecurityLib.ReadRegisterData2(ref data, 1);

    这些代码,运行后,会改写之前的自定义配置项,所以我们必须给清除掉,不让他改写。

    同样,打开Reflexil插件,找到this.dogInfo.intDogSymbol = 5;对应的IL代码:
    2.png
    看上图,第一个红框中就是对应的IL代码,教大家一个简单的方法,快速识别IL代码块对应的C#代码,

    一般每行代码都会以ldarg.0开头,到下一个ldarg.0之前为结束,看上面红框,每一块结束后面都跟着有ldarg.0,这大部分情况是这样,当然也有特殊的跳转不是这样,不过还好,XX婆这里面没有,可以不用管。

    上面这每一块,都对应着一行代码,都可以删除,看下图,选中一块代码,右键,Delete(删除)
    注意,搞破解,一定要注意备份,最好每步修改都有对应的DLL,以免改错后无法恢复,要重头来过。

    3.png

    这里面也还有一部分特殊的,没有以ldarg.0开头,这里,我分块标了出来,这每一块都可以删除
    4.png

    删除完成,同样,保存破解,再重新载入,看看代码是不是如下这样,赋值代码已经被清干净了,


    再拿这破解后的DLL去借换原版,试试看,非TOP版破解也差不多,找到FindNotTopDog,一样删除对应的赋值代码搞定,到此破解完毕。





    下面,我把我自己破解的DLL上传上来,注意,我只破解了TOP版部分,这里只教大家学习,使用TOP版的,可以下载试试看。

    我破解后,没有做深入测试,只测试了基本操作没有问题,如果有发现错误的地方,请提出来。

    破解补丁下载:
    请点击此处下载

    查看状态:已购买或有权限

    您的用户组是:游客

    文件名称: 
    下载次数:113  文件大小:2 MB 
    下载权限: 不限  以上或 VIP会员   [购买VIP]   [充值阳光币]  [免费赚币]


    请点击此处下载

    查看状态:已购买或有权限

    您的用户组是:游客

    文件名称: 
    下载次数:95  文件大小:2 MB 
    下载权限: 不限  以上或 VIP会员   [购买VIP]   [充值阳光币]  [免费赚币]


    请点击此处下载

    查看状态:已购买或有权限

    您的用户组是:游客

    文件名称: 
    下载次数:95  文件大小:2 MB 
    下载权限: 不限  以上或 VIP会员   [购买VIP]   [充值阳光币]  [免费赚币]


    请点击此处下载

    查看状态:已购买或有权限

    您的用户组是:游客

    文件名称: 
    下载次数:80  文件大小:622.21 KB 
    下载权限: 不限  以上或 VIP会员   [购买VIP]   [充值阳光币]  [免费赚币]




    配置信息内容如下:

    1. <!-- 总帐开关 1开启,0关闭 -->
    2. <add key="UseAcSystem" value="1"/>
    3. <!-- 产品名称 A8,V3 -->
    4. <add key="ProductName" value="A8"/>
    5. <!-- Top版开关 1开启,0关闭 -->
    6. <add key="TopDog" value="1"/>
    7. <!-- 普通版留空,TOP版为900 -->
    8. <add key="Ver" value="900"/>
    9. <!-- 软件狗号 -->
    10. <add key="DogID" value="1234567890" />
    11. <!-- 狗类型 01基础版,02通讯版,03电脑版,04食品版,05非总帐版,06总帐版 -->
    12. <add key="DogType" value="01"/>
    13. <!-- 激活帐套数 -->
    14. <add key="AccountNumber" value="999"/>
    15. <!-- 授权用户数 -->
    16. <add key="DogUserCount" value="9999"/>
    17. <!-- 正版卡号 -->
    18. <add key="UserCardNo" value="88888888"/>
    19. <!-- 注册公司 -->
    20. <add key="RegClientName" value="本补丁仅供学习、测试,禁止用于商业用途,请购买正版"/>
    21. <!-- 注册地区 -->
    22. <add key="DogRegionCode" value="03"/>
    23. <!-- 首次使用日期,自定义设置无效,获取本机当前日期 -->
    24. <add key="FirstUseDate" value="2012-09-18"/>
    25. <!-- 注册日期,自定义设置无效,不显示 -->
    26. <add key="RegDate" value="2012-09-18"/>
    27. <!-- 注册标识,请保持TR不变 -->
    28. <add key="RegFlag" value="TR"/>
    29. <!-- 证书号 -->
    30. <add key="CentificateNo" value="8888888888"/>
    31. <!-- 安全码 -->
    32. <add key="CentificateNum" value="8888888888"/>
    复制代码

    有部分网友想要视频教程,但我最近工作有些忙,等下次有空,再做个视频教程出来吧

    结束语:XX婆之所以这么容易破解,我个人认为有一部分原因是因为他们没有对软件进行任何加密混淆,加密后,能在很大程度上防止破解,至少不会让我们一下子就子就 找到了DogIno,不知道为什么他们没有这么做。
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    开心
    2018-3-24 10:49
  • 签到天数: 787 天

    [LV.10]以坛为家III

    发表于 2012-9-24 19:50:36 | 显示全部楼层
    本帖最后由 arnoer 于 2012-9-24 23:25 编辑

    呵呵学习,嘻嘻ok最起码修改会简单的多了呵呵。。。

    补充内容 (2012-10-4 19:41):
    怎么跑到回收站了啊@@@@@
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    奋斗
    2019-6-11 00:10
  • 签到天数: 1041 天

    [LV.10]以坛为家III

    发表于 2012-9-24 19:08:49 | 显示全部楼层
    对的,,,,,支持楼主所说 有视频共享就更好了~~~~~~~~~~~~~
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    开心
    2016-8-30 21:32
  • 签到天数: 653 天

    [LV.9]以坛为家II

    发表于 2012-9-24 09:38:30 | 显示全部楼层
    破解说的很全面,期待续写。。。。。
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    开心
    2019-5-19 12:10
  • 签到天数: 602 天

    [LV.9]以坛为家II

    发表于 2012-9-24 09:48:03 | 显示全部楼层
    好东西 支持楼主继续            
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情

    2013-8-14 17:38
  • 签到天数: 88 天

    [LV.6]常住居民II

    发表于 2012-9-24 18:46:22 | 显示全部楼层
    支持一下 有视频共享就更好了~~~~~~~~~~~~~
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    开心
    15 小时前
  • 签到天数: 3315 天

    [LV.Master]伴坛终老

    发表于 2012-9-24 19:07:22 | 显示全部楼层
    这些东西太高深了,菜鸟看不懂,还是捡现成的吧。
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    奋斗
    2018-9-7 11:06
  • 签到天数: 1092 天

    [LV.10]以坛为家III

    发表于 2012-9-24 19:20:28 | 显示全部楼层

    支持一下 有视频共享就更好了~~~~~~~~~~~~~
    启用邀请码注册,提高发帖质量,建设交流社区
  • TA的每日心情
    奋斗
    2018-12-2 17:17
  • 签到天数: 390 天

    [LV.9]以坛为家II

    发表于 2012-9-25 11:27:37 | 显示全部楼层
    太精彩了,楼主真是授人以渔啊。希望精彩继续
    启用邀请码注册,提高发帖质量,建设交流社区
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    阳光推荐上一条 /1 下一条



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