Toon posts:

[Alg] Easter eggs maken en verstoppen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Misschien wat oudbollig maar afgelope maandag heb ik toch hartelijk moeten lachen. In ons sjieke zoeksysteem zit nl. een eigen gemaakte easteregg.
Alleen had ik nu zoiets... leuk... maar de developers kunnen het zien (zal je altijd zien dat zo'n sacherijn het weer verprutst).
Mijn code ziet er ongeveer zo uit:
code:
1
2
3
4
5
6
7
8
9
10
11
if (zoekterm == "easteregg") {
   DoCrazyStuff();
}
else {
  DoSearch(zoekterm);
}

public void DoCrazyStuff() {
toeters.Enabled = true;
bellen.Start();
}


Dus ik ben gaan bedenken hoe ik m'n easteregg goed kon verstoppen.
De enige oplossing die ik bedacht is om de code van de easteregg te encrypten (base64) zodoende is alleen de afvanging van de easteregg nog zichtbaar (niet wat ie uitvoerd).
Maar nu de "grote waarom post ik hier". Nou gewoon voor tips, ervaringen van andere devvers. Dus heb je een goed idee om de egg te 'verstoppen'? of nog leuke ideën voor eentje?

*note: eastereggs moeten altijd leuk blijven; format C:\ is geen easteregg.

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 18-08 22:57

Gerco

Professional Newbie

Verstoppen doe je "in plain sight", onze easter eggs zaten gewoon in het stukje wat de global hotkeys instelt (niet raar, want ze hadden hotkeys), alleen was de filename dusdanig dat het leek of die file wat nuttigs deed ipv tetris opstarten :D

Helaas is de baas erachter gekomen en moesten ze eruit "om de grootte van de software te beperken" (software is ruim 500MB gecompileerd |:( ).

Ik zou alleen die "else" weghalen in je code, zodat de egg ook nog zoekt op die term. Ik weet niet wat die term is, maar je zou weleens problemen kunnen krijgen als iemand toevallig echt daarop wil zoeken :)

[ Voor 28% gewijzigd door Gerco op 07-10-2003 08:02 ]

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


  • seweso
  • Registratie: Augustus 2003
  • Laatst online: 04-04-2018

seweso

de mouw is uit de aap

Precies, maak een saaie functie die niemand ooit gaat lezen. Of een functie die net
niet hetzelfde is als een welbekende API. En zet deze functie dan helemaal
onderaan...of je programmeert gewoon zo:
code:
1
normalevariabele = echtefunctiex(a,b,c,e,d*r*d++^2) + echtefunctiey(a,b,c,d,e) + echtefunctiey(a,b,c,d,e) + eastereggexpressie ? 0 : jehele_easteregg_kun_je_hier_op_één_regeluitprogrammeren;

[ Voor 5% gewijzigd door seweso op 09-10-2003 15:31 ]

seweso's blog


Verwijderd

Het is weer bijna pasen :+

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 18-08 22:57

Gerco

Professional Newbie

seweso, dat is ook een goede ja, maak gewoon een functie die altijd 1 returnt en ondertussen de easteregg opstart ofzo.
code:
1
2
3
4
5
6
  var = blablafunctie(1, 2, 3) * zusenzofunctie(1, 2, 3) * eastereggfunctie(4, 5, 6);

  int eastereggfunctie(int a, int b, int c) {
    if(a == 2*b == 3*c) easteregg();
    return 1;
  }

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Verwijderd

Je kan natuurlijk het proberen onleesbaar te maken, door obfuscated C te gebruiken ofzo. Als je een open-source programma hebt, zou ik het niet doen, want dan heb je kans dat mensen het proggen opgeven omdat ze bepaalde code (de easteregg) niet snappen. Als de hele code niet vereist is, kan je de kritieke code in een DLL compilen ofzo.

  • Maxonic
  • Registratie: September 2000
  • Laatst online: 28-07 22:38
obfuscated C is idd wel cool.
Define de variables alleen wel op een andere plaats als dat de easteregg code staat, anders is het dmv een paar minuten search/replace zo te ontcijferen.
Pagina: 1