QQProtect.sys漏洞真有意思

去年发现3个直接信任用户输入BSOD漏洞,今天在看雪上又发现这个。

原文:http://bbs.pediy.com/showthread.php?t=179059

两处很2的逻辑

1:

        if( !IsFileDirectory( hFile ) ||
            !(bResult = IsDirectoryInQQSubBinDirTbl( FileName,MAX_UNICODE_STRING_CHARS)) &&
            !(bResult = IsDirectoryInMyProtectedDataFileDir(
                ((PFILE_RENAME_INFORMATION)FileInformation)->FileName,bytes / sizeof(WCHAR)))
        )
        {
            AdjustPathString( ((PFILE_RENAME_INFORMATION)FileInformation)->FileName,
                                (USHORT)(bytes / sizeof(WCHAR)));
            MakeNewQQPathDir( FileName,
                              ((PFILE_RENAME_INFORMATION)FileInformation)->FileName,
                              bytes / sizeof(WCHAR),
                              NewQQPathDir );
        }

||操作符,用的好很飘逸,不少php就用这个操作符对变量检测并赋值,QQ用的比较很2。保护思路应该为:如果是目录并且是QQ目录,就创建新路径。那么直接"IsFileDirectory &&",一点事没有。 

2.路径匹配

 if(lengthOfOldDir <= wcslen( g_PathRegValue ) &&
       !wcsnicmp( OldDir,g_PathRegValue,lengthOfOldDir ))

用户输入多长,就匹配多长,太不正经了。

转载于:https://www.cnblogs.com/ywledoc/p/3332804.html

<think>好的,用户遇到了“protect.wxml file not found in pages/my directory”的问题,需要解决。首先,我需要分析可能的原因,并给出对应的解决方案。 根据用户提供的引用内容,特别是引用[3]和[4],常见的WXML文件找不到错误通常与文件路径不正确或项目配置有关。用户提到他们删除了默认的index和logs文件,并修改了目录结构,这可能导致路径错误。此外,引用[4]中提到新建项目可能未被正确识别,可能需要重启工具或重新编译。 接下来,我需要整理解决步骤。首先检查文件路径是否正确,确保protect.wxml存在于指定的目录中。然后查看对应的JSON配置文件中的路径是否正确。如果路径正确,但问题仍然存在,可能需要检查开发工具是否需要重新编译或重启,如引用[4]所述。此外,清理缓存也是一个常见的解决方法,如引用[2]提到的。 还需要考虑是否有拼写错误或大小写问题,因为文件系统可能区分大小写。另外,检查app.json中的页面注册是否正确,确保protect页面被正确添加。 如果以上步骤都无效,可能需要检查项目配置或依赖是否正确安装,是否存在npm包缺失的情况,类似引用[1]中的问题。最后,如果所有方法都失败,建议用户提供更多信息以便进一步排查。 总结可能的解决方案并按步骤排列,确保用户能逐步排除问题。同时,生成相关问题帮助用户深入理解类似错误的处理方法。</think>针对$protect.wxml$文件未找到的问题,请按照以下步骤排查: ### 一、文件路径验证 1. 确认$pages/my/protect.wxml$文件实际存在 2. 检查目录结构是否满足: ``` project-root/ ├── pages/ │ └── my/ │ ├── protect.wxml │ ├── protect.js │ ├── protect.json │ └── protect.wxss ``` ### 二、配置文件检查 1. 在$app.json$中确认页面注册: ```json "pages": [ "pages/my/protect" ] ``` 2. 检查$protect.json$是否包含组件配置: ```json { "usingComponents": {} } ``` ### 三、开发工具操作 1. 执行菜单栏的「工具」->「项目」->「刷新项目」 2. 尝试关闭开发者工具后删除$project.config.json$中的`"miniprogramRoot"`字段 3. 清除缓存目录: ``` Windows: %USERPROFILE%\AppData\Local\微信开发者工具\User Data macOS: ~/Library/Application Support/微信开发者工具/ ``` ### 四、编译系统检测 使用命令行验证文件存在性: ```bash # Windows dir pages\my\protect.wxml /s # macOS/Linux ls -l pages/my/protect.wxml ``` ### 五、特殊场景处理 若使用第三方组件库(如vant-weapp),需在$protect.json$中配置正确路径[^1]: ```json { "usingComponents": { "van-button": "@vant/weapp/button/index" } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值