引入
Windows 传统 APP 中,系统都没有提供权限的管控。所以对于一些截屏、录屏和其他隐私功能,我们只能采取一些其他方式,例如 hook 来进行权限管控。
接下来便以拦截截屏为例,来演示权限管理。
确定对应 App 的方式
因为截屏的方式有很多种,确认应用采取的方式后,可以更好的验证,并且不会误伤到其他行为。
💡 实际真实用的时候,需要考虑的点更多。这里只是演示。
通过 Api Monitor 来监听行为
API Monitor 可以通过这里下载:Downloads | rohitab.com
下载后,会得到两个版本。一个 32 位的,一个 64 位的。
如果想监听 32 位应用,就用 32 位的 api monitor;否则就用 64 位的。
这里以 snipaste.exe 为例。
确认其位数: 64位。
找到目标进程
然后在左下角的 Running Processes 中找到对应的应用:
💡 如果找不到你想要的应用。有可能是因为权限的问题,可以用管理员权限打开。或者点击左上方那个管理员盾牌图标。
确定要监听的 API 集合
我们这里要查看的是截屏,所以这里选择这个大类【Graphice and Gaming】
开始监听
通过双击选中的 snipaste.exe
就可以开始进行监听了。就像下面这样:
接下来我们尝试截个屏,立马取消,之后暂停监听(左上角工具栏有暂停的图标),就可以看到关键调用:
可以确定,它采用的是 gdi 的方式来截屏的。
Hook 对应的 API
确定方式之后,根据调用的接口,我们可以选择 BitBlt
这个接口来进行 hook。BitBlt