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