jnizm1
Goto Top

Javascript - File Cleaner

Auf der Beispiel-Seite lassen sich Inhalte durch Einfügen von Config oder Textdateien aufgrund einer Blacklist überprüfen
https://dl.dropbox.com/u/40602931/cod4/ahk/file_checker_blacklist.html

Javascript-Code: http://pastie.org/4614534

Als Beispiel einfügen:
seta test1 "1"
seta test2 "1"
seta aimbot "1"

Nach drücken des Scan Buttons erhält man folgende Meldung:
Line 3: Disallowed DVAR name aimbot (Remove this line)

Durch klicken auf (Remove this line) wird die fehlerhafte Zeile entfernt


Wie bekomme ich hin das das ganze mit einer Art Whitelist funktioniert.

Vorher: Einträge werden nach Blacklist Wörter wie "aimbot" durchsucht
Nacher: Alles was nicht dem Enspricht was ich eingetragen habe als Falsch anzeigen (Whitelist)
Das ganze soll auch weiterhin mit dem seta und bind klappen


danke im Voraus

Content-Key: 190456

Url: https://administrator.de/contentid/190456

Printed on: April 24, 2024 at 03:04 o'clock

Member: Arano
Arano Aug 30, 2012 at 09:00:45 (UTC)
Goto Top
Moin moin

Nur damit ich das richtig verstehe:
  1. Du hast ein <input type="file">-Element.
  2. NACH dem Auswählen einer Datei möchtest du den kompletten Dateinamen auslesen,
  3. nun den Dateinamen __bearbeiten__ und
  4. wieder zurück in das <input type="file">-Element schreiben ?

Nein, __das ist nicht möglich !__
Wen das ginge, könnte sich ja jede Website die "Windows-Sicherheitsdateie(n)" selber zuschicken, OHNE das der Besucher weder danach gefragt wird oder etwas davon mitbekommt.

Mit etwas Glück kannst du noch den Dateinamen (manchmal auch mit Pfad) auslesen, aber dann ist Schluss !


~Arano
Member: jNizM1
jNizM1 Aug 30, 2012 updated at 09:07:11 (UTC)
Goto Top
das mit dem Upload war nicht wörtlich gemeint...
den Inhalt eines Text-Files in das Feld kopieren und Scan drücken...

Probiers doch mal die Seite aus mit:
seta test1 "1"  
seta test2 "1"  
seta aimbot "1"  

das selbe soll funktionieren mit ner Art Whitelist, wo ich die Einträge zur verfügung stelle und alles was nicht dazu gehört anzeigen
Member: Arano
Arano Aug 30, 2012 updated at 09:34:36 (UTC)
Goto Top
Hi

das mit dem Upload war nicht wörtlich gemeint...
Hm.. Im Titel steht was von File-Upload und im erstem Link geht es auch im <input type="file">
Der zweite Link zeigt __unkommentierten__ und __unbeschriebenen__ sonstwas Code und
mit dem drittem Link kann ohne Beschreibung auch niemand etwas anfangen !

Lies dir mal dieses durch (Abschnitt:"indexOf()"): selfHTML - indexOf()
Und dann schau dir diese beiden Zeilen mal an:
                    if(b[b.length-1].toLowerCase().indexOf(f[d].toLowerCase())!==-1)
/* ... */
                            if(b[b.length-1].toLowerCase().indexOf(f[d].toLowerCase())!==-1)

Dann müsstest man es eigentlich umbauen/anpassen können.


~Arano
Member: jNizM1
jNizM1 Aug 30, 2012 at 10:07:15 (UTC)
Goto Top
Ich habs oben nochmal genauer beschrieben und angepasst
Member: Arano
Arano Aug 30, 2012 at 10:17:50 (UTC)
Goto Top
Zitat von @jNizM1:
Ich habs oben nochmal genauer beschrieben und angepasst

Okay, das ist schon mal besser !
Aber was ist mir der zweiten Hälfte meiner Antwort ??
Member: jNizM1
jNizM1 Aug 30, 2012 at 12:02:12 (UTC)
Goto Top
kannst du mir das anhand eines Beispiels von oben erklären?
Member: Arano
Arano Aug 30, 2012 at 12:34:48 (UTC)
Goto Top
?Hm...

Also fertigen Code gibt es von mir nicht, ich bin nur __zum helfen__ hier. ;)

indexOf() ist wunderbar auf der selfHTMl-Seite beschrieben und
die Anwendung des Scriptes selber ist wird ja im Quelltext der Beispielseite gezeigt...

Jetzt weiss ich einfach nicht WAS du denn erklärt haben möchtest !?
kannst du mir das anhand eines Beispiels von oben erklären?
  • das ist nicht sonderlich aussagekräftig und
  • oben steht mittlerweile verschiedenes

Hast du überhaupt etwas an Wissen über HTML und Javascript oder, Hand aufs Herz, eigentlich keine/kaum Ahnung !?


~Arano
Member: jNizM1
jNizM1 Aug 30, 2012 updated at 12:42:03 (UTC)
Goto Top
HTML und CSS ja
Javascript noch nicht (bzw nur einfache sachen)

ein fertigen code wollte ich ja nicht

mit dem Beispiel meinte ich anhand von:
seta test1 "1"
seta test2 "1" 
seta aimbot "1"
"test1" & "test2" in der Whitelist
Member: Arano
Arano Aug 30, 2012 updated at 13:32:19 (UTC)
Goto Top
HTML und CSS ja
Javascript noch nicht (bzw nur einfache sachen)
Alles kein problem, nur etwas unpraktisch wenn man mit Javascript arbeiten möchte :D aber...
ein fertigen code wollte ich ja nicht
das ist schön !

Ich meinte ja, dass wenn du das gefunden Script anpasst, es dann wie eine Whiteliste fungiert !
Scheinbar muss ich doch das ganze Script einmal etwas erklären...

Also, wenn die JS-Funktion-checkCfg() aufgerufen wird holt sich diese den Text aus der <textarea id="cfg"> und zerteilt ihn bei jedem Zeilenumbruch ("\n" "\r\n" "\r") in einzelne Zeilen/Elemente und speichert sie in einem Array.
Alle Elemente des Arrays (bzw. Zeilen des Textes) werden anschließend einzeln durchlaufen.

Mit einem "regulärem Ausdruck" (RegEx von (en)regular expression) wird nun überprüft ob die Zeile mit "bind" beginnt und gleichzeitig das __übernächste Wort__ "ein gescannt".
Wenn die Zeile hingegen nicht mit "bind" beginnt, wird geprüft sie mit "seta" beginnt und die __beiden nächsten Wörter__ "eingescannt".
Jetzt muss nur noch das/die gescannte(n) Wort/Wörter mit der Liste der geblacklisteten Wörter (es gibt zwei Listen, für "bind"=f und "seta"=c) abgeglichen werden (das sind die Zeilen mit indexOf() die ich gepostet hatte). Wenn nun das Wort per indexOf() in der Blackliste gefunden wird, ist es ein "böses" und muss gestrichen andernfalls ist es ein "gutes".
    var liste = ["schlecht","verdorben","ungeniesbar"];  
    var wort = "himmel";  
/* negierter (!) vergleich */
    if( liste.indexOf(wort)!=-1 ) // wenn "wort"       IN der "liste" vorkommt (s. selfHTML-indexOf) 
    {
        /* "wort" ist BÖSE ! */   // alles  was  NICHT in der "liste" steht ist also GUT */ 
    }
    
    var liste = ["wolken","himmel","sonne"];  
    var wort = "himmel";  
/* normaler vergleich */
    if( liste.indexOf(wort)==-1 ) // wenn "wort" NICHT in der "liste" vorkommt (s. selfHTML-indexOf) 
    {
        /* "wort" ist BÖSE ! */   // alles  was        IN der "liste" steht ist also GUT */ 
    }
Wie du siehst, der Name der Liste ist fast egal aber mit dieser klitzekleinen Änderung kannst dein "Blicklist"-Script in ein "Whitelist"-Script abändern.

Ich habe das __nicht__ getestet ;)

Hoffe das konnte dir helfen !?
Sonst frag halt nochmal, je genauer die Frage, desto besser die Antwort...


~Arano
Member: jNizM1
jNizM1 Aug 30, 2012 updated at 16:53:42 (UTC)
Goto Top
hab jez damit n bisschen probiert...
und mit:
if(b[b.length-1].toLowerCase().indexOf(f[d].toLowerCase())==-1)
bekomm ich:
Line 1: Disallowed DVAR contents aim in seta test1 "1" (Remove this line) (orange)
Line 2: Disallowed DVAR contents aim in seta test2 "1" (Remove this line) (orange)
Line 3: Disallowed DVAR name aimbot (Remove this line) (rot)
Line 3: Disallowed DVAR contents aim in seta aimbot "1" (Remove this line) (orange)

in der Liste steht das aimbot was ja dann whitelist sein sollte
dh.. eigtl müsste jez alles außer aimbot rot sein
Member: Arano
Arano Aug 30, 2012 at 17:37:16 (UTC)
Goto Top
Ohm...

...keine Ahnung !
Ich kenne weder deine Listen ("c" und "f") noch deine Prüfeingaben !?

Alle "bind" Konfigurationen werden gegen die Liste "f" geprüft.
Alle "seta" Konfigurationen werden gegen die Liste "f" und "c" geprüft.

Alles aus Liste "f" wird orange markiert und
alles aus Liste "c" wird rot markiert.

Das es DREI Stellen gibt an denen geprüft wird, ist mir eben erst aufgefallen...
...schau nochmal drüber und Probiere es erneut.


~Arano
Member: jNizM1
jNizM1 Aug 30, 2012 updated at 17:55:12 (UTC)
Goto Top
die liste war die selbe wie oben in dem js-link
dann hätte ja eigtl alles falsch außer aimbot sein müssen

dann denk ich mal müsste diese zeile bei rot angepasst werden:
if(b[b.length-2].toLowerCase()===c[d].toLowerCase())
Member: Arano
Arano Aug 30, 2012 at 17:57:32 (UTC)
Goto Top
Benutzt du die eine Liste als White- und die andere als Blacklist ?!

Wenn dein Ergebnis jetzt genau falsch herum ist, dann hast du möglicher weise einfach die Prüfungen vertauscht bzw. hast dich mit dem negieren vertan !?

Ich habe hier nichts nachgebaut, ich lebe nur von den Informationen die du schreibst...


~Arano
Member: jNizM1
jNizM1 Aug 30, 2012 updated at 18:03:34 (UTC)
Goto Top
die Einträge die vorher Blacklist waren werden einfach durch Wörter ersetzt die dann als Whitelist fungieren sollen (dh Blacklist gibt es nicht mehr)

demensprechend sollte (so glaub ich) orange bleiben aber rot nicht mehr die Wörter aus der (vorher) Blacklist sein sondern alles was nicht in der Whitelist steht

kompliziert kompliziert
Member: Arano
Arano Aug 30, 2012 at 18:26:14 (UTC)
Goto Top
Jetzt habe ich mal etwas genauer hingesehen...

Vielleicht hilft dir das hier weiter, ansonsten kann ich wohl nicht mehr viel machen.
bind key value
seta name value
Beim überprüfen von "bind" wird nur das "value" gegen die Liste "f" geprüft, beim Treffer = orange.
Beim überprüfen von "seta" wird zuerst "name" gegen die Liste "c" geprüft, beim Treffer = rot und
anschließend wird "value" gegen die Liste "f" geprüft, beim Treffer = orange.

Heißt:
Orange Treffer weisen auf "böse" value-Werte hin und
rote Treffer weisen auf "böse" name-Werte.

Das bezieht sich natürlich alles auf das original Script, so wie es bei Pastbin steht.


~Arano