PE-Explorer - Wie kann ich 'Import by Ordinal' unterstützen?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Mijikai
Beiträge: 754
Registriert: 25.09.2016 01:42

PE-Explorer - Wie kann ich 'Import by Ordinal' unterstützen?

Beitrag von Mijikai »

Ich versuche gerade einen PE-Explorer zu schreiben :)
(Dependency Walker...)

Imports mit Namen kann ich ohne Probleme Auflisten.
Jetzt will ich noch Imports mit Ordinals unterstützen.

Ich habe folgenden Code:

Code: Alles auswählen

;PE64

Structure IMAGE_THUNK_DATA64
  StructureUnion
    ForwarderString.i
    Function.i
    Ordinal.i
    AddressOfData.i
  EndStructureUnion
EndStructure

#IMAGE_ORDINAL_FLAG64 = $8000000000000000

;*ITD.IMAGE_THUNK_DATA64 - OriginalFirstThunk Table!

If Bool(*ITD\Ordinal & #IMAGE_ORDINAL_FLAG64)
  Debug "Function imported by Ordinal: " + Hex(*ITD\Ordinal & $FFFF)
EndIf
Ist das so richtig?

Bzw. Wie kann ich es testen?
(Wie kann ich eine Test-Exe mit 'Import by Ordinal' mit PB erstellen !?)
Benutzeravatar
_JON_
Beiträge: 389
Registriert: 30.03.2010 15:24

Re: PE-Explorer - Wie kann ich 'Import by Ordinal' unterstüt

Beitrag von _JON_ »

Die *.lib entscheidet ob gegen Ordinal oder Name gelinkt wird.

Eine Beispiel .def:

Code: Alles auswählen

EXPORTS
MsiCloseAllHandles
MsiCloseHandle @8
PureBasic 5.46 LTS (Windows x86/x64) | windows 10 x64 Oktober failure
Benutzeravatar
Mijikai
Beiträge: 754
Registriert: 25.09.2016 01:42

Re: PE-Explorer - Wie kann ich 'Import by Ordinal' unterstüt

Beitrag von Mijikai »

_JON_ hat geschrieben:Die *.lib entscheidet ob gegen Ordinal oder Name gelinkt wird.

Eine Beispiel .def:

Code: Alles auswählen

EXPORTS
MsiCloseAllHandles
MsiCloseHandle @8
Danke für den Hinweis so kann ich zumindest eine Test-Exe mit Ordinal Import erstellen.
Antworten