在上章节中介绍了利用ebp返回地址检测非法call函数调用、如何实现VS2010调试器的调用堆栈列表的方法,在这章节中,我们换另一种内联汇编的方法实现的深度多层调用堆栈检测,示例代码如下:
AsmStackCheck.cpp
// AsmStackCheck.cpp : 定义控制台应用程序的入口点。
//#include "stdafx.h"
#include "Public.h"
#include "EnumModule.h"
#include "EasyHook.h"// 定义函数指针
typedef BOOL (WINAPI *fun_MessageBoxW)(HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType);// 原始函数地址
fun_MessageBoxW g_pOldMessageBoxW = MessageBoxW;// 钩子过滤函数检测非法ebp
BOOL WINAPI new_MessageBoxW(HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType)
{StartCheckStack();return g_pOldMessageBoxW(hWnd, lpText, lpCaption, uType);
}// 弹窗测试
int WINAPI MsgBox()
{return MessageBoxW(NULL, L"
本文发布于:2024-01-30 01:53:11,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170655079518396.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |