some detections are not crashing you straight away, meaning you might get a successful hook going but doesn't mean it not detected, I agree with starting from the basic hook and then if no crash(after 10+ minutes) add one function at time until you get a crash, then it's more than likely the last function added back into the hack that is being detected. Once you found the function giving you the detection then modify it, for example split the function into a couple of mini functions to avoid detection of the original function.
Example(Delphi) but same princiable applys
Function iOwnAcea( szInPut: String): Boolean;
var
isAsshole: Boolean;
begin
Result:= False;
if szInPut = 'Acea' then
isAsshole:= True;
Result:= isAsshole;
end;
you could modify the function like this
Function iOwnAcea( szInPut: String): Boolean;
var
isAsshole: Boolean;
begin
Result:= True;
if Not szInPut = 'Acea' then
isAsshole:= False;
Result:= isAsshole;
end;
Or split the function into mini functions....
Function SetFalse(): Boolean;
begin
Result:= False;
end;
Function SetTrue(): Boolean;
begin
Result:= True;
end;
Function iOwnAcea( szInPut: String): Boolean;
var
isAsshole: Boolean;
begin
Result:= SetFalse;
if szInPut = 'Acea' then
isAsshole:= SetTrue;
Result:= isAsshole;
end;