I have decided to add import table hook/patching to http://search.cpan.org/~bulkdd/Win32-API-0.70_02/Callback.pm . The technique is old (an example http://sandsprite.com/CodeStuff/Understanding_imports.html ), but has never been available to Perl Code before. Import table hooking allows a user to use Win32::API::Callback callbacks to intercept the function call from DLL (shared library) (the importer) to another DLL (the exporter), on the importer side. This will allow a syscall/OS call to be hooked using Perl and Perl code is used to implement the original C function call, or intercept and modify the arguments and return value from the caller to the callee function. The hooking is done, and undone on demand during runtime. Most people's, or atleast my typical usage of the feature, callstack wise will be,
OS process start->runops/Perl code in Perl->XS or Perl Core call to imported C function or syscall->Win32::API::Callback::IATPatch patch to import table of XS lib or perl core interp->Win32::API::Callback's C/Asm code->runops/Perl sub in Perl->Win32::API->original imported function I thought of the name Win32::API::Callback::IATPatch. Win32::API::Callback::IATPatch is package/class name, but not a separate PM file. Win32::API::Callback::IATPatch is implemented entirely in Win32:::API::Callback's XS code. Does anyone have anything against this name or a better suggestion? Other names I though of are Win32:::API::Callback::ImportPatch, Win32:::API::Callback::Patch, Win32::API::Callback::Hook, and Win32::API::Callback::Intercept.