Pinpoint 破解
Pinpoint 破解
软件安装
1 | |
1 | |
环境配置
1 | |
1 | |
license文件上传接口:/platform/upload_file。

全局搜索Need valid license file无结果。于是搜索upload_file。
1 | |

1 | |

1 | |
1 | |
upload_file会调用_MainBlueprintManager__platform_manager.validate_file()
validate_file定义在文件./pp-platform/src/services/pp_platform_manager.pyc中,同样无法使用uncompyle6反编译。
1 | |
关键函数get_os_buf_limit,仅看这个函数名并不能猜测它的功能。
这个函数在文件./pp-platform/pp_service/utils.pyc中定义,这个文件居然可以用uncompyle6反编译成功。
1 | |
实际上是调用了so中的函数。env就是license文件的路径。
1 | |
根据这段代码发现开发者将关键字符串都进行了转换,保存在consts,使用时需要转码。
1 | |

Patch urils.py 实现破解:
1 | |

解决uncompyle6反编译失败

1 | |
根据报错信息可以确定是在反编译STORE_ANNOTATION指令时发生错误。
Python3.6.3指令表(Python-3.6.3/Include/opcode.h):
1 | |
根据指令序列,可以定位到STORE_ANNOTATION指令的位置。
1 | |

尝试将0x7f替换成其他指令后(如0x01),反编译成功。
1 | |
1 | |
除了utils.pyc, 还有一个jar文件(~/pinpoint/cafedragon/lib/cafedragon_tools_deploy.jar)中也有校验license文件的代码。

1 | |
1 | |
破解
方法一
在有一个许可证的情况下,修改系统时间,无限试用。
1 | |
方法二
Patch utils.pyc与cafedragon_tools_deploy.jar

1 | |