扫码加圈子
获内部资料
网络安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。
原文链接:https://xz.aliyun.com/t/17006
作者:1708124866250085
首先jadx打开,看看代码,老规矩,搜索isvip
点进str2所在,
可以看到str2不是传统的bool类型,而是一个string,然后expire也是一个string(通过frida hook之后发现是vip的到期时间的unix时间戳),所以话不多说,直接上frida,
Java.perform(function () {
varVipInfoModel = Java.use('com.dragon.read.user.model.VipInfoModel');
VipInfoModel.$init.overload('java.lang.String', 'java.lang.String', 'java.lang.String', 'boolean', 'boolean', 'int').implementation = function (str, str2, str3, z, z2, i) {
console.log("VipInfoModel constructor called!");
console.log("expireTime: " + str);
console.log("isVip (str2): " + str2);
console.log("leftTime: " + str3);
console.log("isAutoCharge: " + z);
console.log("isUnionVip: " + z2);
console.log("unionSource: " + i);
};
console.log("success");
});
发现输出是
所以,直接改了就行,
Java.perform(function () {
varVipInfoModel = Java.use('com.dragon.read.user.model.VipInfoModel');
VipInfoModel.$init.overload('java.lang.String', 'java.lang.String', 'java.lang.String', 'boolean', 'boolean', 'int').implementation = function (str, str2, str3, z, z2, i) {
console.log("VipInfoModel constructor called!");
console.log("expireTime: " + str);
console.log("isVip (str2): " + str2);
console.log("leftTime: " + str3);
console.log("isAutoCharge: " + z);
console.log("isUnionVip: " + z2);
console.log("unionSource: " + i);
var ret = this.$init("4102415999","1","100000",false,false,0);
console.log("Modified constructor return value: " + ret);
};
console.log("success");
});
原文始发于微信公众号(神农Sec):某小说vip破解代码分析
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论