也谈隐藏盘符等windows 的管理员的策略实现
2020-12-13 03:40
.text:7387F02B _SHRestricted@4 proc near ; CODE XREF: CMenuItemsCache::RefreshCachedDarwinShortcuts(int)+Dp
.text:7387F02B ; CDesktopBrowser::_ActivateView(void)+3Dp ...
.text:7387F02B
.text:7387F02B rest = dword ptr 8
.text:7387F02B
.text:7387F02B mov edi, edi
.text:7387F02D push ebp
.text:7387F02E mov ebp, esp
.text:7387F030 push offset ?g_lRestrictionsVersionNumber@@3JA ; long g_lRestrictionsVersionNumber
.text:7387F035 push 9Ch
.text:7387F03A push offset ?g_rgRestrictionItemValues@@3PAKA ; ulong * g_rgRestrictionItemValues
.text:7387F03F push offset unk_7387F058
.text:7387F044 push 0
.text:7387F046 push [ebp+rest]
.text:7387F049 call ds:__imp__SHRestrictionLookup@24 ; SHRestrictionLookup(x,x,x,x,x,x)
.text:7387F04F pop ebp
.text:7387F050 retn 4
.text:7387F050 _SHRestricted@4 endp
在其中调用了 SHLAPI.DLL 中的 SHRestrictionLookup
SHRestrictionLookup
函数如下:
会从注册表中获取值然后返回(如果没有获取 -1 没有获取),否则直接读取出来
在MSDN 中:
Determines whether a specified administrator policy is in effect. In many cases, applications need to modify certain behaviors in order to comply with the policies enacted by system administrators.
检测指定的管理员策略是否有效。在很多情况下,应用程序需要遵照系统管理员指定的策略依序修改某些行为。
系统行为是这个样子,如果我们的程序需要某些和系统行为不同,那么hook这个函数,并且返回和系统不同的值就能起到效果。
下一篇:数据结构之差分数组