首页
社区
课程
招聘
调用者检测?

最近在网上看到有人说代码中可以对调用者是不是属于自己的程序进行检测,用来提高软件的安全性。但是我在网上搜调用者检测没找到相关内容,想问下这项技术的确切名称是什么?如果我想在自己的软件中加入相关的内容应该怎么做呢?

收藏
2条回答
丿刀川 2021-9-12

是堆栈检测,检查返回值吗?

回复
0346954 2021-9-13 2021-9-13编辑

调用RtlCaptureContext函数,此函数传入参数是个CONTEXT指针,函数返回后此指针中的eip变量为当前函数返回后CPU即将执行的指令的地址,获取的eip可能不成功,如果当前函数没有保存栈帧,如
push ebp
mov ebp, esp
如果函数开头没有这两条指令,那么获取的调用者就不对,如果可以正确获取到调用者,然后枚举当前进程的模块,获取exe及合法模块的起始地址、结束地址,判断是否刚才获取的eip是不是落在这些区间内,来提高软件的安全性。
可以参考这篇文章:
http://www.voidcn.com/article/p-helhxifq-hk.html

回复