Köderseite
Die sichtbare Weboberfläche bildet den Einstieg in den untersuchten Wallet-Fluss.
Domain-, Script- und Ladebeziehungen gemeinsam bewerten.
Im Prüfbestand belegtMalware Analysis / Artefakt: core-chain-v1.7.min.js · SHA-256 194ce39215a1…
Claim-Oberfläche, Transaktionsfreigaben und Backend-Steuerung im archivierten XRPL-Controller. Mit Code, C2-Indikatoren und einer getrennten Bewertung der weiteren Fälle.
Keine neue Ausführung; kein aktueller Deployment-Nachweis
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.
194ce39215a160ed33b4748accdb6c5e792ba96b1d6199d7d2edb7352cc13c2fDer Analysepfad dieses Berichts. Jeder Knoten zeigt, was belegt ist, wo Detection ansetzen kann und wo die Aussage endet.
Die sichtbare Weboberfläche bildet den Einstieg in den untersuchten Wallet-Fluss.
Domain-, Script- und Ladebeziehungen gemeinsam bewerten.
Im Prüfbestand belegtDer Client fordert eine Wallet-Verbindung an; eine Anfrage allein belegt noch keine Freigabe.
Unerwartete Provider-Aufrufe und Herkunftskontext verbinden.
Im Prüfbestand belegtStatische Logik bereitet eine Aktion vor, deren Bedeutung aus Parametern und Zielsystem folgt.
Methoden, Zieladressen und angezeigten Zweck vergleichen.
Im Prüfbestand belegtErst die Nutzerfreigabe überschreitet die Signaturgrenze; dieser Bericht trennt Vorbereitung und Ausführung.
Wallet-Warnungen und Simulationsabweichungen priorisieren.
Begrenzt oder offenEine beobachtete oder rekonstruierte Aktion wird nur innerhalb des dokumentierten Falls bewertet.
On-chain-Effekt und Frontend-Telemetrie getrennt korrelieren.
Begrenzt oder offenAnalyseachsen aus dem Bericht – keine Live-Konfiguration und kein universeller Familienindikator.
Quelle, Validierung und Grenze gehören zu jeder Regel.
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)
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.
194ce39215a160ed33b4748accdb6c5e792ba96b1d6199d7d2edb7352cc13c2fErhaltenes Originalbundle
a99df897c7aed2289b27ca934b4bb9e230cd4f0be790806c527d97421a56e02fFormatierte Ableitung
0131abf01187f995d4577bb58866b11ae90768212b7624706faf1759e9388c2dAbleitung mit gefalteten Strings
96694272da2415664f9b0948c55c87b3f2fb7441a663c6fd464ad761d7eb0b74Eigenes archiviertes Werkzeug für statische Aufbereitung
Die erste Ansicht zeigt gespeicherte Referenzen; die zweite rekonstruiert den dokumentierten Arbeitsweg. Kein Schritt wurde erneut ausgeführt.
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.
Belegte Pfade und vorhandene Ableitungen; Backend bleibt offen.
Erfasstes HTML; Scriptreferenz in Zeile 262.
index.html:262 nennt den relativen Bundlepfad. Referenz ist kein Ausführungsnachweis.
Erhaltenes Originalbundle; Hash lokal abgeglichen.
index.html:262 nennt den relativen Bundlepfad. Referenz ist kein Ausführungsnachweis.
Werkzeug:11–16 benennt die Eingabe und readFile.
Liest das konkrete Bundle als Text.
Werkzeug:11–16 benennt die Eingabe und readFile.
Werkzeug:27–36 und56 dokumentieren Erstellung/Ausgabe; heute nicht erneut ausgeführt.
Werkzeug:40–60 dokumentiert Faltung und Ausgabe; archivierte Datei vorhanden.
Formatierte Ableitung, nicht Rawcode.
Werkzeug:27–36 und56 dokumentieren Erstellung/Ausgabe; heute nicht erneut ausgeführt.
Archivierte Ableitung mit konstanten Stringfaltungen.
Werkzeug:40–60 dokumentiert Faltung und Ausgabe; archivierte Datei vorhanden.
Werkzeug:94–115 dokumentiert Validierung/Ausgaben; beide gespeicherten Listen leer.
AUDIT.md:29 nennt das gefaltete Artefakt mit Zeilenbezug.
Clientbelege bestimmen weder Servercode noch konkrete Laufzeitantworten.
Klassische XRP- und Hex-Adresslisten sind leer. Beide Dateien wurden geprüft.
Werkzeug:94–115 dokumentiert Validierung/Ausgaben; beide gespeicherten Listen leer.
Historischer Controllerbericht mit Artefakt- und Befundreferenzen.
AUDIT.md:29 nennt das gefaltete Artefakt mit Zeilenbezug.
Keine tatsächliche Serverimplementierung aus dem Bundle belegt. Ein vorhandenes Clean-Room-Modell ersetzt sie nicht.
Clientbelege bestimmen weder Servercode noch konkrete Laufzeitantworten.
Archivierte Aufbereitung und Bewertung, keine neue Ausführung.
Der Fallbericht dokumentiert die Aufnahme vom Oktober 2026. Keine neue Aufnahme in dieser Arbeit.
Werkzeugpfad bindet die archivierte Bundle-Eingabe.
Erster dokumentierter Parser-/Printdurchlauf ohne Kompression.
Werkzeugpfad bindet die archivierte Bundle-Eingabe.
Werkzeug dokumentiert zwei getrennte Transformaufrufe.
Konservative Optionen; echte Propertypaare in den Ableitungen geprüft.
Werkzeug dokumentiert zwei getrennte Transformaufrufe.
AUDIT.md verweist auf das abgeleitete Controllerartefakt.
Werkzeug dokumentiert Adressvalidierung nach Faltung.
Controllerbefunde trugen die Einstufung; harmlose Propertypaare allein nicht.
AUDIT.md verweist auf das abgeleitete Controllerartefakt.
Der jetzige Auftrag umfasste nur statische Archivprüfung.
Checksum-Validierung und leere Ergebnisse; kein Beweis fehlender Laufzeitwerte.
Werkzeug dokumentiert Adressvalidierung nach Faltung.
Nicht durchgeführt. Historische Sitzung eines anderen Falls bleibt separat.
Der jetzige Auftrag umfasste nur statische Archivprüfung.
Grenze: Dateireferenzen belegen kein Laufzeitverhalten. „Dokumentiert“ kennzeichnet den archivierten Analyseweg; „Ungeklärt“ bedeutet, dass aktuelle oder serverseitige Belege fehlen.
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.
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,
},
});
Zeilennummern gelten für diesen Ausschnitt. Erklärung wählen, um den Bereich zu markieren.
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.
SHA-256 96694272da2415664f9b0948c55c87b3f2fb7441a663c6fd464ad761d7eb0b74async function transform(options) {
const result = await minify(source, options);
if (!result.code) throw new Error('Terser returned no code');
return result.code;
}
Originalzeilen der Quelldatei. Erklärung wählen, um den Bereich zu markieren.
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.
SHA-256 96694272da2415664f9b0948c55c87b3f2fb7441a663c6fd464ad761d7eb0b74const pretty = await transform({
compress: false,
mangle: false,
format: {
beautify: true,
comments: true,
keep_quoted_props: true,
quote_style: 1,
},
});
Originalzeilen der Quelldatei. Erklärung wählen, um den Bereich zu markieren.
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.
Quellartefakt · Hash der vollständigen Datei, nicht des Ausschnitts
document['ti' + 'tl' + 'e']document.titleTextansicht · keine Ausführung · Original bleibt unverändert
Die eckigen Klammern enthalten nur konstante Zeichenliterale. In der formatierten Ableitung bleibt die ursprüngliche Verschleierung sichtbar.
Das Zusammenfügen dieser Literale ergibt title. Ein dynamischer Ausdruck müsste dagegen offen bleiben.
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.
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.
Quellartefakt · Hash der vollständigen Datei, nicht des Ausschnitts
document['re' + 'ad' + 'yS' + 'ta' + 'te']document.readyStateTextansicht · keine Ausführung · Original bleibt unverändert
Die eckigen Klammern enthalten nur konstante Zeichenliterale. In der formatierten Ableitung bleibt die ursprüngliche Verschleierung sichtbar.
Das Zusammenfügen dieser Literale ergibt readyState. Ein dynamischer Ausdruck müsste dagegen offen bleiben.
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.
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.
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.
Domains sind absichtlich nicht anklickbar geschrieben. Der Hash wurde lokal neu berechnet.
xrpl-scanner[.]comx-flux-cast[.]pages[.]devloyalty-xprl[.]com194ce39215a160ed33b4748accdb6c5e792ba96b1d6199d7d2edb7352cc13c2fKeine Indikatoren in dieser Kategorie.
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.
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.
SHA-256 96694272da2415664f9b0948c55c87b3f2fb7441a663c6fd464ad761d7eb0b74function 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);
}
Originalzeilen der Quelldatei. Erklärung wählen, um den Bereich zu markieren.
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.
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.
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 ↗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.
Gespräch starten