(转)C# XMPP客户端与openfire通信(Matrix Xmpp 授权破解教程)

FROM:http://www.cnblogs.com/crabo/p/CRACK_MATRIX_XMPP.html

如此著名的XMPP , 居然试过jabber-net, agsXmpp,matrix Xmpp, 无数多个例子, 居然没有一个能实现最简单的 发消息、收消息功能。好无语。

最后还是决定从商业产品 Matrix Xmapp 入手, 最终得以成功。因为是个人简单测试, 但又不喜欢30天的license, 爆破一下。

1. 下载发现有.NET 版,MONO版,SilverLight版, .NET版文件最大, 同时也发现使用PublicToken、 关键资源串外置到Resource,大致就是说, .NET版本破解最难。 幸好有MONO版, 先进行简单测试, 使用Evaluation 授权测试功能正常。  于是目标锁定MONO版。

2.去除dll签名

3.反混淆处理

4.Reflector打开

5. 晕, 无法看到方法对不对?  没关系, 我们只要看IL即可, 请出神器 ReflexIL

6. 可以看到, 关键的验证部分是  Class112.method_33()

7. 读了一下, 只是把XML检验了一下签名。OK, 把全部删除, 留下 return LicenseError.NONE 这句即可。

8. 保存文件, 收工。

===================

最后嘛, 就可以按我们自己需要, 随便设定一个license, 因为都不会校验了嘛。 但是lic文件还是要符合格式的。

<License xmlns="ag-software:license"><ProductId>Studio</ProductId><Quantity>1</Quantity><Customer><Name>Evaluator</Name><Company>Evaluation License</Company><Email>[email protected]</Email></Customer><UpdateExpireDate>20150128</UpdateExpireDate><IsDemo>true</IsDemo><DemoExpireDate>20131227</DemoExpireDate><Signature>======MY SIG=====</Signature></License>

如果你已经爆破好了, 可以试试我这段base64处理好的到2030年的license:

eJxkkFtPwzAMhf8K4hVB2u5WkInQ2jJtVLBRrQPesjUZYUl6SUK7/XoGuyF4sY79WT5HhpgvqNL0rJFC6dtzsrzUOTM1qeiN2KFzDOMqz+zCDDOcGJvxHNBpAhNLlOFmjV1ARw2B1SaXtMLwSCTF0ScRlpi8AvTTQ5DLgqj1AfBcne2jADowiCThAmsiqL77lewq2y7t2Hb5aDQtMmJo1BS8ouFWYc9pOU7L8wH9QzDUIZU5ZkR8O+47+K5/D7S9HqA/ABK+VMTYiuLAs2XYjfuDyeu7ispSyGeml29JGvp+3HWTrhdKt+CKz1itUtF5Ccb1TMh67s/SwSp99HqtBXGXvGw/+6t1man1vPnsTNJmNFrwazPb1B/FRf+JFZOmcSK37oyZu3JVkRinKJnvesFmOu42Jqhfhz22GYziWCvH3/ILM/2w9ypG/QcWtZh1bgGdcgPa/xt/CSA=

ENJOY!

时间: 09-27

(转)C# XMPP客户端与openfire通信(Matrix Xmpp 授权破解教程)的相关文章

iOS学习43即时通信之XMPP(2)

本篇是 即时通信之XMPP(2) 接上次 即时通信之XMPP(1) 1. 好友列表 1> 初始化好友花名册 // 获取管理好友的单例对象 XMPPRosterCoreDataStorage *rosterStorage = [XMPPRosterCoreDataStorage sharedInstance]; // 给roster属性进行初始化 self.xmppRoster = [[XMPPRoster alloc] initWithRosterStorage:rosterStorage di

XMPP仅借助openfire实现群聊的流程图

