Zethyr Skrevet 26. november 2005 Del Skrevet 26. november 2005 Hei Jeg har nå strevd ganske lenge med et ganske enkelt problem. Jeg får en streng fra en bruker vha. cin, legger sammen hex-verdien for ascii-representasjonen av hvert tegn til en sum, før jeg printer denne ut til brukeren igjen. Denne relativt enkle oppgaven blir straks ganske vrien når mine skrantende ferdigheter blir nødt for å jobbe midt på natta. Har noen lyst til å lage en kodesnutt som jeg kan se på og lære av? Jeg vil ikke engang poste det jeg har kommet frem til, iom. at jeg nå til sist har prøvd meg med en switch/case med 62 mulige utfall (a-z, A-Z, 0-9) for å finne hex-verdien av et ascii-tegn. Av en eller annen grunn ender jeg opp med alt for store tall. Riktignok kom det seg etter at jeg husket å sette en startverdi på 0 for min sum-integer, men tallene er fremdeles for store. Eks: "Hihi9" som input skal gi 1BB som output. Lenke til kommentar
charlie di meola Skrevet 26. november 2005 Del Skrevet 26. november 2005 char bla[] = "Hihi9"; int bla2=0; int i; for(i=0;i<strlen(bla);i++) bla2 += (int)bla[i]; printf("%x\n",bla2); Lenke til kommentar
Zethyr Skrevet 26. november 2005 Forfatter Del Skrevet 26. november 2005 Hahaha.. ikke værre nei.. Lenke til kommentar
Zethyr Skrevet 26. november 2005 Forfatter Del Skrevet 26. november 2005 Tar dette videre i samme tråd, siden problemstillingen ikke har endret seg mye: Hvordan skrive dette penere og mer oversiktlig (tror ikke jeg skjønner min egen kode dersom jeg ser tilbake på den om 1 mnd.) int main(){ printf("username: "); char bla[25]; gets(& bla); int bla2=0x1111; unsigned short int bla3 = 0x0000, bla4 = 0x0000; int i = 0; for(i=0;i<strlen(bla);i++){ bla2 += (int)bla[i]; bla3 = (bla2/0x100 - 0x17)*0x100; //Dette må da kunne gjøres mer elegant? bla4 = bla2-bla3-0x1700; bla2 = bla3+bla4; } bla2 = (0x10000+bla2)*0x71; printf("password: "); printf("%x\n",bla2); getch(); } Denne gangen er koden ment å generere et passord ut fra et brukernavn på samme måte som i dette utdraget fra en disassemble av en crackme: Disassemble_crackme_03.txt Jeg har en følelse av at man bør kunne fikse en del av koden så den både er penere og mer effektiv, for det skal ikke store modifiseringer til av oppgaven før den der er satt ut av spill Har noen kanskje en mer C++'ish variant av koden? Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå