Symbolliste für Module in Prozessbild programmatisch erlangen



  • Gibt's einen nicht vollkommen zurückgebliebenen Weg, sich die Symbole einer Abbilddatei (EXE, DLL) programmatisch holen zu lassen, die bereits im Adressraum eines Prozesses liegt? Irgendwie muss ja GetProcAddress in der Lage sein, den Ort einer Funktion zu ermitteln, und dies auf eine nicht vollkommen zurückgebliebene Art und Weise.

    Meine bisherigen Versuche, die Symbole über Dbghelp.dll zu holen, sind jedenfalls komplett zurückgeblieben, hauptsächlich wegen SymLoadModuleEx. Die Funktion akzeptiert zwar als Parameter die Basisadresse und die Modulgröße (die ich mir mit GetModuleInformation holen kann), aber dann will SymEnumSymbols trotz Erfolg (gibt TRUE zurück) meinen Callback nimmer aufrufen, so als ob es keine Symbole gefunden hätte. Der einzige Weg, über den ich zuverlässig den Callback aufgerufen bekommen habe, war die Basisadresse und Modulgröße leer zu lassen und stattdessen den Pfad zum Abbild anzugeben, was aber die DLL nochmal komplett neu in den Adressraum einlädt. Das weiß ich, weil SymLoadModuleEx die Adresse des *eingeladenen Abbildes zurückgibt (If the function succeeds, the return value is the base address of the loaded module), und diese Adresse unterscheidet sich von der Moduladresse, die ich schon habe. In einer Iteration war C:\Windows\AppPatch\AcGenral.DLL in Adresse 0x01120000 geladen, aber SymLoadModuleEx hat dann das Modul noch mal in 0x755e0000 geladen. Ich gehe davon aus, dass GetProcAddress das schließlich auch nicht machen muss.

    Wenn's hierfür keinen nicht zurückgebliebenen Weg gibt, dann dumpe ich mir die Abbilddaten halt in eine Datei und schau dann nach einem Weg, die Exporttabelle manuell zu ermitteln und zu dumpen. Sachen wie DUMPBIN oder objdump für 'ne Windows-Toolchain kann ich absolut nicht gebrauchen.



  • @Cerrseien sagte in Symbolliste für Module in Prozessbild programmatisch erlangen:

    und dies auf eine nicht vollkommen zurückgebliebene Art und Weise.

    Da hab ich dann aufgehört zu lesen ...



  • @manni66
    Bei aller Liebe mach das. Auf Metzgergänge, wie sie mir bisher aufgeschwatzt wurden, kann ich gerne verzichten.



  • Ich habe mir mal den Quellcode von GetProcAddress in Wine angeschaut. Ist natürlich furchtbar ineffizent (warum sollte man die gleichen Prüfungen bei jedem Funktionsaufruf machen, wenn sich das Modul nimmer verschiebt - und selbst, wenn es sich verschieben täte, was es in der Regel eben nicht tut, sollte das dann eh nicht komplett egal sein, weil RVAs relativ zur Basisadresse sind?), aber das Grundgerüst ist einigermaßen solide. HMODULEs zeigen auf den MZ-Header des Binaries, von dort hangelt man sich zum NT-Header, prüft auf den optionalen Header, und schaut im .edata-Verzeichnis nach Exportdaten. Wenn diese vorhanden sind, hangelt man sich zur Exportverzeichnistabelle, in der drei RVAs zum dynamischen Auflösen von Funktionen stehen: AddressOfNames, welches einfach nur ein 32-Bit-Array von RVAs auf Strings ist; AddressOfNameOrdinals, ein 16-Bit-Array, welches sich den Index mit AddressOfNames teilt (über diesen Index werden Codepointer mit Namen verbunden), und dessen Werte Indizes beinhalten, mit denen man sich die Adresse der Funktion über AddressOfFunctions holen kann; und natürlich AddressOfFunctions, wieder ein 32-Bit-Array mit den RVAs der exportierten Funktion. Funktioniert ganz gut, würde ich sagen:

    0x502D0000:  C:\Windows\SysWOW64\api-ms-win-crt-string-l1-1-0.dll
    [Forwarder Symbols]
    Index:   0 | RVA: 1857 | Symbol: ucrtbase.__isascii
    Index:   1 | RVA: 1873 | Symbol: ucrtbase.__iscsym
    Index:   2 | RVA: 188f | Symbol: ucrtbase.__iscsymf
    Index:   3 | RVA: 18ac | Symbol: ucrtbase.__iswcsym
    Index:   4 | RVA: 18ca | Symbol: ucrtbase.__iswcsymf
    Index:   5 | RVA: 18e8 | Symbol: ucrtbase.__strncnt
    Index:   6 | RVA: 1905 | Symbol: ucrtbase.__wcsncnt
    Index:   7 | RVA: 1923 | Symbol: ucrtbase._isalnum_l
    Index:   8 | RVA: 1942 | Symbol: ucrtbase._isalpha_l
    Index:   9 | RVA: 1961 | Symbol: ucrtbase._isblank_l
    Index:  10 | RVA: 1980 | Symbol: ucrtbase._iscntrl_l
    Index:  11 | RVA: 199d | Symbol: ucrtbase._isctype
    Index:  12 | RVA: 19ba | Symbol: ucrtbase._isctype_l
    Index:  13 | RVA: 19d9 | Symbol: ucrtbase._isdigit_l
    Index:  14 | RVA: 19f8 | Symbol: ucrtbase._isgraph_l
    Index:  15 | RVA: 1a1a | Symbol: ucrtbase._isleadbyte_l
    Index:  16 | RVA: 1a3c | Symbol: ucrtbase._islower_l
    Index:  17 | RVA: 1a5b | Symbol: ucrtbase._isprint_l
    Index:  18 | RVA: 1a7a | Symbol: ucrtbase._ispunct_l
    Index:  19 | RVA: 1a99 | Symbol: ucrtbase._isspace_l
    Index:  20 | RVA: 1ab8 | Symbol: ucrtbase._isupper_l
    Index:  21 | RVA: 1ad8 | Symbol: ucrtbase._iswalnum_l
    Index:  22 | RVA: 1af9 | Symbol: ucrtbase._iswalpha_l
    Index:  23 | RVA: 1b1a | Symbol: ucrtbase._iswblank_l
    Index:  24 | RVA: 1b3b | Symbol: ucrtbase._iswcntrl_l
    Index:  25 | RVA: 1b5b | Symbol: ucrtbase._iswcsym_l
    Index:  26 | RVA: 1b7b | Symbol: ucrtbase._iswcsymf_l
    Index:  27 | RVA: 1b9c | Symbol: ucrtbase._iswctype_l
    Index:  28 | RVA: 1bbd | Symbol: ucrtbase._iswdigit_l
    Index:  29 | RVA: 1bde | Symbol: ucrtbase._iswgraph_l
    Index:  30 | RVA: 1bff | Symbol: ucrtbase._iswlower_l
    Index:  31 | RVA: 1c20 | Symbol: ucrtbase._iswprint_l
    Index:  32 | RVA: 1c41 | Symbol: ucrtbase._iswpunct_l
    Index:  33 | RVA: 1c62 | Symbol: ucrtbase._iswspace_l
    Index:  34 | RVA: 1c83 | Symbol: ucrtbase._iswupper_l
    Index:  35 | RVA: 1ca5 | Symbol: ucrtbase._iswxdigit_l
    Index:  36 | RVA: 1cc7 | Symbol: ucrtbase._isxdigit_l
    Index:  37 | RVA: 1ce5 | Symbol: ucrtbase._memccpy
    Index:  38 | RVA: 1d00 | Symbol: ucrtbase._memicmp
    Index:  39 | RVA: 1d1d | Symbol: ucrtbase._memicmp_l
    Index:  40 | RVA: 1d3c | Symbol: ucrtbase._strcoll_l
    Index:  41 | RVA: 1d58 | Symbol: ucrtbase._strdup
    Index:  42 | RVA: 1d72 | Symbol: ucrtbase._stricmp
    Index:  43 | RVA: 1d8f | Symbol: ucrtbase._stricmp_l
    Index:  44 | RVA: 1dad | Symbol: ucrtbase._stricoll
    Index:  45 | RVA: 1dcc | Symbol: ucrtbase._stricoll_l
    Index:  46 | RVA: 1de9 | Symbol: ucrtbase._strlwr
    Index:  47 | RVA: 1e04 | Symbol: ucrtbase._strlwr_l
    Index:  48 | RVA: 1e21 | Symbol: ucrtbase._strlwr_s
    Index:  49 | RVA: 1e40 | Symbol: ucrtbase._strlwr_s_l
    Index:  50 | RVA: 1e5f | Symbol: ucrtbase._strncoll
    Index:  51 | RVA: 1e7e | Symbol: ucrtbase._strncoll_l
    Index:  52 | RVA: 1e9d | Symbol: ucrtbase._strnicmp
    Index:  53 | RVA: 1ebc | Symbol: ucrtbase._strnicmp_l
    Index:  54 | RVA: 1edc | Symbol: ucrtbase._strnicoll
    Index:  55 | RVA: 1efd | Symbol: ucrtbase._strnicoll_l
    Index:  56 | RVA: 1f1c | Symbol: ucrtbase._strnset
    Index:  57 | RVA: 1f39 | Symbol: ucrtbase._strnset_s
    Index:  58 | RVA: 1f55 | Symbol: ucrtbase._strrev
    Index:  59 | RVA: 1f6e | Symbol: ucrtbase._strset
    Index:  60 | RVA: 1f89 | Symbol: ucrtbase._strset_s
    Index:  61 | RVA: 1fa4 | Symbol: ucrtbase._strupr
    Index:  62 | RVA: 1fbf | Symbol: ucrtbase._strupr_l
    Index:  63 | RVA: 1fdc | Symbol: ucrtbase._strupr_s
    Index:  64 | RVA: 1ffb | Symbol: ucrtbase._strupr_s_l
    Index:  65 | RVA: 201b | Symbol: ucrtbase._strxfrm_l
    Index:  66 | RVA: 2038 | Symbol: ucrtbase._tolower
    Index:  67 | RVA: 2055 | Symbol: ucrtbase._tolower_l
    Index:  68 | RVA: 2072 | Symbol: ucrtbase._toupper
    Index:  69 | RVA: 208f | Symbol: ucrtbase._toupper_l
    Index:  70 | RVA: 20af | Symbol: ucrtbase._towlower_l
    Index:  71 | RVA: 20d0 | Symbol: ucrtbase._towupper_l
    Index:  72 | RVA: 20f0 | Symbol: ucrtbase._wcscoll_l
    Index:  73 | RVA: 210c | Symbol: ucrtbase._wcsdup
    Index:  74 | RVA: 2126 | Symbol: ucrtbase._wcsicmp
    Index:  75 | RVA: 2143 | Symbol: ucrtbase._wcsicmp_l
    Index:  76 | RVA: 2161 | Symbol: ucrtbase._wcsicoll
    Index:  77 | RVA: 2180 | Symbol: ucrtbase._wcsicoll_l
    Index:  78 | RVA: 219d | Symbol: ucrtbase._wcslwr
    Index:  79 | RVA: 21b8 | Symbol: ucrtbase._wcslwr_l
    Index:  80 | RVA: 21d5 | Symbol: ucrtbase._wcslwr_s
    Index:  81 | RVA: 21f4 | Symbol: ucrtbase._wcslwr_s_l
    Index:  82 | RVA: 2213 | Symbol: ucrtbase._wcsncoll
    Index:  83 | RVA: 2232 | Symbol: ucrtbase._wcsncoll_l
    Index:  84 | RVA: 2251 | Symbol: ucrtbase._wcsnicmp
    Index:  85 | RVA: 2270 | Symbol: ucrtbase._wcsnicmp_l
    Index:  86 | RVA: 2290 | Symbol: ucrtbase._wcsnicoll
    Index:  87 | RVA: 22b1 | Symbol: ucrtbase._wcsnicoll_l
    Index:  88 | RVA: 22d0 | Symbol: ucrtbase._wcsnset
    Index:  89 | RVA: 22ed | Symbol: ucrtbase._wcsnset_s
    Index:  90 | RVA: 2309 | Symbol: ucrtbase._wcsrev
    Index:  91 | RVA: 2322 | Symbol: ucrtbase._wcsset
    Index:  92 | RVA: 233d | Symbol: ucrtbase._wcsset_s
    Index:  93 | RVA: 2358 | Symbol: ucrtbase._wcsupr
    Index:  94 | RVA: 2373 | Symbol: ucrtbase._wcsupr_l
    Index:  95 | RVA: 2390 | Symbol: ucrtbase._wcsupr_s
    Index:  96 | RVA: 23af | Symbol: ucrtbase._wcsupr_s_l
    Index:  97 | RVA: 23cf | Symbol: ucrtbase._wcsxfrm_l
    Index:  98 | RVA: 23eb | Symbol: ucrtbase._wctype
    Index:  99 | RVA: 2406 | Symbol: ucrtbase.is_wctype
    Index: 100 | RVA: 2421 | Symbol: ucrtbase.isalnum
    Index: 101 | RVA: 243a | Symbol: ucrtbase.isalpha
    Index: 102 | RVA: 2453 | Symbol: ucrtbase.isblank
    Index: 103 | RVA: 246c | Symbol: ucrtbase.iscntrl
    Index: 104 | RVA: 2485 | Symbol: ucrtbase.isdigit
    Index: 105 | RVA: 249e | Symbol: ucrtbase.isgraph
    Index: 106 | RVA: 24ba | Symbol: ucrtbase.isleadbyte
    Index: 107 | RVA: 24d6 | Symbol: ucrtbase.islower
    Index: 108 | RVA: 24ef | Symbol: ucrtbase.isprint
    Index: 109 | RVA: 2508 | Symbol: ucrtbase.ispunct
    Index: 110 | RVA: 2521 | Symbol: ucrtbase.isspace
    Index: 111 | RVA: 253a | Symbol: ucrtbase.isupper
    Index: 112 | RVA: 2554 | Symbol: ucrtbase.iswalnum
    Index: 113 | RVA: 256f | Symbol: ucrtbase.iswalpha
    Index: 114 | RVA: 258a | Symbol: ucrtbase.iswascii
    Index: 115 | RVA: 25a5 | Symbol: ucrtbase.iswblank
    Index: 116 | RVA: 25c0 | Symbol: ucrtbase.iswcntrl
    Index: 117 | RVA: 25db | Symbol: ucrtbase.iswctype
    Index: 118 | RVA: 25f6 | Symbol: ucrtbase.iswdigit
    Index: 119 | RVA: 2611 | Symbol: ucrtbase.iswgraph
    Index: 120 | RVA: 262c | Symbol: ucrtbase.iswlower
    Index: 121 | RVA: 2647 | Symbol: ucrtbase.iswprint
    Index: 122 | RVA: 2662 | Symbol: ucrtbase.iswpunct
    Index: 123 | RVA: 267d | Symbol: ucrtbase.iswspace
    Index: 124 | RVA: 2698 | Symbol: ucrtbase.iswupper
    Index: 125 | RVA: 26b4 | Symbol: ucrtbase.iswxdigit
    Index: 126 | RVA: 26d0 | Symbol: ucrtbase.isxdigit
    Index: 127 | RVA: 26e8 | Symbol: ucrtbase.mblen
    Index: 128 | RVA: 26fe | Symbol: ucrtbase.mbrlen
    Index: 129 | RVA: 2717 | Symbol: ucrtbase.memcpy_s
    Index: 130 | RVA: 2733 | Symbol: ucrtbase.memmove_s
    Index: 131 | RVA: 274d | Symbol: ucrtbase.memset
    Index: 132 | RVA: 2764 | Symbol: ucrtbase.strcat
    Index: 133 | RVA: 277d | Symbol: ucrtbase.strcat_s
    Index: 134 | RVA: 2796 | Symbol: ucrtbase.strcmp
    Index: 135 | RVA: 27ae | Symbol: ucrtbase.strcoll
    Index: 136 | RVA: 27c6 | Symbol: ucrtbase.strcpy
    Index: 137 | RVA: 27df | Symbol: ucrtbase.strcpy_s
    Index: 138 | RVA: 27f9 | Symbol: ucrtbase.strcspn
    Index: 139 | RVA: 2811 | Symbol: ucrtbase.strlen
    Index: 140 | RVA: 2829 | Symbol: ucrtbase.strncat
    Index: 141 | RVA: 2844 | Symbol: ucrtbase.strncat_s
    Index: 142 | RVA: 285f | Symbol: ucrtbase.strncmp
    Index: 143 | RVA: 2878 | Symbol: ucrtbase.strncpy
    Index: 144 | RVA: 2893 | Symbol: ucrtbase.strncpy_s
    Index: 145 | RVA: 28ae | Symbol: ucrtbase.strnlen
    Index: 146 | RVA: 28c7 | Symbol: ucrtbase.strpbrk
    Index: 147 | RVA: 28df | Symbol: ucrtbase.strspn
    Index: 148 | RVA: 28f6 | Symbol: ucrtbase.strtok
    Index: 149 | RVA: 290f | Symbol: ucrtbase.strtok_s
    Index: 150 | RVA: 2929 | Symbol: ucrtbase.strxfrm
    Index: 151 | RVA: 2942 | Symbol: ucrtbase.tolower
    Index: 152 | RVA: 295b | Symbol: ucrtbase.toupper
    Index: 153 | RVA: 2976 | Symbol: ucrtbase.towctrans
    Index: 154 | RVA: 2992 | Symbol: ucrtbase.towlower
    Index: 155 | RVA: 29ad | Symbol: ucrtbase.towupper
    Index: 156 | RVA: 29c6 | Symbol: ucrtbase.wcscat
    Index: 157 | RVA: 29df | Symbol: ucrtbase.wcscat_s
    Index: 158 | RVA: 29f8 | Symbol: ucrtbase.wcscmp
    Index: 159 | RVA: 2a10 | Symbol: ucrtbase.wcscoll
    Index: 160 | RVA: 2a28 | Symbol: ucrtbase.wcscpy
    Index: 161 | RVA: 2a41 | Symbol: ucrtbase.wcscpy_s
    Index: 162 | RVA: 2a5b | Symbol: ucrtbase.wcscspn
    Index: 163 | RVA: 2a73 | Symbol: ucrtbase.wcslen
    Index: 164 | RVA: 2a8b | Symbol: ucrtbase.wcsncat
    Index: 165 | RVA: 2aa6 | Symbol: ucrtbase.wcsncat_s
    Index: 166 | RVA: 2ac1 | Symbol: ucrtbase.wcsncmp
    Index: 167 | RVA: 2ada | Symbol: ucrtbase.wcsncpy
    Index: 168 | RVA: 2af5 | Symbol: ucrtbase.wcsncpy_s
    Index: 169 | RVA: 2b10 | Symbol: ucrtbase.wcsnlen
    Index: 170 | RVA: 2b29 | Symbol: ucrtbase.wcspbrk
    Index: 171 | RVA: 2b41 | Symbol: ucrtbase.wcsspn
    Index: 172 | RVA: 2b58 | Symbol: ucrtbase.wcstok
    Index: 173 | RVA: 2b71 | Symbol: ucrtbase.wcstok_s
    Index: 174 | RVA: 2b8b | Symbol: ucrtbase.wcsxfrm
    Index: 175 | RVA: 2ba3 | Symbol: ucrtbase.wctype
    Index: 176 | RVA: 2bbd | Symbol: ucrtbase.wmemcpy_s
    Index: 177 | RVA: 2bdb | Symbol: ucrtbase.wmemmove_s
    
    [Exported Symbols]
    Index:   0 | Ordinal:   0 | RVA: 1857 | Adress: 502D1857 | Symbol: __isascii
    Index:   1 | Ordinal:   1 | RVA: 1873 | Adress: 502D1873 | Symbol: __iscsym
    Index:   2 | Ordinal:   2 | RVA: 188f | Adress: 502D188F | Symbol: __iscsymf
    Index:   3 | Ordinal:   3 | RVA: 18ac | Adress: 502D18AC | Symbol: __iswcsym
    Index:   4 | Ordinal:   4 | RVA: 18ca | Adress: 502D18CA | Symbol: __iswcsymf
    Index:   5 | Ordinal:   5 | RVA: 18e8 | Adress: 502D18E8 | Symbol: __strncnt
    Index:   6 | Ordinal:   6 | RVA: 1905 | Adress: 502D1905 | Symbol: __wcsncnt
    Index:   7 | Ordinal:   7 | RVA: 1923 | Adress: 502D1923 | Symbol: _isalnum_l
    Index:   8 | Ordinal:   8 | RVA: 1942 | Adress: 502D1942 | Symbol: _isalpha_l
    Index:   9 | Ordinal:   9 | RVA: 1961 | Adress: 502D1961 | Symbol: _isblank_l
    Index:  10 | Ordinal:  10 | RVA: 1980 | Adress: 502D1980 | Symbol: _iscntrl_l
    Index:  11 | Ordinal:  11 | RVA: 199d | Adress: 502D199D | Symbol: _isctype
    Index:  12 | Ordinal:  12 | RVA: 19ba | Adress: 502D19BA | Symbol: _isctype_l
    Index:  13 | Ordinal:  13 | RVA: 19d9 | Adress: 502D19D9 | Symbol: _isdigit_l
    Index:  14 | Ordinal:  14 | RVA: 19f8 | Adress: 502D19F8 | Symbol: _isgraph_l
    Index:  15 | Ordinal:  15 | RVA: 1a1a | Adress: 502D1A1A | Symbol: _isleadbyte_l
    Index:  16 | Ordinal:  16 | RVA: 1a3c | Adress: 502D1A3C | Symbol: _islower_l
    Index:  17 | Ordinal:  17 | RVA: 1a5b | Adress: 502D1A5B | Symbol: _isprint_l
    Index:  18 | Ordinal:  18 | RVA: 1a7a | Adress: 502D1A7A | Symbol: _ispunct_l
    Index:  19 | Ordinal:  19 | RVA: 1a99 | Adress: 502D1A99 | Symbol: _isspace_l
    Index:  20 | Ordinal:  20 | RVA: 1ab8 | Adress: 502D1AB8 | Symbol: _isupper_l
    Index:  21 | Ordinal:  21 | RVA: 1ad8 | Adress: 502D1AD8 | Symbol: _iswalnum_l
    Index:  22 | Ordinal:  22 | RVA: 1af9 | Adress: 502D1AF9 | Symbol: _iswalpha_l
    Index:  23 | Ordinal:  23 | RVA: 1b1a | Adress: 502D1B1A | Symbol: _iswblank_l
    Index:  24 | Ordinal:  24 | RVA: 1b3b | Adress: 502D1B3B | Symbol: _iswcntrl_l
    Index:  25 | Ordinal:  25 | RVA: 1b5b | Adress: 502D1B5B | Symbol: _iswcsym_l
    Index:  26 | Ordinal:  26 | RVA: 1b7b | Adress: 502D1B7B | Symbol: _iswcsymf_l
    Index:  27 | Ordinal:  27 | RVA: 1b9c | Adress: 502D1B9C | Symbol: _iswctype_l
    Index:  28 | Ordinal:  28 | RVA: 1bbd | Adress: 502D1BBD | Symbol: _iswdigit_l
    Index:  29 | Ordinal:  29 | RVA: 1bde | Adress: 502D1BDE | Symbol: _iswgraph_l
    Index:  30 | Ordinal:  30 | RVA: 1bff | Adress: 502D1BFF | Symbol: _iswlower_l
    Index:  31 | Ordinal:  31 | RVA: 1c20 | Adress: 502D1C20 | Symbol: _iswprint_l
    Index:  32 | Ordinal:  32 | RVA: 1c41 | Adress: 502D1C41 | Symbol: _iswpunct_l
    Index:  33 | Ordinal:  33 | RVA: 1c62 | Adress: 502D1C62 | Symbol: _iswspace_l
    Index:  34 | Ordinal:  34 | RVA: 1c83 | Adress: 502D1C83 | Symbol: _iswupper_l
    Index:  35 | Ordinal:  35 | RVA: 1ca5 | Adress: 502D1CA5 | Symbol: _iswxdigit_l
    Index:  36 | Ordinal:  36 | RVA: 1cc7 | Adress: 502D1CC7 | Symbol: _isxdigit_l
    Index:  37 | Ordinal:  37 | RVA: 1ce5 | Adress: 502D1CE5 | Symbol: _memccpy
    Index:  38 | Ordinal:  38 | RVA: 1d00 | Adress: 502D1D00 | Symbol: _memicmp
    Index:  39 | Ordinal:  39 | RVA: 1d1d | Adress: 502D1D1D | Symbol: _memicmp_l
    Index:  40 | Ordinal:  40 | RVA: 1d3c | Adress: 502D1D3C | Symbol: _strcoll_l
    Index:  41 | Ordinal:  41 | RVA: 1d58 | Adress: 502D1D58 | Symbol: _strdup
    Index:  42 | Ordinal:  42 | RVA: 1d72 | Adress: 502D1D72 | Symbol: _stricmp
    Index:  43 | Ordinal:  43 | RVA: 1d8f | Adress: 502D1D8F | Symbol: _stricmp_l
    Index:  44 | Ordinal:  44 | RVA: 1dad | Adress: 502D1DAD | Symbol: _stricoll
    Index:  45 | Ordinal:  45 | RVA: 1dcc | Adress: 502D1DCC | Symbol: _stricoll_l
    Index:  46 | Ordinal:  46 | RVA: 1de9 | Adress: 502D1DE9 | Symbol: _strlwr
    Index:  47 | Ordinal:  47 | RVA: 1e04 | Adress: 502D1E04 | Symbol: _strlwr_l
    Index:  48 | Ordinal:  48 | RVA: 1e21 | Adress: 502D1E21 | Symbol: _strlwr_s
    Index:  49 | Ordinal:  49 | RVA: 1e40 | Adress: 502D1E40 | Symbol: _strlwr_s_l
    Index:  50 | Ordinal:  50 | RVA: 1e5f | Adress: 502D1E5F | Symbol: _strncoll
    Index:  51 | Ordinal:  51 | RVA: 1e7e | Adress: 502D1E7E | Symbol: _strncoll_l
    Index:  52 | Ordinal:  52 | RVA: 1e9d | Adress: 502D1E9D | Symbol: _strnicmp
    Index:  53 | Ordinal:  53 | RVA: 1ebc | Adress: 502D1EBC | Symbol: _strnicmp_l
    Index:  54 | Ordinal:  54 | RVA: 1edc | Adress: 502D1EDC | Symbol: _strnicoll
    Index:  55 | Ordinal:  55 | RVA: 1efd | Adress: 502D1EFD | Symbol: _strnicoll_l
    Index:  56 | Ordinal:  56 | RVA: 1f1c | Adress: 502D1F1C | Symbol: _strnset
    Index:  57 | Ordinal:  57 | RVA: 1f39 | Adress: 502D1F39 | Symbol: _strnset_s
    Index:  58 | Ordinal:  58 | RVA: 1f55 | Adress: 502D1F55 | Symbol: _strrev
    Index:  59 | Ordinal:  59 | RVA: 1f6e | Adress: 502D1F6E | Symbol: _strset
    Index:  60 | Ordinal:  60 | RVA: 1f89 | Adress: 502D1F89 | Symbol: _strset_s
    Index:  61 | Ordinal:  61 | RVA: 1fa4 | Adress: 502D1FA4 | Symbol: _strupr
    Index:  62 | Ordinal:  62 | RVA: 1fbf | Adress: 502D1FBF | Symbol: _strupr_l
    Index:  63 | Ordinal:  63 | RVA: 1fdc | Adress: 502D1FDC | Symbol: _strupr_s
    Index:  64 | Ordinal:  64 | RVA: 1ffb | Adress: 502D1FFB | Symbol: _strupr_s_l
    Index:  65 | Ordinal:  65 | RVA: 201b | Adress: 502D201B | Symbol: _strxfrm_l
    Index:  66 | Ordinal:  66 | RVA: 2038 | Adress: 502D2038 | Symbol: _tolower
    Index:  67 | Ordinal:  67 | RVA: 2055 | Adress: 502D2055 | Symbol: _tolower_l
    Index:  68 | Ordinal:  68 | RVA: 2072 | Adress: 502D2072 | Symbol: _toupper
    Index:  69 | Ordinal:  69 | RVA: 208f | Adress: 502D208F | Symbol: _toupper_l
    Index:  70 | Ordinal:  70 | RVA: 20af | Adress: 502D20AF | Symbol: _towlower_l
    Index:  71 | Ordinal:  71 | RVA: 20d0 | Adress: 502D20D0 | Symbol: _towupper_l
    Index:  72 | Ordinal:  72 | RVA: 20f0 | Adress: 502D20F0 | Symbol: _wcscoll_l
    Index:  73 | Ordinal:  73 | RVA: 210c | Adress: 502D210C | Symbol: _wcsdup
    Index:  74 | Ordinal:  74 | RVA: 2126 | Adress: 502D2126 | Symbol: _wcsicmp
    Index:  75 | Ordinal:  75 | RVA: 2143 | Adress: 502D2143 | Symbol: _wcsicmp_l
    Index:  76 | Ordinal:  76 | RVA: 2161 | Adress: 502D2161 | Symbol: _wcsicoll
    Index:  77 | Ordinal:  77 | RVA: 2180 | Adress: 502D2180 | Symbol: _wcsicoll_l
    Index:  78 | Ordinal:  78 | RVA: 219d | Adress: 502D219D | Symbol: _wcslwr
    Index:  79 | Ordinal:  79 | RVA: 21b8 | Adress: 502D21B8 | Symbol: _wcslwr_l
    Index:  80 | Ordinal:  80 | RVA: 21d5 | Adress: 502D21D5 | Symbol: _wcslwr_s
    Index:  81 | Ordinal:  81 | RVA: 21f4 | Adress: 502D21F4 | Symbol: _wcslwr_s_l
    Index:  82 | Ordinal:  82 | RVA: 2213 | Adress: 502D2213 | Symbol: _wcsncoll
    Index:  83 | Ordinal:  83 | RVA: 2232 | Adress: 502D2232 | Symbol: _wcsncoll_l
    Index:  84 | Ordinal:  84 | RVA: 2251 | Adress: 502D2251 | Symbol: _wcsnicmp
    Index:  85 | Ordinal:  85 | RVA: 2270 | Adress: 502D2270 | Symbol: _wcsnicmp_l
    Index:  86 | Ordinal:  86 | RVA: 2290 | Adress: 502D2290 | Symbol: _wcsnicoll
    Index:  87 | Ordinal:  87 | RVA: 22b1 | Adress: 502D22B1 | Symbol: _wcsnicoll_l
    Index:  88 | Ordinal:  88 | RVA: 22d0 | Adress: 502D22D0 | Symbol: _wcsnset
    Index:  89 | Ordinal:  89 | RVA: 22ed | Adress: 502D22ED | Symbol: _wcsnset_s
    Index:  90 | Ordinal:  90 | RVA: 2309 | Adress: 502D2309 | Symbol: _wcsrev
    Index:  91 | Ordinal:  91 | RVA: 2322 | Adress: 502D2322 | Symbol: _wcsset
    Index:  92 | Ordinal:  92 | RVA: 233d | Adress: 502D233D | Symbol: _wcsset_s
    Index:  93 | Ordinal:  93 | RVA: 2358 | Adress: 502D2358 | Symbol: _wcsupr
    Index:  94 | Ordinal:  94 | RVA: 2373 | Adress: 502D2373 | Symbol: _wcsupr_l
    Index:  95 | Ordinal:  95 | RVA: 2390 | Adress: 502D2390 | Symbol: _wcsupr_s
    Index:  96 | Ordinal:  96 | RVA: 23af | Adress: 502D23AF | Symbol: _wcsupr_s_l
    Index:  97 | Ordinal:  97 | RVA: 23cf | Adress: 502D23CF | Symbol: _wcsxfrm_l
    Index:  98 | Ordinal:  98 | RVA: 23eb | Adress: 502D23EB | Symbol: _wctype
    Index:  99 | Ordinal:  99 | RVA: 2406 | Adress: 502D2406 | Symbol: is_wctype
    Index: 100 | Ordinal: 100 | RVA: 2421 | Adress: 502D2421 | Symbol: isalnum
    Index: 101 | Ordinal: 101 | RVA: 243a | Adress: 502D243A | Symbol: isalpha
    Index: 102 | Ordinal: 102 | RVA: 2453 | Adress: 502D2453 | Symbol: isblank
    Index: 103 | Ordinal: 103 | RVA: 246c | Adress: 502D246C | Symbol: iscntrl
    Index: 104 | Ordinal: 104 | RVA: 2485 | Adress: 502D2485 | Symbol: isdigit
    Index: 105 | Ordinal: 105 | RVA: 249e | Adress: 502D249E | Symbol: isgraph
    Index: 106 | Ordinal: 106 | RVA: 24ba | Adress: 502D24BA | Symbol: isleadbyte
    Index: 107 | Ordinal: 107 | RVA: 24d6 | Adress: 502D24D6 | Symbol: islower
    Index: 108 | Ordinal: 108 | RVA: 24ef | Adress: 502D24EF | Symbol: isprint
    Index: 109 | Ordinal: 109 | RVA: 2508 | Adress: 502D2508 | Symbol: ispunct
    Index: 110 | Ordinal: 110 | RVA: 2521 | Adress: 502D2521 | Symbol: isspace
    Index: 111 | Ordinal: 111 | RVA: 253a | Adress: 502D253A | Symbol: isupper
    Index: 112 | Ordinal: 112 | RVA: 2554 | Adress: 502D2554 | Symbol: iswalnum
    Index: 113 | Ordinal: 113 | RVA: 256f | Adress: 502D256F | Symbol: iswalpha
    Index: 114 | Ordinal: 114 | RVA: 258a | Adress: 502D258A | Symbol: iswascii
    Index: 115 | Ordinal: 115 | RVA: 25a5 | Adress: 502D25A5 | Symbol: iswblank
    Index: 116 | Ordinal: 116 | RVA: 25c0 | Adress: 502D25C0 | Symbol: iswcntrl
    Index: 117 | Ordinal: 117 | RVA: 25db | Adress: 502D25DB | Symbol: iswctype
    Index: 118 | Ordinal: 118 | RVA: 25f6 | Adress: 502D25F6 | Symbol: iswdigit
    Index: 119 | Ordinal: 119 | RVA: 2611 | Adress: 502D2611 | Symbol: iswgraph
    Index: 120 | Ordinal: 120 | RVA: 262c | Adress: 502D262C | Symbol: iswlower
    Index: 121 | Ordinal: 121 | RVA: 2647 | Adress: 502D2647 | Symbol: iswprint
    Index: 122 | Ordinal: 122 | RVA: 2662 | Adress: 502D2662 | Symbol: iswpunct
    Index: 123 | Ordinal: 123 | RVA: 267d | Adress: 502D267D | Symbol: iswspace
    Index: 124 | Ordinal: 124 | RVA: 2698 | Adress: 502D2698 | Symbol: iswupper
    Index: 125 | Ordinal: 125 | RVA: 26b4 | Adress: 502D26B4 | Symbol: iswxdigit
    Index: 126 | Ordinal: 126 | RVA: 26d0 | Adress: 502D26D0 | Symbol: isxdigit
    Index: 127 | Ordinal: 127 | RVA: 26e8 | Adress: 502D26E8 | Symbol: mblen
    Index: 128 | Ordinal: 128 | RVA: 26fe | Adress: 502D26FE | Symbol: mbrlen
    Index: 129 | Ordinal: 129 | RVA: 2717 | Adress: 502D2717 | Symbol: memcpy_s
    Index: 130 | Ordinal: 130 | RVA: 2733 | Adress: 502D2733 | Symbol: memmove_s
    Index: 131 | Ordinal: 131 | RVA: 274d | Adress: 502D274D | Symbol: memset
    Index: 132 | Ordinal: 132 | RVA: 2764 | Adress: 502D2764 | Symbol: strcat
    Index: 133 | Ordinal: 133 | RVA: 277d | Adress: 502D277D | Symbol: strcat_s
    Index: 134 | Ordinal: 134 | RVA: 2796 | Adress: 502D2796 | Symbol: strcmp
    Index: 135 | Ordinal: 135 | RVA: 27ae | Adress: 502D27AE | Symbol: strcoll
    Index: 136 | Ordinal: 136 | RVA: 27c6 | Adress: 502D27C6 | Symbol: strcpy
    Index: 137 | Ordinal: 137 | RVA: 27df | Adress: 502D27DF | Symbol: strcpy_s
    Index: 138 | Ordinal: 138 | RVA: 27f9 | Adress: 502D27F9 | Symbol: strcspn
    Index: 139 | Ordinal: 139 | RVA: 2811 | Adress: 502D2811 | Symbol: strlen
    Index: 140 | Ordinal: 140 | RVA: 2829 | Adress: 502D2829 | Symbol: strncat
    Index: 141 | Ordinal: 141 | RVA: 2844 | Adress: 502D2844 | Symbol: strncat_s
    Index: 142 | Ordinal: 142 | RVA: 285f | Adress: 502D285F | Symbol: strncmp
    Index: 143 | Ordinal: 143 | RVA: 2878 | Adress: 502D2878 | Symbol: strncpy
    Index: 144 | Ordinal: 144 | RVA: 2893 | Adress: 502D2893 | Symbol: strncpy_s
    Index: 145 | Ordinal: 145 | RVA: 28ae | Adress: 502D28AE | Symbol: strnlen
    Index: 146 | Ordinal: 146 | RVA: 28c7 | Adress: 502D28C7 | Symbol: strpbrk
    Index: 147 | Ordinal: 147 | RVA: 28df | Adress: 502D28DF | Symbol: strspn
    Index: 148 | Ordinal: 148 | RVA: 28f6 | Adress: 502D28F6 | Symbol: strtok
    Index: 149 | Ordinal: 149 | RVA: 290f | Adress: 502D290F | Symbol: strtok_s
    Index: 150 | Ordinal: 150 | RVA: 2929 | Adress: 502D2929 | Symbol: strxfrm
    Index: 151 | Ordinal: 151 | RVA: 2942 | Adress: 502D2942 | Symbol: tolower
    Index: 152 | Ordinal: 152 | RVA: 295b | Adress: 502D295B | Symbol: toupper
    Index: 153 | Ordinal: 153 | RVA: 2976 | Adress: 502D2976 | Symbol: towctrans
    Index: 154 | Ordinal: 154 | RVA: 2992 | Adress: 502D2992 | Symbol: towlower
    Index: 155 | Ordinal: 155 | RVA: 29ad | Adress: 502D29AD | Symbol: towupper
    Index: 156 | Ordinal: 156 | RVA: 29c6 | Adress: 502D29C6 | Symbol: wcscat
    Index: 157 | Ordinal: 157 | RVA: 29df | Adress: 502D29DF | Symbol: wcscat_s
    Index: 158 | Ordinal: 158 | RVA: 29f8 | Adress: 502D29F8 | Symbol: wcscmp
    Index: 159 | Ordinal: 159 | RVA: 2a10 | Adress: 502D2A10 | Symbol: wcscoll
    Index: 160 | Ordinal: 160 | RVA: 2a28 | Adress: 502D2A28 | Symbol: wcscpy
    Index: 161 | Ordinal: 161 | RVA: 2a41 | Adress: 502D2A41 | Symbol: wcscpy_s
    Index: 162 | Ordinal: 162 | RVA: 2a5b | Adress: 502D2A5B | Symbol: wcscspn
    Index: 163 | Ordinal: 163 | RVA: 2a73 | Adress: 502D2A73 | Symbol: wcslen
    Index: 164 | Ordinal: 164 | RVA: 2a8b | Adress: 502D2A8B | Symbol: wcsncat
    Index: 165 | Ordinal: 165 | RVA: 2aa6 | Adress: 502D2AA6 | Symbol: wcsncat_s
    Index: 166 | Ordinal: 166 | RVA: 2ac1 | Adress: 502D2AC1 | Symbol: wcsncmp
    Index: 167 | Ordinal: 167 | RVA: 2ada | Adress: 502D2ADA | Symbol: wcsncpy
    Index: 168 | Ordinal: 168 | RVA: 2af5 | Adress: 502D2AF5 | Symbol: wcsncpy_s
    Index: 169 | Ordinal: 169 | RVA: 2b10 | Adress: 502D2B10 | Symbol: wcsnlen
    Index: 170 | Ordinal: 170 | RVA: 2b29 | Adress: 502D2B29 | Symbol: wcspbrk
    Index: 171 | Ordinal: 171 | RVA: 2b41 | Adress: 502D2B41 | Symbol: wcsspn
    Index: 172 | Ordinal: 172 | RVA: 2b58 | Adress: 502D2B58 | Symbol: wcstok
    Index: 173 | Ordinal: 173 | RVA: 2b71 | Adress: 502D2B71 | Symbol: wcstok_s
    Index: 174 | Ordinal: 174 | RVA: 2b8b | Adress: 502D2B8B | Symbol: wcsxfrm
    Index: 175 | Ordinal: 175 | RVA: 2ba3 | Adress: 502D2BA3 | Symbol: wctype
    Index: 176 | Ordinal: 176 | RVA: 2bbd | Adress: 502D2BBD | Symbol: wmemcpy_s
    Index: 177 | Ordinal: 177 | RVA: 2bdb | Adress: 502D2BDB | Symbol: wmemmove_s
    

    Was ich gelernt habe:

    1. GetModuleInformation gibt nicht die Größe des Modules im virtuellen Adressraum zurück, sondern lediglich IMAGE_OPTIONAL_HEADER::SizeOfImage, ohne zu beachten, dass IMAGE_OPTIONAL_HEADER::SizeOfHeaders dafür sorgt, dass die Image Header nach IMAGE_OPTIONAL_HEADER::SectionAlignment ausgerichtet eingemappt werden. Bei Längenprüfungen war es meistens die Attribute Certificate Table, die immer ganz hinten im Image hinterlegt war und die aufgrund der fehlenden Bytes des Headers als außerhalb des Images angesehen wurde.
    2. Die Leute hinter PE haben ihr durch MZ verursachtes Vietnam-Trauma (Stichword: Relokation) offensichtlich gut verarbeitet.
    3. ASLR beruht auf der Hoffnung, dass ein Angreifer nicht genug Payload in das System einschleusen kann, um wie ich Symboltabellen durchzugehen.
    4. Der Unterschied zwischen Inkompetenz und die beleidigte Leberwurst spielen ist von außen nicht zu erkennen.
    5. Hanlon's Rasiermesser gilt auch für Punkt 4.


  • @Cerrseien
    Mit der Art und Weise wie du hier auftrittst, motivierst du Leute nicht dir zu helfen. Also ich wüsste nicht wieso ich dir helfen wollen würde.



  • @hustbaer
    Es ist also deinem Ego wichtiger, als beleidigte Leberwurst anerkannt zu werden, als für inkompetent - da kann ich mich ja nur für deine Nettigkeit bedanken, lieber geschwiegen zu haben, als deinen Instinkten gefolgt und mich auf eine falsche Fährte geführt zu haben.



  • @Cerrseien
    Du hast ein ernsthaftes Problem.
    Schönes Leben noch.



  • @Cerrseien sagte in Symbolliste für Module in Prozessbild programmatisch erlangen:

    @hustbaer
    Es ist also deinem Ego wichtiger, als beleidigte Leberwurst anerkannt zu werden, als für inkompetent - da kann ich mich ja nur für deine Nettigkeit bedanken, lieber geschwiegen zu haben, als deinen Instinkten gefolgt und mich auf eine falsche Fährte geführt zu haben.

    Entweder du bist so dermaßen überlegen gut, dass du dir diese Art von Arroganz leisten kannst, in dem Fall brauchst du sicherlich hier niemandes Hilfe, oder du brauchst Hilfe und deine Art aufzutreten ist total fehl am Platze. In jedem Fall bist du unhöflich.



  • Leute, könnt ihr bitte mit Beleidigungen & Gegenbeleidigungen aufhören? Danke, denn das hilft niemandem.

    Das "auf eine nicht vollkommen zurückgebliebene Art und Weise" ist genauso unnötig wie alle Antworten darauf. Die Problembeschreibung (minus das Geschimpfe darin) klang für mich erstmal interessant, auch wenn ich mangels Windows-Kenntnissen nicht dazu beitragen kann.


Log in to reply