Seite 8 von 13 ErsteErste ... 456789101112 ... LetzteLetzte
Ergebnis 141 bis 160 von 245

Thema: 0x12 = 18??? - Das (Computer-)Geek-Quiz

  1. #141
    Ganz großer Tennis ey. Der Admin verpennts hier ne neue Frage reinzustellen!
    Nehm ich halt irgendwas einfaches... öhm...

    Nenne drei der häufigsten Angriffsvektoren im Bereich von Webapplikationen.

  2. #142
    Zitat Zitat von dead_orc Beitrag anzeigen
    Ganz großer Tennis ey. Der Admin verpennts hier ne neue Frage reinzustellen!
    Nehm ich halt irgendwas einfaches... öhm...

    Nenne drei der häufigsten Angriffsvektoren im Bereich von Webapplikationen.
    Wie wäre es mit XSS, SQL-Injections und Lücken in Uploads, über die dann zum Beispiel Code hochgeladen und ausgeführt werden kann. Wobei das auch noch auf unkontrolliertes Einbinden von externem Code passt. Insgesamt natürlich vor allem die Dummheit und Nachlässigkeit der Programmierer und/oder der User.

    Geändert von Manni (10.05.2008 um 22:32 Uhr)

  3. #143
    Zitat Zitat von Manni Beitrag anzeigen
    Wie wäre es mit XSS, SQL-Injections und Lücken in Uploads, über die dann zum Beispiel Code hochgeladen und ausgeführt werden kann. Insgessamt natürlich vor allem die Dummheit und Nachlässigkeit der Programmierer und/oder der User.
    Perfekt, genau die drei Sachen wollte ich hören!
    Wobei mir auch das Buzzword Buffer Overflow gereicht hätte als dritter Punkt.

    Manni's turn.

  4. #144
    Zitat Zitat von dead_orc Beitrag anzeigen
    Ganz großer Tennis ey. Der Admin verpennts hier ne neue Frage reinzustellen!
    Ach scheiße, sorry
    Ich hab ewig drüber nachgedacht, bin auf nichts gekommen und hab dann verpeilt, Freirunde zu posten. Tut mir leid :/

  5. #145
    Mh, eine Frage zu SVG: Wie kann man in einem SVG Bild einen Link erzeugen?

  6. #146
    Da es sich um einen W3C XML Standard handelt, vermute ich einfach mal, dass das mit XLink geht.

  7. #147
    Zitat Zitat von dead_orc Beitrag anzeigen
    Da es sich um einen W3C XML Standard handelt, vermute ich einfach mal, dass das mit XLink geht.
    Das ist, naja, halb richtig. Mal schauen ob noch jemand anderes eine vollständigere Antwort gibt, ansonsten bist du ran

  8. #148
    Wie dead_orc schon sagte, mit xlink.

    <a xlink:href="www.google.com" xlink:title="Google"><rect x="10" y="5" width="20" height="30" /></a>

    Erzeugt ein Rechteck von 10/5 zu 30/35 als Link zu Google

  9. #149
    Zitat Zitat von Cherry1 Beitrag anzeigen
    Wie dead_orc schon sagte, mit xlink.

    <a xlink:href="www.google.com" xlink:title="Google"><rect x="10" y="5" width="20" height="30" /></a>

    Erzeugt ein Rechteck von 10/5 zu 30/35 als Link zu Google
    Jo stimmt. Im Prizip muss man das <a>-Element nicht unbedingt verwenden, aber die Spezifikation sieht es als eine Art Gruppierungselement speziell für Links an. Du bist

  10. #150
    Okay.

    Wie groß ist die kleinstmöglichste Win32-PE-EXE der Welt, und welches Tricks (die Header betreffend) muss man sich dabei bedienen?

    mfG Cherry

  11. #151
    Die Frage ist so nicht direkt beantwortbar, da Windows 2000 (und, wenn ich mich nicht irre in einigen Einstellungen auch Windows 2003 Server) die Kernel32.dll nicht automatisch lädt und wir daher sicherstellen müssen, dass sie geladen wird. Weiters stellt sich die Frage ob die PE Datei noch standardkonform sein soll.

    Ich hab selbst mal mit einigen Freunden versucht die kleinstmögliche PE Datei zu konstruieren und denke, dass man minimal 97 Byte braucht, unter Windows 2000 133 Byte - wenn man denn tatsächlich all die Arbeit auf sich nimmt die Import Table, die IAT und den Namen der DLL auseinanderzunehmen und in unverwendete Felder des Programms stopft.

    Mal sehen ob ich mich an alles erinnere:

    Ein normales, minimales C-Programm (in Richtung von int main() { return 23; } hat ungefähr 44 kB, wenn man an den Kompilierungsoptionen nicht herumspielt. Entfernt man die C Laufzeitbibliothek und das Konsolenfenster, so kommt man auf ungefähr ein kB.

    Das wäre alles noch Standardkonform, aber du fragst ja nach Minima, also schauen wir uns das File Alignment an, welches, spezifikationsgemäß auf 512 gesetzt ist. Das bedeutet aber auch, dass alles zwischen Header und 0x200 mit Nullen gefüllt ist - das ist Platzverschwendung.

    Wenn wir das File Alignment via dem Linker von MS auf 1 setzen, dann kommen wir auf ungefähr ein halbes Kilobyte.

    So, das wird dir immer noch zu groß sein, aber das ist das Maximum was man auf dieser Ebene kann, das heißt wir gehen zur Maschinenebene über: Disassembler ausgepackt (z.B. NASM) und die MS PE Spezifikationen mit den Inhalten der Datei verglichen - alles was nicht notwendig ist fliegt raus. Am einfachsten geht das - eine Idee auf die ich leider erst später durch einen Freund gekommen bin, indem man ein kleines Programm schreibt welches schlicht alle Header-Felder durchgeht, sie mit irgendwas ersetzt und dann schaut ob das Programm das herauskommt entweder crasht oder nicht ausgibt, was es ausgeben soll. Ich hab das damals manuell gemacht ;_;.
    Da wir keine Data Directories brauchen können wir diese ebenfalls rausschmeißen (NumberOfRvaAndSizes).

    Dann kann man noch den MZ Header und den PE Header teilweise zusammenlegen, die dumme DOS Meldung entfernen und kommt auf ungefähr 150 Byte.

    Wenn man dann noch dazu übergeht den PE Header in den optionalen Header einzubauen (was geht, da Windows zwar die Adresse des Section Headers durch Anfangsoffset des Optional Headers + SizeOfOptionalHeader ausrechnet, aber niemals die Größe des Headers selbst prüft), dann spart man sich nochmal ungefähr 53 Byte, was uns zu exakt 97 Byte bringt.

    Alle Angaben ohne Gewähr, ist ne Weile her.

  12. #152
    stimmt (ich hab jetzt vergessen, dass Win2000 da anders ist, ich meinte die WinXP-Version).

    Es ist also richtig.

    Der Trick, von dem ich geredet habe, war eben der, die Header zusammenzulegen, wobei dann e_lfanew (MZ) und SectionAlignment (PE) zusammenfällt (beides 4, weil dann der PE Header ja auch bei Offset 4 startet).


    Geändert von Cherry (18.05.2008 um 08:16 Uhr)

  13. #153
    Es gibt mehr als einen Weg die folgende Aufgabe zu lösen, mich interessiert ein eleganter Weg, nicht die offensichtliche Brute-Force-Methode.

    Um es ein wenig schwieriger zu machen hätte ich danach noch gerne die Generalisierung des Problems, wobei die Kondition, dass der Frosch immer nur auf jeder zweiten Kachel landen kann ebenfalls (als 'k') generalisiert werden sollte.

    Ein kleiner Frosch springt über insgesamt 20 Kacheln von Punkt A nach B. Der kleine Frosch darf immer nur vorwärts springen und kann auch direkt von Punkt A nach Punkt B springen. Er darf natürlich auch auf jedem Feld zwischen den beiden landen, aber niemals auf zwei aufeinanderfolgenden Feldern. A und B sind in diesem Zusammenhang nicht als Felder zu rechnen. Wie viele mögliche Wege gibt es für den kleinen Frosch?


    A [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] B

    Und nun die tatsächliche Frage: Was ist der elegante Weg an die Zahl der Wege zu kommen?

    Geändert von jwiechers (18.05.2008 um 22:28 Uhr)

  14. #154
    Und was ist jetzt die Frage?

  15. #155
    Das steht da oben, was ist der elegante Weg - zwei Leute haben es schon rausgekriegt, wollten aber noch sehen ob es andere finden.

  16. #156
    Code:
    #include <stdio.h>
    
    u8 b = 21;
    u8 k = 2;
    
    u32 PossibleWays(u8 a)
    {
      u32 result = 1;
      for(int c = a + k; c < b - k; c++)
      {
        result += PossibleWays(c);
      }
      return result;
    }
    
    int main()
    {
      printf("Es gibt %d Wege von A nach B\n", PossibleWays(0));
      return 0;
    }
    Nicht getestet, aber sinngemäß so.

    Zitat Zitat
    [23:37] DFYX: Im Prinzip gibt es für den Weg von A nach B den direkten Weg und alle Wege, die über einen beliebigen Punkt C führen, der mindestens k von A und B entfernt ist, wobei für den Weg von C nach B analog zum Weg von A nach B verfahren wird
    [23:37] DFYX: (Und C liegt rechts von A)

  17. #157
    Vielleicht war die Frage etwas seltsam gestellt, aber andererseits sind einige Personen bei exakt dieser Fragestellung auf das gekommen, auf das ich hinaus wollte. DFYX Lösung ist in sofern elegant, als das sie nur korrekte Wege zählt (wobei 'fyx nochmal genau lesen sollte und seine Formel insofern modifizieren sollte, das weder A noch B Felder sind ()), was zumindest schon mal eine Verbesserung ist, aber aufgrund der wundervollen Einfachheit der Mathematik hätte man auch auf eine andere, viel bezauberndere Lösung kommen können die sich aus der Äquivalenz der reinen Summenbildung und der Konstruktionsvorschrift der Fibonacci-Folge (Siehe hier) ergibt. Rechnet man einfach die Summe aus, so kommt man auf 17.711 Wege, welche der Frosch einschlagen kann - und welche Zahl findet sich an der Stelle F(20+2)? Genau, ebenfalls 17.711.

    Um das ganze mal bildlich und nicht mit Formeln zu erklären:

    Restriktion: Keine: Der Frosch darf beliebig springen.
    Wenn der Frosch keine Restriktionen hat, dann ergibt sich - wie hoffentlich wirklich jedem klar ist, die Folge 2,4,8,16: 2^n.

    Restriktion: Nur jedes 2. Feld darf berührt werden.
    0 Felder:
    A B
    Der Frosch hat einen Weg. (A,B)

    1 Feld:
    A [ ] B
    A [x] B
    Der Frosch hat exakt zwei Wege, (A,B & A,1,B)

    2 Felder:
    A [ ] [ ] B
    A [x] [ ] B
    A [ ] [x] B
    Der Frosch hat exakt drei Wege (A,B & A,1,B & A,2,B)

    3 Felder:
    A [ ] [ ] [ ] B
    A [x] [ ] [x] B
    A [x] [ ] [ ] B
    A [ ] [x] [ ] B
    A [ ] [ ] [x] B
    Der Frosch hat exakt fünf Wege (A,B & A,1,3,B & A,1,B & A,2,B & A,3,B)

    4 Felder:
    A [ ] [ ] [ ] [ ] B
    A [x] [ ] [ ] [ ] B
    A [x] [ ] [x] [ ] B
    A [x] [ ] [ ] [x] B
    A [ ] [x] [ ] [x] B
    A [ ] [x] [ ] [ ] B
    A [ ] [ ] [x] [ ] B
    A [ ] [ ] [ ] [x] B
    Der Frosch hat exakt acht Wege (...)

    5 Felder:
    A [ ] [ ] [ ] [ ] [ ] B
    A [x] [ ] [ ] [ ] [ ] B
    A [ ] [x] [ ] [ ] [ ] B
    A [ ] [ ] [x] [ ] [ ] B
    A [ ] [ ] [ ] [x] [ ] B
    A [ ] [ ] [ ] [ ] [x] B
    A [x] [ ] [x] [ ] [x] B
    A [x] [ ] [x] [ ] [ ] B
    A [x] [ ] [ ] [x] [ ] B
    A [x] [ ] [ ] [ ] [x] B
    A [ ] [x] [ ] [ ] [ ] B
    A [ ] [ ] [ ] [x] [ ] B
    A [ ] [ ] [x] [ ] [x] B
    Der Frosch hat exakt dreizehn Wege

    Wie man sieht, etabliert sich die Fibonacci-Folge - und wie ebenfalls offensichtlich sein dürfte verändert sich dies, ändern wir den Parameter der zu überspringenden Felder. Nehmen wir an, dass der Frosch immer über mindestens zwei Felder springen muss, dann erhält man die Folge 2,3,4,6,9,13,..., bei der man nicht die beiden vorherigen Nummern addiert, sondern jeweils n-1 und n-3 addiert. Bei drei Feldern ergibt sich folgerichtig 2,3,4,5,7,10,14, also n-1 + n-4. Man setze beliebig fort. :-)

    mirabile dictu!

    Wenn Malu möchte, er war der erste, der drauf kam, ansonsten, freie Runde.

    Geändert von jwiechers (20.05.2008 um 22:41 Uhr)

  18. #158
    Nein, danke, denn
    1. bin ich bei sowas schrecklich unkreativ und
    2. hab ichs hier ja nicht gepostet.

  19. #159
    Gut, da ich ebenfalls Sephis Raetsel geloest hab (ich durfte nicht ins Forum sehen weil er schon die loesung gepostet hatte), ich einen Beweis durch vollstaendige Induktion dazu gelegt habe (wenn interesse besteht, poste ich ihn gerne) und es eine Freirunde ist, bin ich so frei, ein Raetsel zu stellen ...

    Frage: Warum laeuft der folgende C Code bei echter Parallelisierung auf einem Zwei-Prozessor-System mit Shared Memory unterschiedlich schnell, je nachdem, wie die Schleife (z.B. vom Programmierer) auf die Prozessoren aufgeteilt wird ?

    Code:
    double A[SomeBigNum];
    ...
    int i;
    for ( i=0; i<SomeBigNum; ++i )
      A[i] += 1;
    Tipp: Wenn Prozessor1 alle geraden Indizes und Prozessor2 die ungeraden Indizes bearbeitet anstatt Prozessor1 die Indizes von 0 bis SomeBigNum/2-1 und Prozessor2 von SomeBigNum/2 bis SomeBigNum-1 ist der Code um teilweise mehr als Faktor 10 langsamer.

    Tipp 2: Das selbe Problem aus einer aehnlichen Ursache kann auch bei seriellem Single-Prozessor-Code auftreten, wenn man mit zweidimensionalen Arrays arbeitet und die beiden Schleifen-Indizes vertauscht.

    Geändert von Ineluki (22.05.2008 um 18:58 Uhr)

  20. #160
    Größere Sprünge bei der Adresse von A?

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •