企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
[TOC] # 思维导图软件 ## 1、iMindMap >很好用 ![](https://box.kancloud.cn/2016-09-02_57c953691db73.jpg) ## 2、MindManager >据说很漂亮,还没有用 ## 3、XMind > 挺不错的 ![](https://box.kancloud.cn/2016-09-02_57c953691db73.jpg) ###破解方法 标 题: 【原创】mockplus软件的非主流破解方法 作 者: darksied 时 间: 2016-08-03,11:11:28 链 接: http://bbs.pediy.com/showthread.php?t=211997 mockplus,导出图片的时候提示需要专业版,免费版不支持导出,尝试能否突破。 声明:只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教! 1、在导出图片,有升级为专业版选项,点击后有正在更新数据,更新结果是升级失败,是免费用户。 凭感觉应该是从网络获取信息,使用smartSniff抓包。 有记录: TCP 192.168.1.12 121.40.151.193 36067 80 api.mockplus.cn 查看这个记录的详细信息 ``` GET /user/userinfo?Token=4ae91cfa-0ccc-4465-bf22-65e0a5bc6338 api.mockplus.cn返回的是JSON字符串 { "code": 0, "message": "成功", "user": { "id": 261184, "email": "test@163.com",//用户名,密码随便 "name": "test", "avatar": "https://cdns-mockplus-cn.alikunlun.com/avatar/13.jpg", "addTime": "2016-08-02T01:41:41.000Z", "expireTime": null, "license": { "version": "free" }, "referralCode": "rucvox", "maxProjectCount": 0, "emailVerified": 0, "from": "self", "color": "#4270f6" }, "count": { "receivedReview": 0, "sentReview": 0, "contacts": 0 } } ``` 在浏览器地址里直接输入 `api.mockplus.cn/user/userinfo?Token=4ae91cfa-0ccc-4465-bf22-65e0a5bc6338` 也能获取到这个字符串。注意: `Token` 后的字符串不一样,需要在 `mockplus` 中登录成功后,才能返回这个 `JSON`,否则返回未登录。 2、既然是从网上获取注册信息,那么想办法伪造这个网络api。 用vs2015中的mvc模板新建了个网站,部署在自己的iis上,同时在系统的 `host` 文件(`C:\Windows\System32\drivers\etc` 中)添加 `127.0.0.1 api.mockplus.cn`;通过这种方式把 `api.mockplus.cn` 的 `ip` 转为自己的新建的 `web` 的地址。 3、重新点击升级为专业版选项,程序表现和未做映射前一致。但是还是免费版。 4、分析 `JSON`,重要的是 `license` 这一节,`version` 值是 `free`,修改为版本号试试,点击升级为专业版选项,提示匹配失败。可以肯定这里是关键位置了。 5、用 `od` 加载 `mockplus.exe` 。尝试使用添加按钮断点的方式,发现这个程序中中使用gdi自己绘制的,水平不够,不会追。 查找字符串,搜索 `license`。找到 `push Unicode “license”` 这样的内容,查看上下文的代码。 发现规律性的。 ``` move edx "user" …… move edx "id" move edx "user" …… move edx "email" move edx "user" …… move edx "avatar" ``` 可以看出这是在解析 `JSON`。 一步步跟踪。看出 `version` 字段的值是 `pro` ,就是专业版。 同时专业版的 `license` 节中添加新的字段 `expired,remainDay,expireTime` 经过多次测试。字段值为: expired:null//过期时间? remainDay:300//专业版激活剩余时间,可以改大点 expireTime:"2017-08-02T01:41:41.000Z"//貌似不检测这个 6、让自己的iis中的网站返回修改后的 `json` ``` { "code": 0, "message": "成功", "user": { "id": 261184, "email": "test@163.com",//用户名,密码随便 "name": "test", "avatar": "https://cdns-mockplus-cn.alikunlun.com/avatar/13.jpg", "addTime": "2016-08-02T01:41:41.000Z", "expireTime": null, "license": { "version": "pro", "expired": null, "remainDay": 300,//剩余的天数 "expireTime": "2017-08-02T01:41:41.000Z" }, "referralCode": "rucvox", "maxProjectCount": 0, "emailVerified": 0, "from": "self", "color": "#4270f6" }, "count": { "receivedReview": 0, "sentReview": 0, "contacts": 0 } } ``` 在软件中点击升级为专业版选项,提示升级成功,剩余天数301天。 7、这个时候,如果关闭软件,在打开,会要求重新登录,用随便一个用户名密码肯定不成功,因为这个也是到网络验证的。 同样抓包(抓包的时候把host里的映射注释掉),调用的 `/user/login` 网络接口。 在自己的网站里添加并模拟。 具体的json为: ``` { "code": 0, "message": "成功", "user": { "id": 261184, "email": "test@163.com",//用户名,密码随便 "name": "test", "avatar": "https://cdns-mockplus-cn.alikunlun.com/avatar/13.jpg", "addTime": "2016-08-02T01:41:41.000Z", "expireTime": null, "license": { "version": "pro", "expired": null, "remainDay": 300,//剩余的天数 "expireTime": "2017-08-02T01:41:41.000Z" }, "referralCode": "rucvox", "maxProjectCount": 0, "emailVerified": 0, "from": "self", "color": "#4270f6" }, "sid":"4ae91cfa-0ccc-4465-bf22-65e0a5bc6338" } ``` 8、打开 `host` 里的映射。可以用随便的用户名密码登录了,而且也是专业版了。 9、具体的关键点没有追,就暂时用这种方式吧。