过年的时候,因为懒狗,只做了吾爱破解的签到题。现在想起来了,准备捡起来看看。
下载地址
https://www.52pojie.cn/forum.php?mod=viewthread&tid=2002909
初级题
打开app,是华为的 logo
jadx 打开,
androidx.viewpager2.widget.ViewPager2.setUserInputEnabled(true)
frida hook 永远设为true
function main() {Java.perform(function () {// 获取 ViewPager2 类的引用var ViewPager2 = Java.use('androidx.viewpager2.widget.ViewPager2');// 重写 setUserInputEnabled 方法ViewPager2.setUserInputEnabled.implementation = function (enabled) {// 强制将参数设置为 trueenabled = true;// 调用原方法this.setUserInputEnabled.overload('boolean').call(this, enabled);console.log('ViewPager2 setUserInputEnabled is always set to true');};
});}
frida -U -f com.zj.wuaipojie2025 -l chuji.js
嘿,您猜怎么着,可以看到三折叠了。
啥也没有,在类里点点,发现一个看上去是加密的地方
按 x 查看哪些类调用了 db()
加密的字符串,看着像flag,主动调用这个方法,看看解密出来是什么?
调用
function decode() {Java.perform(function () {// 获取 TO$Companion 类var TOCompanion = Java.use('com.zj.wuaipojie2025.TO$Companion');// 获取 TO$Companion 的实例var companionInstance = TOCompanion.$new();// 调用 createInstance 方法var toInstance = companionInstance.db("hjyaQ8jNSdp+mZic7Kdtyw==");// 打印 TO 实例console.log("TO db created: " + toInstance);});
}
emmm。
俗话所,三步之内必有解药。
它的附近还存在别的加密字符串,放进去
看样子是一部分的flag,搜索看看有没有其他 spu.s(
成功了。
结果
flag{xnkl2025!}
顺带一提,deepseek确实好用
提问:frida 创建一个新对象主动调用代码 com.zj.wuaipojie2025.TO$Companion
跑出来的可以直接用,大脑变得更平滑了。