说明:    我找到一个游戏程序的基址,但在游戏重新启动后仍然会有变化, 但xxx.dll+5778 这个偏移是不变的. 
xxx.dll的基址+5778 这个地址就可以得到这个游戏基址.
问题:   基址会根据这个dll的载入点不同变化?  如何取得这个xxx.dll的基址?  希望给出代码!

解决方案 »

  1.   

    var
      hLib: THandle;
      tInf: TModuleInfo;
    begin
      hLib:= LoadLibray('xxx.dll');  if hLib <> 0 then
      begin
        GetModuleInformation(GetCurrentProcess, hLib, @tInf, SizeOf(tInf));    // 这个就是你想要的:
        // tInf.lpBaseOfDll^
      end;
      //...
    end;
      

  2.   

    uses
      psapi;  //不好意思,写错一个单词: LoadLibrary  edit1.Text:= Format('%d', [DWORD(tInf.lpBaseOfDll)]);
      

  3.   

    你好,怎么我用不了?读不出这个DLL的基址?