Adresse zu LoadLibraryA irgendwo in der .exe hinterlegt?



  • Hallo,

    also da ich hier schon öfter schnell kompetente Hilfe bekommen habe versuch ich mein Glück erneut.
    Und zwar geht es um ein Framework mit welchem man bestehenden .exe Files Funktionen hinzufügen kann.
    Das pure hinzufügen von Code funktioniert schon, allerindgs hab ich das Problem das ich nicht weiß wie ich von diesem Code ( der vor dem normalen .exe Code ausgeführt wird ) zumindest verlässlich LoadLibrary und GetProcAddr aufrufen kann da ich ja nie weiß an welcher Adresse der Code landet, in welcher .exe und auch nicht in welchem OS er ausgeführt wird.

    Gibt es irgend einen Weg die 2 Funktions-Adressen auszulesen ohne API funktionen zu verwenden?

    Werden die vll irgendwo in der .exe hinterlegt? Kenn mich damit leider nicht so aus..

    mfg



  • Ohne garantie würd ich dir mal ne intensive Suche nach Import Address Table raten.

    🙂



  • Ah vielen Dank, das war das Stichwort das ich gebraucht hab 🙂
    Ich glaub das ist was ich gesucht hab, jetzt muss ich nur noch bischen durch das PE Format blicken aber das wird schon 😉
    Wenn nicht weiß ich ja wo mir geholfen wird, hehe.

    mfg



  • gern geschehen 😃



  • Hi Leute,

    Also ich habs tatsächlich geschafft mich durch den Haufen Pointer zu wühlen und hab gerade von ein paar zufälligen Test-Programmen die Imports ausgelesen und nirgends LoadLibraryA oder dergleichen gefunden..

    Dann hab ich eins meiner alten Programme genommen welches sicher LoadLibrary verwendet und naja.. das ist die Ausgabe:

    KERNEL32.dll
    AddAtomA
    CreateSemaphoreA
    ExitProcess
    FindAtomA
    GetAtomNameA
    GetLastError
    InterlockedDecrement
    InterlockedIncrement
    ReleaseSemaphore
    SetLastError
    SetUnhandledExceptionFilter
    Sleep
    TlsAlloc
    TlsFree
    TlsGetValue
    TlsSetValue
    WaitForSingleObject

    msvcrt.dll
    _fdopen
    _read
    _strdup
    _write

    msvcrt.dll
    __getmainargs
    __mb_cur_max
    __p__environ
    __p__fmode
    __set_app_type
    _assert
    _cexit
    _ctype
    _errno
    _filelengthi64
    _fstati64
    _iob
    _isctype
    _lseeki64
    _onexit
    _pctype
    _setmode
    _strnicmp
    _vsnprintf
    abort
    atexit
    fclose
    fflush
    fgetpos
    fopen
    fprintf
    fread
    free
    fsetpos
    fwrite
    getc
    localeconv
    malloc
    memchr
    memcpy
    memmove
    memset
    putc
    setlocale
    setvbuf
    signal
    strcmp
    strcoll
    strcpy
    strftime
    strlen
    strtod
    strxfrm
    system
    ungetc

    Wieso zur Hölle ist da kein LoadLibraryA ? 😕
    Überhaupt, warum sind, auch in großen Programmen wie ICQ, nur so wenig Imports? Und irgendwie immer die gleichen wenn ich das richtig in Erinnerung habe..

    Schonmal vielen Dank für eure Hilfe 🙂

    mfg



  • Ah ok, hatte nen kleinen Denkfehler drinnen, er hat immer die IAT vom gleichen programm ausgelesen 😉

    mfg


Anmelden zum Antworten