Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

[Orpheu] Sygnatury funkcji


  • Zamknięty Temat jest zamknięty
Brak odpowiedzi do tego tematu

#1 Dwdov

    Profesjonalista

  • Zbanowany

Reputacja: 59
Pomocny

  • Postów:172
  • Imię:Dawid
  • Lokalizacja:Jawor
Offline

Napisano 22.07.2011 21:16

Orpheu nie jest takie trudne w sumie, ale mam jedno pytanie bo nie mogę sprawdzić. Chcę się dowiedzieć czy moje rozumowanie jest poprawne :P
Stworzyłem sygnature bitową dla funkcji od granatów CanDeploy:
w IDA wygląda tak:
55 89 E5 8B 45 ? 8B 90 ? ? ? ? 8B 80 ? ? ? ? C1 E2 02 05 F4 05 ? ?
I w IDA znajduje funkcje:
CanDeploy_10CFlashbang
CanDeploy_10CHEGrenade
CanDeploy_10CSmokeGrenade
Teraz od razu mówię nie - sygnatura nie jest za krótka. Wypatrzyłem że każda z tych funkcji należy do innej klasy - dobra w takim razie są to funkcje wirtualne.
CFlashBang
CHEGrenade
CSmokeGrenade
No to dobra trzeba przerobić sygnature pod orpheu
[0x55,0x89,0xE5,0x8B,0x45,"*",0x8B,0x90,"*","*","*","*",0x8B,0x80,"*","*","*","*",,0xC1,0xE2,0x02,0x05,0xF4,0x05,"*","*"]
I teraz wystarczy wypełnić sygnature w tym wypadku dla smoke
{
    "name" : "CanDeploy",
    "class" : "CSmokeGrenade",
    "library" : "mod",
    "arguments"  :
    [
          {
   			"type" : "int"
          }
   ],
   "return" :
   {
                "type" : "bool"
   },
  "indexes":
    [
        {
            "os" : "windows",
            "mod" : "cstrike",
            "value" : [0x55,0x89,0xE5,0x8B,0x45,"*",0x8B,0x90,"*","*","*","*",0x8B,0x80,"*","*","*","*",,0xC1,0xE2,0x02,0x05,0xF4,0x05,"*","*"]
        },
	{
            "os" : "linux",
            "mod" : "cstrike",
              "value" : "CanDeploy__10CSmokeGrenade"
	}
    ]
}

Dobrze to zrobiłem? Jak nie to gdzie błędy - chwilowo nie mogę przetestować czy działa :P



Nie pomagam na PW, tylko na forum.





Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych