16 Dec 2022 - Matthias Voigt
Um Code zu schützen, ist Obfuskierung eine weit verbreitete Methode. Gerade im Webbereich wird sie oft eingesetzt, um den Quellcode, den man zwangsläufig ausliefert, schwerer nachvollziehbar zu machen. Nun ergeben sich mit ChatGPT allerdings ein paar neue Gefahren, wenn es jemand darauf anlegt, den obfuskierten Code zu entschlüsseln.
Schauen wir uns einfach mal ein Beispiel an, wie ChatGPT beim Deobfuskieren helfen kann.
Hier ist ein stark vereinfachtes Beispiel eines obfuskierten JavaScript-Codes:
var _0x1234 = ['Hello, World!', 'log'];
(function (_0x5678, _0x9abc) {
var _0xdef0 = function (_0x5678) {
while (--_0x5678) {
_0x9abc['push'](_0x9abc['shift']());
}
};
_0xdef0(++_0x9abc);
}(_0x1234, 0x1));
var _0x4567 = function (_0x5678, _0x9abc) {
_0x5678 = _0x5678 - 0x0;
var _0xdef0 = _0x1234[_0x5678];
return _0xdef0;
};
console[_0x4567('0x1')](_0x4567('0x0'));
Mit Hilfe von ChatGPT kann der obfuskierte Code schnell lesbarer gemacht werden:
var messages = ['Hello, World!', 'log'];
console.log(messages[0]);
Wie man sieht, wurde der ursprüngliche Code, der schwer lesbar gemacht wurde, in eine verständliche Form zurückverwandelt. Diese Fähigkeit, Code schnell zu deobfuskieren, zeigt sowohl die Stärke von ChatGPT als auch die potenziellen Risiken, die mit der Obfuskierung von Code verbunden sind.
Während Obfuskierung eine nützliche Technik zum Schutz von Quellcode ist, sollten Entwickler sich der Grenzen dieser Methode bewusst sein. Tools wie ChatGPT können helfen, obfuskierten Code zu verstehen und zu entschlüsseln, was neue Herausforderungen für die Sicherheit und den Schutz geistigen Eigentums mit sich bringt. Es ist wichtig, zusätzliche Sicherheitsmaßnahmen zu berücksichtigen, um den Code bestmöglich zu schützen.