今天偶然看到了小红薯线上包可以打开开发者调试面板,于是我也准备试下。
据说是在设置里一直点啊点,就可以唤出来 Debug面板,可是我一直点啊点,一直没有反应
于是乎,我就得想办法自己把它呼出来。
首先,我需要下载一个低版本的小红书,直接从 App Store 下载最新版应该是已经去除了 Debug 组件。

好的我这里选择了 8.71 版本,距离最新版那么远,想必应该是有 Debug组件的。只要组件打包进了 APP里,你远程再怎么配置,我本地也可以绕过。
说干就干,砸壳,反编译看看究竟有什么:

拖进 IDA分析,发现一个可疑组件 DebugPanelViewController:

跟进分析,发现了开关:

这里很明显了, [XYMacroDefine debugORAdhoc] 估计就是确定内版还是外版。
如果是内版,这里应该就是配置开关把。

好的,没错,HOOK HOOK
创建文件 XhsPlugin

HOOK就是了:
@implementation XhsPlugin : NSObject
static bool (*orig_mfDebugEnable)(id _Nonnull self, SEL _Nonnull _cmd);
static bool (*orig_debugORAdhoc)(id _Nonnull self, SEL _Nonnull _cmd);
+(void)setup
{
if([[[NSBundle mainBundle] bundleIdentifier] isEqualToString:@"com.xingin.discover"])
{
[XhsPlugin install];
}
}
+(void) install {
Class XYJankMonitorExpManager = objc_getMetaClass("XYJankMonitorExpManager");
HookMessageEx(XYJankMonitorExpManager, NSSelectorFromString(@"mfDebugEnable"), (IMP)&fake_mfDebugEnable, (IMP*)&orig_mfDebugEnable);
Class XYMacroDefine = objc_getMetaClass("XYMacroDefine");
HookMessageEx(XYMacroDefine, NSSelectorFromString(@"debugORAdhoc"), (IMP)&fake_debugORAdhoc, (IMP*)&orig_debugORAdhoc);
NSLog(@"XhsPlugin instal success");
}
static bool fake_mfDebugEnable(id _Nonnull self, SEL _Nonnull _cmd) {
return true;
}
static bool fake_debugORAdhoc(id _Nonnull self, SEL _Nonnull _cmd) {
return true;
}
@end
编译,一切就绪,注入,打开红薯:

在红圈圈那里一直点点点,然后,它来了:

[培训]科锐逆向工程师培训第53期2025年7月8日开班!