Hook de GetComputerNameA

Delphi

30/09/2008

Galera, é o seguinte: tava querendo fazer um programinha pra hookar a função GetComputerNameA. Até aí tudo bem, consegui hookar a função sem problema. O que eu queria era saber como mandar um resultado da função definido pelo meu programa. Tipo, o nome do meu pc é WINDOWS, mas eu queria que, quando a função GetComputerNameA fosse executada, ele não retornasse WINDOWS, retornasse CASA, por exemplo. É possível isso?
Aí vai meu código:

program MsgBox;

uses
Windows,
afxCodeHook,
SysUtils;

var
lpBuffer2 : PChar;
nSize2 : DWord;

GetComputerNameANextHook: function(lpBuffer: PAnsiChar; nSize: DWORD): Bool; stdcall;
const Buff_Size = MAX_COMPUTERNAME_LENGTH + 1;

function GetComputerNameAHookProc(lpBuffer: PAnsiChar; nSize: DWORD): Bool; stdcall;
begin
MessageBox(0, lpBuffer, ´Interceptação detectada A´, 0);

Result := GetComputerNameANextHook(lpBuffer, nSize);
end;




begin
//test the target API
MessageBox(0, ´´, ´hi´, 0);

//hook the API
HookCode(GetProcAddress(GetModuleHandle(´kernel32.dll´),´GetComputerNameA´), @GetComputerNameAHookProc, @GetComputerNameANextHook);

//testar
nSize2 := Buff_Size;
lpBuffer2 := StrAlloc(Buff_Size);
GetComputerName(lpBuffer2,nSize2);
MessageBox(0, PChar(lpBuffer2), PChar(lpBuffer2), 0);

//Unhoook the API
UnhookCode(@GetComputerNameANextHook);


end.


Se alguém puder ajudar, eu agradeço. :D


Dominus

Dominus

Curtidas 0
POSTAR