其实这种搭建临时聊天室的策略有种"中病毒"的意思,就好比我QQ给你发了一个exe然后你中毒了一样.我们给需要添加进聊天室的小伙伴们统一发送一条消息,同时为消息添加一个结点(相当于exe病毒),上面绑定者我们手动输入的聊天室的名字以及随之而产生的RoomJid,对方用户只要接收到就会被添加进聊天组. 其中的原因在于我们可以很便捷无误地向其他用户发送离线消息,但是离线邀请却不一定能准确送达,必须是用户在线情况下才能收到. XMPP仅借助openfire实现群聊的流程图,布布扣,bubuko

XMPP聊天之Openfire 的安装和配置---Mac OS

一.下载并安装openfire 1.下载最新的openfire安装文件 官方下载站点:http://www.igniterealtime.org/downloads/index.jsp#openfire openfire是服务器,下面还有一个spark,这个是一个XMPP协议通信聊天的CS的IM软件,它可以通过openfire进行聊天对话. 2. 点击安装,并执行默认操作 3. 启动openfire服务 在系统偏好设置的其他里,点击openfire偏好 启动后,点击Open Admin Cons

手机上使用asmack开发xmpp客户端

openfire服务端,smack:     下载地址:http://www.igniterealtime.org/downloads/index.jsp     源代码:http://www.igniterealtime.org/downloads/source.jspandroid客户端库,asmack:    首页:https://github.com/Flowdalic/asmack    源代码及jar包:http://asmack.freakempire.de/服务端搭建指导:htt

应用java多线程实现服务器端与多客户端之间的通信

应用多线程来实现服务器与多线程之间的通信的基本步骤 1.服务器端创建ServerSocket,循环调用accept()等待客户端链接 2.客户端创建一个Socket并请求和服务器端链接 3.服务器端接受客户端请求,创建socekt与该客户端建立专线链接 4.建立链接的socket在一个单独的线程上对话 5.服务器继续等待新的链接 服务器端Server.java package test.concurrent.socket; import java.io.*; import java.net.In

【c#源码】安卓客户端通过TCP通信与Windows服务器进行文件传输

APK文件  (对应的windows服务器端已经架设好,可以直接下载进行测试) 源码     数据库文件 在前面一篇文章:[源码]c#编写的安卓客户端与Windows服务器程序进行网络通信 中我们探讨了,如何通过xamarin技术,完成安卓客户端与Windows服务器的通信,这篇文章,我们探讨一下使用场景非常多的文件传输. 先谈一下为什么使用xamarin.android技术吧,之前有开发过一个公文系统,c#语言开发,服务器部署在Windows Server 2003上,客户端采用Winform

Android基于XMPP Smack及Openfire学习笔记(1)

之前开发的项目中实用到IM聊天功能.可是这块功能公司有专门的IM团队来开发,由他们开发好后.直接接入到我们APP中.我參与写IM相关功能非常地少,所以也一直想学习相关知识 . 眼下Android主要用的是XMPP协议及OPenfireserver来实现IM功能,我也从这块入手学习.也感谢全部分享资料让我有机会学习的同行们. 如今正式開始啦. 第一步:搭建Openfireserver: Openfire工具下载地址:http://www.igniterealtime.org/downloads/i

JavaScript中利用Ajax 实现客户端与服务器端通信(九)

一:Ajax (Asynchronous JavaScript and XML)不是一个新的技术,事实上,它是一些旧有的成熟的技术以一种全新的更加强大的方式整合在一起 Ajax的关键技术: 1.使用XHTML(HTML)和CSS构建标准化的展示层 2.使用DOM进行动态显示和交互 3.使用XML和XSLT进行数据交换和操纵 4.使用XMLHttpRequest异步获取数据 5.使用JavaScript将所有元素绑定在一起 二:如何去写Ajax应用程序: 第一步:创建一个XMLHTTP对象 第二的

c/c++服务端,java客户端采用Protobuf通信

C++ server:linux, protoc -I=./ --cpp_out=./ Infor.protoJava client:包含protobuf-java-2.5.0.jar包, protoc.exe --java_out=./ Infor.proto Infor.proto文件: 1 message my_message{ 2 required string startedTime =1; 3 required string version=2; 4 required double