TW / Independent
← Research-Audits

Malware Analysis / Artefakt: core-chain-v1.7.min.js · SHA-256 194ce39215a1…

XRP Flux Cast: Analyse des Wallet-Controllers

Claim-Oberfläche, Transaktionsfreigaben und Backend-Steuerung im archivierten XRPL-Controller. Mit Code, C2-Indikatoren und einer getrennten Bewertung der weiteren Fälle.

Prüfumfang
Archivierte Frontends, Controller und passive Evidenz des Web3-Korpus
Vorgehen
Unabhängiges Research-Audit; nicht vom Anbieter beauftragt
Material
Erhaltenes JavaScript-Bundle; Hash lokal abgeglichen.
Befund

Befunde nach Belegklasse getrennt

Keine neue Ausführung; kein aktueller Deployment-Nachweis

Analystennotiz

Was der Prüfbestand wirklich hergibt.

Entscheidend ist nicht der Wallet-Dialog, sondern die Frage, welche Daten ihn erreichen. Deshalb beginnt diese Analyse beim erhaltenen Bundle und folgt dem Weg bis an die Signaturgrenze.

Evidence Anchorlokal geprüft
Artefakt
core-chain-v1.7.min.js
SHA-256
194ce39215a160ed33b4748accdb6c5e792ba96b1d6199d7d2edb7352cc13c2f
Analysegrundlage
Erhaltenes JavaScript-Bundle; Hash lokal abgeglichen.
Malware / Evidence Atlas

Köderseite → Wirkung

Der Analysepfad dieses Berichts. Jeder Knoten zeigt, was belegt ist, wo Detection ansetzen kann und wo die Aussage endet.

5Ablaufknoten 1Detection-Artefakte 1Regelformate
Aussage

Köderseite

Die sichtbare Weboberfläche bildet den Einstieg in den untersuchten Wallet-Fluss.

Detection-Schwerpunkt

Domain-, Script- und Ladebeziehungen gemeinsam bewerten.

Im Prüfbestand belegt
Config Surface

Konfigurations-Fingerabdruck

Analyseachsen aus dem Bericht – keine Live-Konfiguration und kein universeller Familienindikator.

01
Provider-Grenzewallet API
Kernspur
02
Freigabepfadrequest → sign
Stütze
03
Zielrollecontext-bound
Grenze
04
Chain-Wirkungseparate proof
Grenze
MODEL / CA0EA5FDKernspur, Stütze und Grenze – keine Risikowerte
Detection Pack

Defensive Artefakte

Quelle, Validierung und Grenze gehören zu jeder Regel.

QuelleEigene statische Source-Review-Regel, nicht aus dem Sample kopiert.ValidierungSemgrep-Parser und synthetisches Positivfixture bestanden.GrenzeFindet prüfpflichtige Datenflüsse; beweist weder Täuschung noch Transfer.
SemgrepRegel öffnen
Defensives Modell
rules:
- id: remote-wallet-transaction-signing
  languages: [javascript, typescript]
  severity: WARNING
  message: Review wallet signing where transaction data originates in a remote response
  patterns:
  - pattern-inside: |
      $R = await fetch(...);
      ...
      $TX = await $R.json();
      ...
  - pattern-either:
    - pattern: $W.signAndSubmit($TX)
    - pattern: $W.sign($TX)

Evidenzstatus Im Prüfbestand belegtPrimärquellengebundenBegrenzt oder offen

Prüfauftrag und Sample

Geprüft wurde der archivierte XRP-Flux-Cast-Controller aus dem Web3-Korpus vom 11. Oktober 2026. Sein SHA-256 wurde beim jetzigen lokalen Read-only-Abgleich erneut berechnet und stimmt mit dem damaligen Audit überein. Kein Sample wurde ausgeführt; es gab keine C2- oder Ledger-Abfrage.

ARTIFACT MANIFEST

Dateien und Prüfsummen

core-chain-v1.7.min.js
194ce39215a160ed33b4748accdb6c5e792ba96b1d6199d7d2edb7352cc13c2f

Erhaltenes Originalbundle

core-chain-v1.7.pretty.js
a99df897c7aed2289b27ca934b4bb9e230cd4f0be790806c527d97421a56e02f

Formatierte Ableitung

core-chain-v1.7.strings-folded.js
0131abf01187f995d4577bb58866b11ae90768212b7624706faf1759e9388c2d

Ableitung mit gefalteten Strings

tools/deobfuscate-xrpl.mjs
96694272da2415664f9b0948c55c87b3f2fb7441a663c6fd464ad761d7eb0b74

Eigenes archiviertes Werkzeug für statische Aufbereitung

Dateien und dokumentierter Analyseweg

Die erste Ansicht zeigt gespeicherte Referenzen; die zweite rekonstruiert den dokumentierten Arbeitsweg. Kein Schritt wurde erneut ausgeführt.

FILE / EVIDENCE MAP

Dateien und dokumentierter Analyseweg

Die erste Ansicht zeigt gespeicherte Referenzen; die zweite rekonstruiert den dokumentierten Arbeitsweg. Kein Schritt wurde erneut ausgeführt.

Eine Dateireferenz belegt kein Laufzeitverhalten. Dokumentierte Aufbereitung ist keine erneute Ausführung.

QuelleWerkzeugAbleitungBelegFehlendReferenz geprüftDokumentiertUngeklärt

Dateireferenzen

Belegte Pfade und vorhandene Ableitungen; Backend bleibt offen.

index.html

Erfasstes HTML; Scriptreferenz in Zeile 262.

Datei
cases/xrp-flux-cast/evidence/raw/http/index.html
SHA-256
3126e34907a0743b1b364436aaeb94af177ed77ff6753e1923db13e20ffbf1d3
Fundstelle
262
  • index.html → core-chain-v1.7.min.jsScriptreferenz · Referenz geprüft

    index.html:262 nennt den relativen Bundlepfad. Referenz ist kein Ausführungsnachweis.

core-chain-v1.7.min.js

Erhaltenes Originalbundle; Hash lokal abgeglichen.

Datei
cases/xrp-flux-cast/evidence/raw/http/core-chain-v1.7.min.js
SHA-256
194ce39215a160ed33b4748accdb6c5e792ba96b1d6199d7d2edb7352cc13c2f
Fundstelle
1
  • index.html → core-chain-v1.7.min.jsScriptreferenz · Referenz geprüft

    index.html:262 nennt den relativen Bundlepfad. Referenz ist kein Ausführungsnachweis.

  • core-chain-v1.7.min.js → deobfuscate-xrpl.mjsTexteingabe · Referenz geprüft

    Werkzeug:11–16 benennt die Eingabe und readFile.

deobfuscate-xrpl.mjs

Liest das konkrete Bundle als Text.

Datei
tools/deobfuscate-xrpl.mjs
SHA-256
96694272da2415664f9b0948c55c87b3f2fb7441a663c6fd464ad761d7eb0b74
Fundstelle
11–16
  • core-chain-v1.7.min.js → deobfuscate-xrpl.mjsTexteingabe · Referenz geprüft

    Werkzeug:11–16 benennt die Eingabe und readFile.

  • deobfuscate-xrpl.mjs → pretty.jsFormatierte Ausgabe · Dokumentiert

    Werkzeug:27–36 und56 dokumentieren Erstellung/Ausgabe; heute nicht erneut ausgeführt.

  • deobfuscate-xrpl.mjs → strings-folded.jsGefaltete Ausgabe · Dokumentiert

    Werkzeug:40–60 dokumentiert Faltung und Ausgabe; archivierte Datei vorhanden.

Zugehöriges Berichtskapitel →
pretty.js

Formatierte Ableitung, nicht Rawcode.

Datei
cases/xrp-flux-cast/analysis/core-chain-v1.7.pretty.js
SHA-256
a99df897c7aed2289b27ca934b4bb9e230cd4f0be790806c527d97421a56e02f
Fundstelle
1
  • deobfuscate-xrpl.mjs → pretty.jsFormatierte Ausgabe · Dokumentiert

    Werkzeug:27–36 und56 dokumentieren Erstellung/Ausgabe; heute nicht erneut ausgeführt.

Zugehöriges Berichtskapitel →
strings-folded.js

Archivierte Ableitung mit konstanten Stringfaltungen.

Datei
cases/xrp-flux-cast/analysis/core-chain-v1.7.strings-folded.js
SHA-256
0131abf01187f995d4577bb58866b11ae90768212b7624706faf1759e9388c2d
Fundstelle
1
  • deobfuscate-xrpl.mjs → strings-folded.jsGefaltete Ausgabe · Dokumentiert

    Werkzeug:40–60 dokumentiert Faltung und Ausgabe; archivierte Datei vorhanden.

  • strings-folded.js → AdresslistenExtraktion und Checks · Dokumentiert

    Werkzeug:94–115 dokumentiert Validierung/Ausgaben; beide gespeicherten Listen leer.

  • strings-folded.js → AUDIT.mdBefundreferenz · Referenz geprüft

    AUDIT.md:29 nennt das gefaltete Artefakt mit Zeilenbezug.

  • strings-folded.js → Backend-ImplementierungDynamische Abhängigkeit · Ungeklärt

    Clientbelege bestimmen weder Servercode noch konkrete Laufzeitantworten.

Zugehöriges Berichtskapitel →
Adresslisten

Klassische XRP- und Hex-Adresslisten sind leer. Beide Dateien wurden geprüft.

Datei
cases/xrp-flux-cast/analysis/xrpl-classic-addresses.txt
SHA-256
01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b
Fundstelle
1
  • strings-folded.js → AdresslistenExtraktion und Checks · Dokumentiert

    Werkzeug:94–115 dokumentiert Validierung/Ausgaben; beide gespeicherten Listen leer.

Zugehöriges Berichtskapitel →
AUDIT.md

Historischer Controllerbericht mit Artefakt- und Befundreferenzen.

Datei
cases/xrp-flux-cast/AUDIT.md
SHA-256
cb1295f1a9567225ada2e11bf523d8f5d52212486eef066e345ce6d5abeaae0c
Fundstelle
9–19
  • strings-folded.js → AUDIT.mdBefundreferenz · Referenz geprüft

    AUDIT.md:29 nennt das gefaltete Artefakt mit Zeilenbezug.

Zugehöriges Berichtskapitel →
Backend-Implementierung

Keine tatsächliche Serverimplementierung aus dem Bundle belegt. Ein vorhandenes Clean-Room-Modell ersetzt sie nicht.

  • strings-folded.js → Backend-ImplementierungDynamische Abhängigkeit · Ungeklärt

    Clientbelege bestimmen weder Servercode noch konkrete Laufzeitantworten.

Historischer Analyseweg

Archivierte Aufbereitung und Bewertung, keine neue Ausführung.

Archivierte Aufnahme

Der Fallbericht dokumentiert die Aufnahme vom Oktober 2026. Keine neue Aufnahme in dieser Arbeit.

Datei
cases/xrp-flux-cast/REPORT.md
SHA-256
2fa163aad5dc2e2e8e33e9fea3e1686b829f16b57ebaf7357eccb07796b69118
Fundstelle
16–23
  • Archivierte Aufnahme → FormatierungDokumentierter Schritt · Dokumentiert

    Werkzeugpfad bindet die archivierte Bundle-Eingabe.

Zugehöriges Berichtskapitel →
Formatierung

Erster dokumentierter Parser-/Printdurchlauf ohne Kompression.

Datei
tools/deobfuscate-xrpl.mjs
SHA-256
96694272da2415664f9b0948c55c87b3f2fb7441a663c6fd464ad761d7eb0b74
Fundstelle
26–36
  • Archivierte Aufnahme → FormatierungDokumentierter Schritt · Dokumentiert

    Werkzeugpfad bindet die archivierte Bundle-Eingabe.

  • Formatierung → StringfaltungZweiter Durchlauf · Dokumentiert

    Werkzeug dokumentiert zwei getrennte Transformaufrufe.

Zugehöriges Berichtskapitel →
Stringfaltung

Konservative Optionen; echte Propertypaare in den Ableitungen geprüft.

Datei
tools/deobfuscate-xrpl.mjs
SHA-256
96694272da2415664f9b0948c55c87b3f2fb7441a663c6fd464ad761d7eb0b74
Fundstelle
38–54
  • Formatierung → StringfaltungZweiter Durchlauf · Dokumentiert

    Werkzeug dokumentiert zwei getrennte Transformaufrufe.

  • Stringfaltung → Historisches AuditManuelle Einordnung · Dokumentiert

    AUDIT.md verweist auf das abgeleitete Controllerartefakt.

  • Stringfaltung → Adress-GegenprüfungExtraktion prüfen · Dokumentiert

    Werkzeug dokumentiert Adressvalidierung nach Faltung.

Zugehöriges Berichtskapitel →
Historisches Audit

Controllerbefunde trugen die Einstufung; harmlose Propertypaare allein nicht.

Datei
cases/xrp-flux-cast/AUDIT.md
SHA-256
cb1295f1a9567225ada2e11bf523d8f5d52212486eef066e345ce6d5abeaae0c
Fundstelle
9–41
  • Stringfaltung → Historisches AuditManuelle Einordnung · Dokumentiert

    AUDIT.md verweist auf das abgeleitete Controllerartefakt.

  • Historisches Audit → Neue LaufzeitprüfungOffener aktueller Zustand · Ungeklärt

    Der jetzige Auftrag umfasste nur statische Archivprüfung.

Zugehöriges Berichtskapitel →
Adress-Gegenprüfung

Checksum-Validierung und leere Ergebnisse; kein Beweis fehlender Laufzeitwerte.

Datei
tools/deobfuscate-xrpl.mjs
SHA-256
96694272da2415664f9b0948c55c87b3f2fb7441a663c6fd464ad761d7eb0b74
Fundstelle
94–115
  • Stringfaltung → Adress-GegenprüfungExtraktion prüfen · Dokumentiert

    Werkzeug dokumentiert Adressvalidierung nach Faltung.

Zugehöriges Berichtskapitel →
Neue Laufzeitprüfung

Nicht durchgeführt. Historische Sitzung eines anderen Falls bleibt separat.

  • Historisches Audit → Neue LaufzeitprüfungOffener aktueller Zustand · Ungeklärt

    Der jetzige Auftrag umfasste nur statische Archivprüfung.

Zugehöriges Berichtskapitel →

Grenze: Dateireferenzen belegen kein Laufzeitverhalten. „Dokumentiert“ kennzeichnet den archivierten Analyseweg; „Ungeklärt“ bedeutet, dass aktuelle oder serverseitige Belege fehlen.

Formatieren und konstante Strings falten

Die Datei core-chain-v1.7.min.js ist das erhaltene Originalbundle. core-chain-v1.7.pretty.js ist eine formatierte Ableitung, nicht das rohe Original. Die zweite Ableitung strings-folded.js enthält zusammengeführte konstante Zeichenfolgen. Die folgenden Paare wurden in beiden Ableitungen lokal abgeglichen; sie sind echte Ausschnitte und keine erfundenen Modellbeispiele. Die tatsächliche Aufbereitung verwendet einen konservativen Terser-Durchlauf: Standardkompression ist ausgeschaltet, Literal-Auswertung und Property-Normalisierung sind gezielt eingeschaltet. Der Auszug zeigt genau diese archivierte Konfiguration.

javascripttools/deobfuscate-xrpl.mjs · Zeilen 40–54 · echtes AnalysewerkzeugAnalysewerkzeug-Auszug
const folded = await transform({
  compress: {
    defaults: false,
    evaluate: true,
    computed_props: true,
    properties: true,
  },
  mangle: false,
  format: {
    beautify: true,
    comments: true,
    keep_quoted_props: true,
    quote_style: 1,
  },
});
Code lesen

Parserergebnis prüfen

Der echte Wrapper übergibt den bereits als Text gelesenen Quellinhalt an Terser. Fehlt die Codeausgabe, wird die Aufbereitung mit einem Fehler beendet. Dieser Ausschnitt wurde nur gelesen; die Pipeline wurde nicht erneut ausgeführt.

javascriptTatsächliches Analysewerkzeug · Zeilen 20–24Analysewerkzeug-Auszug
tools/deobfuscate-xrpl.mjs · Zeilen 20–24
Datei-Hash anzeigenSHA-256 96694272da2415664f9b0948c55c87b3f2fb7441a663c6fd464ad761d7eb0b74
async function transform(options) {
  const result = await minify(source, options);
  if (!result.code) throw new Error('Terser returned no code');
  return result.code;
}
Code lesen

Erster Durchlauf ohne Kompression

