first disable their anti hack if there is one.
Remove its files from the game and try to get game loading with the parameters to launch it (use process hacker when process starts normally from launcher right click it and go properties and look at its command line arguments / process arguments)
Use these in OllyDBG that you have stealth / phantom plugins for. (I think I uploaded one see my sig)
Then step into until you find error messages about GG or w/e not working.
Patch them so it does not care eg change it to NOP or a jg or jn to a JMP so it jumps over the error.
usually its something like
CALL SomeAntiHackInitFunction
TEST EAX,EAX
JZ Address After CALL ---- <<<<< Change this line to a JMP with your dll. (Make a signature for the area of code to modify.)
PUSH "Error"
PUSH "Anti Hack not loaded."
CALL MessageBox
--- Jump goes to here.
other code....
Usually anti hacks are loaded in the games main function after WinMain.
Before a CreateWindow call.
Usually anti hacks will load their dll with LoadLibrary of some sort.
If game is packed with themida or some other thing you can either unpack, or simply have your DLL detect when it is unpacked. (I look for the module "rsaenh.dll") As I noticed that to be the last one loaded before its unpacked.
Code:
HMODULE rsaenh = NULL;
do
{
rsaenh = GetModuleHandle("rsaenh.dll");
Sleep(1);
}
while(rsaenh==NULL);
Note if you do any lookup for Kernel32 on windows 8 this is loaded as KernelBase so you will want to check for both or have a windows7< check. I just check for both. If ones not found look at the other.
You might be able to get some ideas from my TSX Client post on here somewhere or this code here.
When you have coded your DLL to do your bypass and multi window etc you want to make a launcher to launch the game exe suspended.
Then inject the dll.
Then resume threads of process.
As for multi window hack.
Hook FindWindow it will be used to look up a window class. (It starts on desktop layer and does not go into each window for children windows) So you can also attach the game main window as a child window of a window you make.) This way it will never find it if hooking is not an option.
GL HF!