Skip to content

EDIABAS Interface Drivers ​

Analysis of decompiled EDIABAS interface handler (IFH) DLLs from Ghidra.

Overview ​

EDIABAS uses pluggable interface drivers (IFH DLLs) for communication with diagnostic hardware. Each driver implements the standard IFH API.

Available Drivers ​

DriverPurposeProtocolSize
XEnet32BMW Ethernet diagnosticsHSFZ/ENET~36K lines
XStd32Standard serial wrapperLoads sub-DLLs~22K lines
OBD32OBD-II serial interfaceK-Line, KWP2000, DS2, KBUS~11K lines
XNul32Null/dummy interfaceNone (simulation)~5.7K lines

IFH API ​

All interface drivers export the same API:

ExportDescription
dllStartupIFHInitialize interface
dllShutdownIFHShutdown interface
dllCheckIFHCheck capability
dllCallIFHExecute command

Command Codes ​

CodeHexNameDescription
20x02IFH_INITInitialize
30x03IFH_ENDTerminate
40x04IFH_CONNECTConnect to vehicle
50x05IFH_DISCONNECTDisconnect
60x06IFH_SYSINFOGet system info
220x16IFH_SEND_TELEGRAMSend diagnostic telegram
230x17IFH_RECEIVEReceive response
300x1EIFH_GETERRORGet last error
340x22IFH_SETPARAMETERSet parameters
350x23IFH_GETPARAMETERGet parameters
400x28IFH_OPEN_CHANNELOpen channel
410x29IFH_CLOSE_CHANNELClose channel

Architecture ​

┌─────────────────────────────────────────────────────────┐
│                    ebas32.dll                           │
│                  (EDIABAS Runtime)                      │
└────────────────────────┬────────────────────────────────┘
                         │
                         │ IFH API
                         ▼
┌─────────────┬─────────────────┬─────────────────────────┐
│  XEnet32    │     XStd32      │       XNul32            │
│  (Ethernet) │    (Serial)     │     (Simulator)         │
└─────────────┴─────────────────┴─────────────────────────┘
      │               │                    │
      ▼               ▼                    ▼
┌───────────┐  ┌─────────────┐      ┌───────────┐
│ TCP/IP    │  │ COM Port    │      │   None    │
│ Winsock   │  │ Serial API  │      │           │
└───────────┘  └─────────────┘      └───────────┘

Common Error Codes ​

CodeHexDescription
00x00Success
70x07Not connected
190x13Not initialized
270x1BFatal error
280x1CInvalid parameter
290x1DNot supported
570x39Invalid channel
720x48Busy
730x49Channel conflict