Hook CreateWindowEx ( 积分: 100 )

  • 主题发起人 主题发起人 Mclkings
  • 开始时间 开始时间
M

Mclkings

Unregistered / Unconfirmed
GUEST, unregistred user!
我用D7 生成一个普通exe, 我对其进行 hook

想测试的结果是 更改 其类名 条件: 我没有那个exe源代码的情况下怎么改类名.

为什么我 api hook CreateWindowExA

我引表 hook 和 loadlibrary 那种 hook 都试过了,都 hook 不到,

谢谢.
 
没人回答嘛? 版主...我先顶一下
 
hook不到函数,还是不能修改呢
 
hook 不到, 我想知道为什么hook 不到,

还是我方法错了.

大哥哥们,做个实验试一下.
 
你试过修改前5个字节进行jmp的方式吗?
 
你用你的方式 hook 一下,测试一下.
我都 hook不到.我怎么测试,
我hook 别的函数没有问题,
 
function CreateWindowExA(dwExStyle: DWORD; lpClassName: PAnsiChar;
lpWindowName: PAnsiChar; dwStyle: DWORD; X, Y, nWidth, nHeight: Integer;
hWndParent: HWND; hMenu: HMENU; hInstance: HINST; lpParam: Pointer): HWND;
var
FPUCW: Word;
begin
FPUCW := Get8087CW;
Result := _CreateWindowExA(dwExStyle, lpClassName, lpWindowName, dwStyle,
X, Y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam);
Set8087CW(FPUCW);
end;
这个是delphi7的过程,你要hook的函数应该是_CreateWindowExA吧.
 
CreateWindowExW才是,到Windows中统一的是W结尾的Function调用.
 
两个函数都要Hook才行.或者Hook User32CreateWindowEx
Windows的源代码中:
HWND STDCALL
CreateWindowExA(DWORD dwExStyle,
LPCSTR lpClassName,
LPCSTR lpWindowName,
DWORD dwStyle,
int x,
int y,
int nWidth,
int nHeight,
HWND hWndParent,
HMENU hMenu,
HINSTANCE hInstance,
LPVOID lpParam)
{
return User32CreateWindowEx(dwExStyle,
lpClassName,
lpWindowName,
dwStyle,
x,
y,
nWidth,
nHeight,
hWndParent,
hMenu,
hInstance,
lpParam,
FALSE);
}


/*
* @implemented
*/
HWND STDCALL
CreateWindowExW(DWORD dwExStyle,
LPCWSTR lpClassName,
LPCWSTR lpWindowName,
DWORD dwStyle,
int x,
int y,
int nWidth,
int nHeight,
HWND hWndParent,
HMENU hMenu,
HINSTANCE hInstance,
LPVOID lpParam)
{
return User32CreateWindowEx(dwExStyle,
(LPCSTR) lpClassName,
(LPCSTR) lpWindowName,
dwStyle,
x,
y,
nWidth,
nHeight,
hWndParent,
hMenu,
hInstance,
lpParam,
TRUE);
}
 
没有什么东西是 Hook 不到的,能力问题。
 
白河愁 我如果不是能力有问题, 我就不会来问.
 
后退
顶部