Vor der Stringfaltung erzeugt das Werkzeug eine lesbare Ableitung ohne Kompression oder zusätzliche Umbenennung. Das erklärt den Status von pretty.js: formatierter Quelltext, keine rohe Aufnahme und keine schon vollständig deobfuskierte Anwendung.

javascriptTatsächliches Analysewerkzeug · Zeilen 27–36Analysewerkzeug-Auszug
tools/deobfuscate-xrpl.mjs · Zeilen 27–36
Datei-Hash anzeigenSHA-256 96694272da2415664f9b0948c55c87b3f2fb7441a663c6fd464ad761d7eb0b74
const pretty = await transform({
  compress: false,
  mangle: false,
  format: {
    beautify: true,
    comments: true,
    keep_quoted_props: true,
    quote_style: 1,
  },
});
Code lesen

Titeleigenschaft lesbar machen

Die Zeichenfragmente ergeben den Eigenschaftsnamen title. Dieser Ausschnitt belegt die String-Verschleierung und ihre Auflösung, nicht die Schadfunktion des Controllers. Der umgebende Ablauf ist bewusst nicht enthalten.

ARTEFAKT / REKONSTRUKTION

Archivierter Ausschnitt und geprüfte String-Auflösung

Quellartefakt · Hash der vollständigen Datei, nicht des Ausschnitts

Datei
core-chain-v1.7.pretty.js
SHA-256
a99df897c7aed2289b27ca934b4bb9e230cd4f0be790806c527d97421a56e02f
Fundstelle
Zeile 5246 · formatierte Ableitung
01 · Vor AufbereitungEchter Ausschnitt aus der formatierten Ableitung; nicht Rawcode
document['ti' + 'tl' + 'e']
02 · RekonstruktionGegenstück aus dem archivierten gefalteten Artefakt
document.title
Rekonstruktionsdatei und eigene Prüfsumme
Rekonstruktionsdatei
core-chain-v1.7.strings-folded.js
SHA-256
0131abf01187f995d4577bb58866b11ae90768212b7624706faf1759e9388c2d
Fundstelle der Rekonstruktion
Zeile 5024

Textansicht · keine Ausführung · Original bleibt unverändert

Literale erkennen

Die eckigen Klammern enthalten nur konstante Zeichenliterale. In der formatierten Ableitung bleibt die ursprüngliche Verschleierung sichtbar.

Zeichenfolgen falten

Das Zusammenfügen dieser Literale ergibt title. Ein dynamischer Ausdruck müsste dagegen offen bleiben.

Eigenschaft lesen

Die vorhandene Analysefassung zeigt document.title. Die Notation wird lesbarer; die Objekteigenschaft bleibt dieselbe.

Grenze: Keine Sample-Ausführung. Die Property-Auflösung allein beweist keine Schadfunktion.

Zweite unabhängige Property-Auflösung

Auch readyState ist im formatierten Artefakt als Folge kurzer Literale geschrieben. Im gefalteten Artefakt ist die Eigenschaft direkt lesbar. Es wurde ausschließlich die konstante Zeichenfolge geprüft, kein Ausdruck des Samples ausgeführt.

ARTEFAKT / REKONSTRUKTION

Archivierter Ausschnitt und geprüfte String-Auflösung

Quellartefakt · Hash der vollständigen Datei, nicht des Ausschnitts

Datei
core-chain-v1.7.pretty.js
SHA-256
a99df897c7aed2289b27ca934b4bb9e230cd4f0be790806c527d97421a56e02f
Fundstelle
Zeile 42512 · formatierte Ableitung
01 · Vor AufbereitungEchter Ausschnitt aus der formatierten Ableitung; nicht Rawcode
document['re' + 'ad' + 'yS' + 'ta' + 'te']
02 · RekonstruktionGegenstück aus dem archivierten gefalteten Artefakt
document.readyState
Rekonstruktionsdatei und eigene Prüfsumme
Rekonstruktionsdatei
core-chain-v1.7.strings-folded.js
SHA-256
0131abf01187f995d4577bb58866b11ae90768212b7624706faf1759e9388c2d
Fundstelle der Rekonstruktion
Zeile 40362

Textansicht · keine Ausführung · Original bleibt unverändert

Literale erkennen

Die eckigen Klammern enthalten nur konstante Zeichenliterale. In der formatierten Ableitung bleibt die ursprüngliche Verschleierung sichtbar.

