Code Injektion
Hej Eksperter..Jeg sidder med et spil, som jeg har decompiled for at lære dets hemmeligheder. Jeg kan bl.a se, at det indeholder admin commands som jeg som bruger logisk vis ikke har adgang til. I koden kan jeg se, at spillet giver adgang til disse commands hvis brugeren matcher en liste over AdminGUIDS, disse ID's bliver man tildelt når man logger ind, og jeg har ikke tænkt mig at lege med deres login server. Mit spørgsmål er derfor følgende: Hvordan eksekvere jeg følgende kommando, kan jeg inject et call til den class?
public void CheatAddTroops(int villageID, int troopsType, int numTroops)
{
if (this.CheatAddTroops_Callback == null)
{
this.CheatAddTroops_Callback = new AsyncCallback(this.OurRemoteAsyncCallBack_CheatAddTroops);
}
IService service = this.service;
RemoteServices.RemoteAsyncDelegate_CheatAddTroops remoteAsyncDelegateCheatAddTroop = new RemoteServices.RemoteAsyncDelegate_CheatAddTroops(service.CheatAddTroops);
this.registerRPCcall(remoteAsyncDelegateCheatAddTroop.BeginInvoke(this.UserID, this.SessionID, villageID, troopsType, numTroops, this.CheatAddTroops_Callback, null), typeof(CheatAddTroops_ReturnType));
}
Spillet laver et call back, for at spørge serveren om den må køre kommandoen, dette call back kan jeg via HTTPS proxy sætte til true, men hvordan injecter jeg f.eks.
CheatAddTroops(151651, 33, 500)