[C++] Hex von 0.3.7 RC4

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
  • Wie bekomme ich die HEX Codes eigentlich raus?


    Durch Reverse Engeneering OlyDebug oder IDA (Pro) eignen sich da


    Das ist Maschinencode ups


    Das ist kein Maschinen Code, das was du suchst ist der Offset zur Funktion logprintf

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • hab jetzt nur dank einer dll aus dem rgn forum einige adressen für die RC 4 :)


    @m4a_X: :)

  • Ich habe mich jetzt mal durchgeklickt 123marvin123:


    Leider habe ich weder die richtige Adresse aus OlyDebug rausbekommen noch hat mir die Anleitung was dazu gebraucht.


    Spoiler anzeigen
    #include "Main.h"

    Spoiler anzeigen
    #ifdef _WIN32
    DWORD CAddress::FUNC_Logprintf_03ZR4 = 0x004875F0;
    DWORD CAddress::FUNC_Logprintf_037RC4 = kp;
    #else
    DWORD CAddress::FUNC_Logprintf_03ZR4 = 0x80A7A90;
    DWORD CAddress::FUNC_Logprintf_037RC4 = kp;
    #endif

    Spoiler anzeigen
    // Callbacks
    DWORD CAddress::CALLBACK_CFilterScriptPool__OnPlayerGiveDamage = NULL;

    Spoiler anzeigen
    // Functions
    DWORD CAddress::FUNC_CreateNPC_RPC = NULL;
    DWORD CAddress::FUNC_CPlayerPool__DeletePlayer = NULL;

    Spoiler anzeigen
    DWORD CAddress::FUNC_CPlayer__SpawnForWorld = NULL;
    DWORD CAddress::FUNC_CPlayer__Kill = NULL;
    DWORD CAddress::FUNC_CPlayer__EnterVehicle = NULL;
    DWORD CAddress::FUNC_CPlayer__ExitVehicle = NULL;

    Spoiler anzeigen
    DWORD CAddress::FUNC_CConfig__GetValueAsInteger = NULL;

    Spoiler anzeigen
    DWORD CAddress::FUNC_GetVehicleModelInfo = NULL;

    Spoiler anzeigen
    // Variables
    DWORD CAddress::VAR_ServerPtr = NULL;
    DWORD CAddress::VAR_ConfigPtr = NULL;
    DWORD CAddress::VAR_RakPeerPtr = NULL;
    DWORD CAddress::VAR_ServerAuthentication = NULL;

    Spoiler anzeigen
    void CAddress::Initialize(eSAMPVersion sampVersion)
    {
    switch(sampVersion)
    {
    case SAMP_VERSION_03Z_R4:
    {
    #ifdef _WIN32
    // Credits to therainycat
    CALLBACK_CFilterScriptPool__OnPlayerGiveDamage = 0x48E7CF;

    Spoiler anzeigen
    FUNC_CPlayerPool__DeletePlayer = 0x4661A0;
    FUNC_CPlayer__Kill = 0x480E10;
    FUNC_CPlayer__EnterVehicle = 0x481510;
    FUNC_CPlayer__ExitVehicle = 0x481630;
    FUNC_CPlayer__SpawnForWorld = 0x483590;
    FUNC_GetVehicleModelInfo = 0x484AA0;
    FUNC_CConfig__GetValueAsInteger = 0x4862F0;
    FUNC_CreateNPC_RPC = 0x48C460;

    VAR_ServerAuthentication = 0x4F3390;
    #else
    // Credits to Lorenc_
    CALLBACK_CFilterScriptPool__OnPlayerGiveDamage = 0x80B1367;

    Spoiler anzeigen
    FUNC_CPlayerPool__DeletePlayer = 0x80CE870;
    FUNC_CreateNPC_RPC = 0x80AE660;
    FUNC_CPlayer__SpawnForWorld = 0x80CB160;
    FUNC_CPlayer__Kill = 0x80C9620;
    FUNC_CPlayer__EnterVehicle = 0x80CA360;
    FUNC_CPlayer__ExitVehicle = 0x80CA4E0;
    FUNC_CConfig__GetValueAsInteger = 0x809EFE0;
    FUNC_GetVehicleModelInfo = 0x80D3A20;

    Spoiler anzeigen
    VAR_ServerAuthentication = 0x819CB8C;
    #endif
    break;
    }
    #ifndef _WIN32
    case SAMP_VERSION_03Z_R4_1000P:
    {
    CALLBACK_CFilterScriptPool__OnPlayerGiveDamage = 0x80B1663;

    Spoiler anzeigen
    FUNC_CPlayerPool__DeletePlayer = 0x80CE870;
    FUNC_CreateNPC_RPC = 0x80AE660;
    FUNC_CPlayer__SpawnForWorld = 0x80CB160;
    FUNC_CPlayer__Kill = 0x80C9620;
    FUNC_CPlayer__EnterVehicle = 0x80CA360;
    FUNC_CPlayer__ExitVehicle = 0x80CA4E0;
    FUNC_CConfig__GetValueAsInteger = 0x809EFE0;
    FUNC_GetVehicleModelInfo = 0x80D3A30;

    Spoiler anzeigen
    VAR_ServerAuthentication = 0x819C5AC;
    break;
    }
    #endif
    }
    VAR_ServerPtr = CSAMPFunctions::GetNetGame();
    VAR_ConfigPtr = CSAMPFunctions::GetConsole();
    VAR_RakPeerPtr = CSAMPFunctions::GetRakServer();
    }


    /edit
    Ich habe mir mit OllyDBG jetzt die 0.3z Version angesehen


    Hier wird folgendes angegeben:
    00497921 . E8 6E060000 CALL samp-ser.00497F94


    aber im Plugin wird
    DWORD CAddress::FUNC_Logprintf_03ZR4 = 0x004875F0;
    angegeben


    (Die 0x muss man sowieso glaub hinzufügen)

  • Wenn ich das richtig sehe willst du diese Funktionen von deinem Plugin aufrufen? Wenn ja, dann machst du das völlig falsch.
    Lies dir das ganze Tutorial mal durch, dort steht auch wie du den Index einer Funktionen rausfinden kannst. (amx_FindNative, amx_Exec)

  • Ja, es ist wie "Suche die Nadel im Heuhaufen", willkommen im Bereich des Reverse Engineering.
    Sicherlich habe ich nicht behauptet, dass es einfach wäre.. oder etwa doch? Du kannst mich sicherlich aufklären.
    Du solltest dir, bevor du überhaupt versuchst irgendelche Offsets oder Addressen zu "patchen" oder was auch immer du damit machen willst, erst einmal ansehen, WIE man diese Strukturen/Adressen/Pointer findet und damit umgeht. Oder in deinem Fall: "Was sind überhaupt Offsets?"
    Mit Ollydebug bist du schon gut bedient, damit findest du die richtigen Offsets, aber das ist scheinbar zu schwierig für dich, also lass es lieber.
    Vielleicht solltest du dich erst einmal mit der Materie befassen.
    So etwas wie eine "Karte" existiert bei OllyDebug nicht, du musst dir vielleicht einfach mal das Programm ansehen und einige Tutorials lesen.
    Jeder findet seine Offsets selber, kleiner Tipp: Im http://www.unknowncheats.me/forum/ (Oh, hilfe, ein Cheat Forum) wird dir sicherlich besser geholfen, als es hier jemand kann.

    Einmal editiert, zuletzt von alva ()

  • Um welches Plugin handelt es sich denn ?


    Vielleicht kann man ja auch so helfen.


    http://forum.sa-mp.com/showthread.php?t=428066


    FCNPC


    Liebe Grüße.


    /edit
    Habe von RC4 (0.3.7) die Addresse rausbekommen "0x00488620"


    Allerdings hatte ich keine Chance bei diesen Addressen:

    Spoiler anzeigen
    // Credits to therainycat
    CALLBACK_CFilterScriptPool__OnPlayerGiveDamage = 0x48E7CF;

    Spoiler anzeigen
    FUNC_CPlayerPool__DeletePlayer = 0x4661A0;
    FUNC_CPlayer__Kill = 0x480E10;
    FUNC_CPlayer__EnterVehicle = 0x481510;
    FUNC_CPlayer__ExitVehicle = 0x481630;
    FUNC_CPlayer__SpawnForWorld = 0x483590;
    FUNC_GetVehicleModelInfo = 0x484AA0;
    FUNC_CConfig__GetValueAsInteger = 0x4862F0;
    FUNC_CreateNPC_RPC = 0x48C460;

    VAR_ServerAuthentication = 0x4F3390;


    /edit2
    0046ADB1 |. 68 34F54A00 |PUSH samp-ser.004AF534 ; ASCII "OnPlayerEnterVehicle"
    Das müsste doch die Adresse für FUNC_CPlayer__EnterVehicle sein? (0x4AF534)


    2 Mal editiert, zuletzt von EinfachMax ()