lehrkraefte:blc:informatik:ffprg2-2018:ffprg2-2018

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
lehrkraefte:blc:informatik:ffprg2-2018:ffprg2-2018 [2019/01/11 16:37]
Ivo Blöchliger [7-Segment-Anzeige-Demo]
lehrkraefte:blc:informatik:ffprg2-2018:ffprg2-2018 [2019/01/18 17:19]
Ivo Blöchliger [Busy Beaver]
Line 12: Line 12:
  
 ====== Assembler und Hacking (Stackoverflow) ====== ====== Assembler und Hacking (Stackoverflow) ======
 +Ein aktueller Hack vom letzten Chaos Computer Congress: https://www.jaybosamiya.com/blog/2019/01/02/krautflare/
 +
 +
   * https://fginfo.ksbg.ch/~ivo/assembler-simulator/   * https://fginfo.ksbg.ch/~ivo/assembler-simulator/
  
Line 27: Line 30:
  
 JMP start JMP start
 +</code>
 +
 +Mit etwas mehr Assembler Voodoo:
 +<code asm>
 +start:
 + MOV A,1
 +loopA:
 + MOV B, 253
 +loopB:
 + MOV [B], A
 + INC B
 + JNC loopB
 +
 + SHL A,1
 + JNC loopA
 +
 + JMP start
 +</code>
 +
 +Der L0L-Dreizeiler
 +<code asm>
 +MOV [253], 0111000b
 +MOV [254], 0111111b
 +MOV [255], 0111000b
 +</code>
 +
 +
 +Manipulierte Rücksprungadresse
 +
 +<code asm>
 + mov A, 'A'   ; Schreibt 65 (ASCII A) ins Register A
 +start:
 + inc A          ; Erhöht den Inhalt vom Register A um 1
 + mov [232], A   ;Schreibt den Wert 65 'A' in die Zelle 232
 + call bla         ;Unterprogramm aufrufen (Adr. auf Stack)
 +ruecksprung:
 + hlt ;Halt
 +
 +
 +bla:
 + mov [253], A   ;Alle 7 Bits für 7-Segment-Anzeige
 + mov [SP+1], start    ; Rücksprungadresse überschreiben
 + ret                   ;Rücksprung auf nach call
 +</code>
 +
 +
 +Ausgabe des LOL-Codes:
 +<code asm>
 +
 +lol:
 +MOV [253], 0111000b
 +MOV [254], 0111111b
 +MOV [255], 0111000b
 +
 +fertig:
 + mov A, fertig
 + dec A
 + mov B, 252
 +loop:
 + mov C, [A]
 + mov [B], C
 + dec B
 + dec A
 + JNC loop
 + hlt
 +
 </code> </code>
 ===== Hackme Code ===== ===== Hackme Code =====
Line 59: Line 128:
 Schaffen Sie es, indem Sie nur die DB-Zeile anpassen (das wäre so quasi der User-Input), dass <nowiki>LOL</nowiki> auf der 7-Segment Anzeige erscheint?  Schaffen Sie es, indem Sie nur die DB-Zeile anpassen (das wäre so quasi der User-Input), dass <nowiki>LOL</nowiki> auf der 7-Segment Anzeige erscheint? 
  
 +<hidden Lösungsvorschlag>
 +Mit Rücksprung direkt in die DB-Konstante (Adresse 0x02)
 +<code asm>
 +DB "ý8þ?ÿ8+       Hello World!"
 +</code>
 +Oder mit Rücksprung in die kopierten Daten an der Adresse 0xdc:
 +<code asm>
 +DB "ý8þ?ÿ8+Ü       Hello World!"
 +</code>
 +
 +</hidden>
 +
 +
 +===== Busy Beaver =====
 +<code asm>
 +start:
 + MOV B, 255
 +
 +humpfdidumpf:
 + MOV A, [B]
 + INC A
 + MOV [B], A
 + JNC humpfdidumpf
 +while:
 + DEC B
 + CMP B, ende
 + JE ende
 + MOV A, [B]
 + INC A
 + MOV [B], A
 + JC while
 + JMP start
 +ende:
 + HLT
 +</code>
  
 ===== Roborobo-Fernbedienung / Ivobot ===== ===== Roborobo-Fernbedienung / Ivobot =====
  • lehrkraefte/blc/informatik/ffprg2-2018/ffprg2-2018.txt
  • Last modified: 2019/01/25 15:34
  • by Ivo Blöchliger