𝐙𝐆𝐐 ɪɴᴄ.的唠嗑频道
经提醒,目前推特不需要Play Integrity为STRONG了,BASIC也能登录,先别急着高兴,截至版本11.90.1,PairIP依旧存在,所以依旧需要GMS,需要去谷歌商店安装,甚至不能使用修改版,所谓的窗口期已经不复存在。 不知道PairIP是什么的看这里:https://t.me/CopyRightZGQInc/1887 目前的情况不容乐观,印证了issue评论区有位老哥说的: 10.85.0 maybe to test how it works, then they implement it…
https://t.me/xriprepo/5
看到这个相信你也明白发生什么了,能出包大概率用了过签技术,具体用的什么工具就别细究了,而且如果你有root,也可以自己注入jar,随便绕过随便替换,这里主要科普一下PairIP为什么这么难干。

PairIP几乎全部的校验逻辑在JNI层,干JNI层比干Java层痛苦,这东西相当于一个黑盒,不是logcat逆向调试就能看出逻辑的,Java层就没多少逻辑,链接中出现的替换lib的方法只针对市面上的原生库加了个PairIP,而推特使用的是谷歌自己的libpairipcore.so,就是说不能用市面上的原生库源码编译一下替换进去,所以链接作者是怎么做到的暂且不得而知。
再顺便说一下JNI相关的知识,这里引用网友“一只 傻猫”解释ffmpeg原生库的讲述:
mobile-ffmpeg其本质也是一种预制菜,ffmpeg用c写的,但app不认原始的c代码,只读的懂Java/Kotlin,那就得用ndk跨平台编译成共享库(.so,可以被Android加载和调用的二进制库)和写jni接口做java与c之间的翻译。其实就是一道做好了的预制菜,放微波炉加热就是加载和调用共享库,jni就是给app的说明书。

你可能还是听不懂,我换个比喻:
Java不需要知道c是怎么算的,可以理解成Java是日本人,c是中国人,Java发指令给c,c看不懂,JNI充当翻译官,c看懂了,吭哧吭哧算完,再把结果给JNI翻译,Java也就看懂了,重新编译实际上不算重新,还是做了特定适配用ndk从源码编译。

注意JNI这段的科普和逆向的关系并不大,我只是想说罢了,逆向JNI层可以说是“吃一个东西知道食谱是什么”,恕我无知,就不科普逆向知识了。
 
 
Back to Top