我正在尝试制作一个Shim应用程序,它可以通知我调用SetEvent函数的时间和位置。要制作这个Shim应用程序,我需要在Shim.def中将我的自定义API注册为Setevent函数的序号。
下面是我的def文件的示例,其中左边是API名称,右边是来自Microsoft的标准序号值

APIHook_CeSetUserNotification               @473
APIHook_CeSetUserNotificationEx             @1352
APIHook_CreateProcessW                      @493
APIHook_SetTimeZoneInformation              @28
QueryShimInfo                               @7
APIHook_SetEventData                        @1528

请告诉我如何获取SetEvent()的序数值?

最佳答案

在Windows CE上,SetEvent的定义如下:

_inline BOOL SetEvent(HANDLE h) {
    return EventModify(h,EVENT_SET);
}

所以您需要钩住coredll.dll中的EventModify
你会发现序数使用:
dumpbin  /EXPORTS  coredll.dll

或者,您也可以在CE sdk的coredll.def文件中找到序号:
EventModify=xxx_EventModify @494

10-02 03:03