Win32 Api函数调试中断
发布时间:2020-12-14 01:43:21 所属栏目:Windows 来源:网络整理
导读:我想在SetTimer功能上休息一下,看看哪些组件用什么值注册什么定时器.这可能吗? 是的,你可以这样做.首先确保您的调试器具有 public symbols设置. SetTimer生活在user32,但这只是它导出的.最简单的方法是使用命令行调试器NTSD.我们需要其真实姓名,因此在user3
我想在SetTimer功能上休息一下,看看哪些组件用什么值注册什么定时器.这可能吗?
是的,你可以这样做.首先确保您的调试器具有
public symbols设置.
SetTimer生活在user32,但这只是它导出的.最简单的方法是使用命令行调试器NTSD.我们需要其真实姓名,因此在user32中查找匹配的符号: 0:000> x user32!*timer* 759992b9 USER32!NtUserValidateTimerCallback = <no type information> 759977d5 USER32!NtUserSetTimer = <no type information> 759e4f13 USER32!NtUserSetSystemTimer = <no type information> 759993bf USER32!NtUserKillTimer = <no type information> 啊,哈!它的调试符号是NtUserSetTimer: 0:000> bp user32!NtUserSetTimer 在Visual Studio中,您可以通过写入一个简单的scratch程序,然后设置断点并右键单击并选择“Go to Disassembly”来确定SetTimer的存在位置: int _tmain(int argc,_TCHAR* argv[]) { SetTimer(NULL,NULL); 004113BE mov esi,esp 004113C0 push 0 004113C2 push 0 004113C4 push 0 004113C6 push 0 004113C8 call dword ptr [__imp__SetTimer@16 (418338h)] 如果我们进入那个电话,那我们到这里来: _NtUserSetTimer@16: 759977D5 mov eax,123Dh 759977DA mov edx,7FFE0300h 759977DF call dword ptr [edx] 759977E1 ret 10h 所以在Visual Studio中设置一个断点,你必须在断点中使用context operator.从菜单中选择:Debug – >新断点 – >在功能中断,然后输入: {,user32.dll}_NtUserSetTimer@16 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- Windows上的cocos2d-x 3.x:如何更改游戏窗口的大
- microsoft-ui-automation – IUIAutomation :: R
- windows-server-2008 – 如何创建Hyper-V内部网络
- Windows 2003群集的Sane补丁计划
- 批处理文件 – Windows在PATH中搜索可执行文件的
- 通过NTLM从Windows上的Java SE6客户端进行HTTP“
- windows – 检查命令是否在CMD内部
- 在Windows Server上安装RequestTracker(RT)?
- windows设置多用户模式
- (如何)我可以在Windows上执行单个.cmake文件吗?
热点阅读