最近在做一个NSE,把RAR文件虚拟成一个folder,所有前期准备工作做完后,突然发现SHITEMID的结构要变一变,让它能更好地对齐,从:
bool bFolder;
wchar_t parent[var_len];
UINT size;
wchar_t name[var_len];
改为:
BOOL bFolder;
UINT size;
wchar_t parent[var_len];wchar_t name[var_len];
噩梦从此开始,改完之后,BOOL bFolder的sizeof还是1 (==sizeof(bool)),后续的所有域的值就都不对了。
折腾了几个小时回家睡觉,早上起来重启机器,突然发现CompareIDs用一个昨天临时创建、今天根本不存在的目录和其它目录做比较。OMG!难道是这厮把PIDL给cache住了?!
马上把rar文件改个名重试,一切正常。。。。。。。。。。。。。。
博主在做NSE时,将RAR文件虚拟成文件夹,前期准备完成后变更SHITEMID结构,导致后续域值不对。折腾数小时后回家,次日重启机器,发现CompareIDs用不存在的目录比较,怀疑PIDL被缓存,改名rar文件后恢复正常。
3738

被折叠的 条评论
为什么被折叠?



