Stefan Lennerbrant
<4364>
· Text 5917 · w8 · kommentar
1987-01-04 21:39
Ärende: BAC-filer typ KEY,DO etc
Det är väl så Luxor gör (gjorde) för att skydda sina program.
Först ligger, som du skrev, strängen, men "hopp"-basickoden är
inte någon speciell "hoppa"-kod utan ett "return-från-eval".
Det som gör att man hoppar till strängen istf tillbaka till
tolken är att det innan "return-från-eval" i vanliga fall
ligger en "plocka-ner-strängadr-från-stack". Nu finns inte
den där och alltså tror eval att den har hoppat tillbaka till
tolken när den egentligen har hoppat till strängen.
Appropå det - för den nyfikne:
Luxor brukade skydda sina prog genom den här metoden.
Koden i strängen läste in en sektor från skivan och dekrypterade
den. Sedan hoppades det dit (till sektorn) och koden där kollade
skyddet på skivan, dekrypterade det riktiga BASIC-programmet
(om allt var väl), och hoppade tillbaka till tolken som då
började köra programmet.
(. Inte gör det väl något att säga det .)
mvh