Zeichenfolgen falten

Das Zusammenfügen dieser Literale ergibt readyState. Ein dynamischer Ausdruck müsste dagegen offen bleiben.

Eigenschaft lesen

Die vorhandene Analysefassung zeigt document.readyState. Die Notation wird lesbarer; die Objekteigenschaft bleibt dieselbe.

Grenze: Keine Sample-Ausführung. Die Property-Auflösung allein beweist keine Schadfunktion.

Warum der Fall als Drainer eingestuft wurde

Die Oberfläche versprach einen XRP-Airdrop-Claim. Der historische Controllerbefund zeigte dagegen echte XRPL-Transaktionen zur Signatur und Übermittlung über Wallet-Schnittstellen; der Seiten-Dialog bezeichnete die Aufforderung als generische „message“. Die Vorgaben kamen vom Backend, ohne lokale Prüfung von Empfänger, Betrag oder Transaktionstyp. Das ist die konkrete Diskrepanz, auf der die Einstufung beruht: kein bloßer Claim-Nachweis, sondern eine potenziell werttragende Transaktionsfreigabe. Welcher Transaktionstyp für einen bestimmten Nutzer zurückgegeben würde, ist aus dem statischen Sample allein nicht feststellbar. Belegt in REPORT.md, Zeilen 3–15, und AUDIT.md, Zeilen 9–13, 29 und 47–59; Controllerbereich core-chain-v1.7.strings-folded.js ab Zeile 40576. Das Audit behauptet keinen Fehler in XRPL oder den legitimen Wallet-Produkten.

Backend und Sample-Fingerprint

AUDIT.md, Zeile 63, dokumentiert die fest eingetragene Backend-Domain. IOCS.md benennt außerdem das erfasste Frontend und den Bundlehash. Die Tabelle trennt diese Rollen: Ein Hash identifiziert identische Bytes, eine Domain einen beobachteten Infrastrukturbezug. Beides liefert allein keinen belastbaren Betreibernamen und keinen Nachweis heutiger Aktivität.

INDICATOR LEDGER

Indikatoren und Zuordnung

Domains sind absichtlich nicht anklickbar geschrieben. Der Hash wurde lokal neu berechnet.

W3-IOC-1BackendArchivierter Stand; keine aktuelle Netzwerkprüfung.
xrpl-scanner[.]com
Rolle
Erfasstes Backend
Beleg
Historischer Beleg, lokal im Archiv abgeglichen.
Quelle
IOCS.md · Zeilen 10; AUDIT.md · Zeilen 63
Grenze
Keine Betreiberattribution, kein Nachweis einer Auszahlung.
W3-IOC-2InfrastrukturArchivierter Stand; keine aktuelle Netzwerkprüfung.
x-flux-cast[.]pages[.]dev
Rolle
Archiviertes Frontend
Beleg
Historischer Beleg, lokal im Archiv abgeglichen.
Quelle
IOCS.md · Zeilen 9
Grenze
Keine Betreiberattribution, kein Nachweis einer Auszahlung.
W3-IOC-3InfrastrukturArchivierter Stand; keine aktuelle Netzwerkprüfung.
loyalty-xprl[.]com
Rolle
Archiviertes Frontend
Beleg
Historischer Beleg, lokal im Archiv abgeglichen.
Quelle
REPORT.md · Zeilen 23
Grenze
Keine Betreiberattribution, kein Nachweis einer Auszahlung.
W3-IOC-4InfrastrukturArchivierter Stand; keine aktuelle Netzwerkprüfung.
194ce39215a160ed33b4748accdb6c5e792ba96b1d6199d7d2edb7352cc13c2f
Rolle
Exakter Sample-Fingerprint
Beleg
Historischer Beleg, lokal im Archiv abgeglichen.
Quelle
core-chain-v1.7.min.js · Zeilen 1; AUDIT.md · Zeilen 19
Grenze
Keine Betreiberattribution, kein Nachweis einer Auszahlung.

Keine statische Empfängeradresse extrahiert

