windows - 如何使用 Visual Studio 知道 Windows 系统调用的汇编代码?
问题描述
我有兴趣找出 Windows API 函数之间的差异(实现方式)timeGetTime()
,GetTickCount()
因为源代码不会公开,我正在考虑使用 Visual Studio 中的汇编代码分析它们的实现,有人能提出更好的主意吗?
解决方案
为用户模式代码使用调试器,如Ollydbg、x64dbg、IDA pro或 Visual Studio 本身。如果您需要切换到内核模式端,请使用WinDBG。
编写一个尽可能简单的程序,然后调用您要分析的 API:
- 如果它不是系统范围的调试器,则将其加载到调试器中。
- 在 API 上设置断点。
- 运行程序。
- 一旦中断,根据需要单步执行。
调试器对 Windows 的了解越多(阅读更多调试符号),分析就越容易。
WinDBG 有丰富的符号库,但使用起来有点硬件。
要了解像您这样的 API GetTicksCount
,此页面可能会很有用:
正如Peter Corders所设想的那样,Windows 在所有用户模式进程共享的内存区域中公开频繁访问信息,例如滴答计数。
GetTicksCount
仅从中复制数据(进行一些同步)。
推荐阅读
- javascript - 发送回客户端的数据返回“未定义”
- xcode - 如何从 iPadOS 13 上的 WKWebView 中的 javascript 测试正在使用的 IOS
- java - Java 返回对象
- java - 拆分字符串,其中分隔字符串 ^^^^ 对正则表达式具有特殊含义
- javascript - How to get cell background color for table cell javascript?
- html - 为什么明显适合子内联块溢出?
- javascript - 无法读取未定义的属性“childImageSharp”
- google-earth-engine - 几何有太多边(谷歌地球引擎)。帮我
- angular - 在 Angular 8 中保存表单组的默认值
- powerbi - Power BI 聚合 - 详细信息表必须是 DirectQuery 表?