How to link undocumented windows apis?
For example,
there is an api in windows called SHCreateDesktop,
It is located in shell32.dll, but Microsoft keeps this symbol private,
so using shell32.lib won't link in the api to the executable.
If I really want to use it, how do I call this api in my vc++ program?
Thanks
Jack
Re: How to link undocumented windows apis?
Re: How to link undocumented windows apis?
Quote:
Originally Posted by
lucky6969b
For example,
there is an api in windows called SHCreateDesktop,
It is located in shell32.dll, but Microsoft keeps this symbol private,
so using shell32.lib won't link in the api to the executable.
If I really want to use it, how do I call this api in my vc++ program?
Thanks
Jack
Kind of wondering why some folks tend to gravitate toward undocumented winapi's. Can you explain why you think it's a good idea?
Re: How to link undocumented windows apis?
Quote:
Originally Posted by
Arjay
Kind of wondering why some folks tend to gravitate toward undocumented winapi's. Can you explain why you think it's a good idea?
Kind of self-affirmation?
Re: How to link undocumented windows apis?
Hello,
I am also wondering why some apis live in the area around 0x7xxxxxxxxx
but it is just in the user space area. but in 32bit windows environment, the kernel space actually starts at 0x80000000
When those user modules are loaded, they stay in a fixed address, only thunks can call them
I am looking into ways to load windows xp explorer in windows 7. But The thunks are one problem,
I can hook them, but what about the internal data structures? like pointers, that might call an absolute address in the same module or another module. So what is the minimum address that would be regarded as the
"kernel", or "user executvie" area?
Not just to prove myself, but as you know, windows xp user executives just can adapt in windows 7 environment,
they are different animals, I have to spawn a separate explorer.exe on another desktop out, I have to get rid of
all the out-of-range internal calls and thunk calls.
Thanks
Jack
Re: How to link undocumented windows apis?
There have been major changes to the underlying OS architecture between XP and Windows 7 via Vista. Why are you expending so much effort trying to get XP explorer to work with Windows 7?
Re: How to link undocumented windows apis?
Quote:
Originally Posted by
lucky6969b
For example,
there is an api in windows called SHCreateDesktop,
It is located in shell32.dll, but Microsoft keeps this symbol private,
so using shell32.lib won't link in the api to the executable.
If I really want to use it, how do I call this api in my vc++ program?
Thanks
Jack
Did you ever hear about dynamic linking? How much you know about dlls? How much you know about import libraries and creating those? We need to know this to understand where to start explaining.
Re: How to link undocumented windows apis?
Try this to link undocumented Windows API
Reflection. Here you get an object and ask it to reveal information about itself, like methods, properties etc.
With the right options (depending on language) you can reveal information that isn't "public".
Decompilation. This regenerates (a version) of the source used to create the binary. Again this might reveal non public parts of the API.
Let me know if this works for you or not!
Tim Paine
Re: How to link undocumented windows apis?
Why the quest for using undocumented APIs? Is writing fragile, unsupported code a 'thing'? Given 2020 wasn't all that great, let's kick off 2021 in the right direction - let's try to color inside the lines in 2021 and only use documented APIs.