Ich habe sowas noch nicht probiert, aber es klingt eigentlich nicht sehr schwierig.
Wie würde ich es machen?
Die
DLL in einen Stream laden. Diesen Stream byteweise auslesen und jedes Byte (das ja eine Wert zwischen 0 und 255 annehmen kann) in die zwei Zeichen von "00" bis "FF" umkodieren (Wie das am einfachsten geht findet sich sicher hier im Forum). Das führt letztendlich dazu, dass der String doppelt so lang ist wie die ursprüngliche
DLL (Bytelänge). Umgekehrt gehts genauso. Den String vom Anfang an, immer zwei Zeichen, wieder in einen Wert umwandeln und byteweise in der Stream schreiben.
edit: Habs in den Indys gefunden..
Delphi-Quellcode:
IdHexDigits: array [0..15] of AnsiChar = '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
function ByteToHex(const AByte: Byte): string;
begin
Result := IdHexDigits[AByte shr 4] + IdHexDigits[AByte and $F];
end;