Die beiden archivierten Listen xrpl-classic-addresses.txt und hex-addresses.txt enthalten jeweils null nichtleere Einträge. IOCS.md und AUDIT.md halten ebenfalls fest, dass im primären Sample keine validierte statische XRP-Empfängeradresse vorliegt. Ein negatives Extraktionsergebnis beweist nicht, dass zur Laufzeit keine Adresse vorkommt. Es erlaubt aber auch nicht, eine Adresse aus einem anderen Fall als Empfänger dieses Samples auszugeben.

Adresskandidaten zusätzlich validieren

Die historische Extraktion beschränkte sich bei klassischen XRP-Adressen nicht auf eine Regex. Diese Funktion prüft das decodierte Format und die eingebettete Prüfsumme. Sie beweist keine Empfängerrolle. Die archivierte Ergebnisliste bleibt leer; dynamisch gelieferte Werte sind damit nicht ausgeschlossen.

javascriptTatsächliches Analysewerkzeug · Zeilen 94–102Analysewerkzeug-Auszug
tools/deobfuscate-xrpl.mjs · Zeilen 94–102
Datei-Hash anzeigenSHA-256 96694272da2415664f9b0948c55c87b3f2fb7441a663c6fd464ad761d7eb0b74
function isValidClassicAddress(value) {
  const decoded = decodeRippleBase58(value);
  if (!decoded || decoded.length !== 25 || decoded[0] !== 0) return false;
  const payload = decoded.subarray(0, 21);
  const expected = decoded.subarray(21);
  const first = createHash('sha256').update(payload).digest();
  const actual = createHash('sha256').update(first).digest().subarray(0, 4);
  return actual.equals(expected);
}
Code lesen

Loyalty und Shibnow sind andere Belegklassen

Der Loyalty-Bericht enthält eine frühere ausdrücklich autorisierte kontrollierte C2-Sitzung. Er darf nicht als rein statische Untersuchung beschrieben werden; diese Sitzung wurde jetzt nicht wiederholt. Shibnow blieb dagegen unbestätigt: Der erfasste Inhalt war nur eine Challenge-Seite ohne Anwendungslogik. Gemeinsam verwendete Infrastruktur macht aus diesem Kandidaten keinen bestätigten Drainer.

Ökosystembezug, keine neue Kryptographie

Die bestätigte Täuschung war auf Web3-Erwartungen und echte Wallet-Dialoge zugeschnitten. Markenimitation, irreführende Claim-Texte und String-Verschleierung sind dagegen bekannte Mittel, kein Beweis technischer Neuheit. Der relevante Unterschied liegt in der belegten Diskrepanz zwischen Darstellung und Handlung. Marktanteil, Erfolgsquote oder gemeinsame Urheberschaft lassen sich aus diesem Material nicht ableiten.

Befunde im Überblick

  • Bundlehash und Ableitungen sind konkret zugeordnet.
  • C2-Bezug ist belegt, Betreiberidentität nicht.
  • Im primären Sample ist keine statische Empfängeradresse validiert.

Grenzen der Prüfung

  • Nur lokale Archivprüfung, kein erneuter Laufzeittest.
  • Keine Wallet-, Opfer- oder Transaktionsdaten aus den getrennten Ereignistraces.
  • Negative Adressextraktion schließt dynamische Laufzeitwerte nicht aus.

Kontext, nicht Beleg

Der Evidence Anchor am Anfang nennt den tatsächlich verwendeten Binär-, Datei- oder Revisionsbezug. Diese Links liefern Einordnung und berichtete Beobachtungen; sie ersetzen keine lokale Sample-Analyse.

XRPL · Secure Signing ↗
Abschließendes Urteil

Fazit

Fazit: Einstufung bestätigt, Attribution begrenzt

Der historische Controllerbefund trägt die Drainer-Einstufung des primären Falls. Der erneute lokale Abgleich bestätigt Samplehash und zwei echte String-Auflösungen, nicht die heutige Aktivität. Die statische Empfängeradresse bleibt unbelegt; Shibnow bleibt Kandidat.

Nächste Schritte

  • IOCs nur mit Rolle und Belegdatum weitergeben.
  • Offene Laufzeit- und Attributionsfragen getrennt führen.
Worauf dieses Urteil beruhtArchiv vom 11. Oktober; lokaler Read-only-Abgleich am 13. Oktober 2026.
Archivierte Frontends, Controller und passive Evidenz des Web3-Korpus
← Alle Research-Audits

Gespräch starten

Projekt besprechen.

Gespräch starten