#include <ctype.h> // tolower #include <string.h> // - - PowerPoint PPT Presentation

include ctype h tolower include string h strcmp sfp
SMART_READER_LITE
LIVE PREVIEW

#include <ctype.h> // tolower #include <string.h> // - - PowerPoint PPT Presentation

#include <ctype.h> // tolower #include <string.h> // strcmp sfp main() #include <stdio.h> // fgets, fputs void reveal_secret() login { fputs("SUPER SECRET = 42\n", stdout); } login int verify(const char*


slide-1
SLIDE 1

login rip sfp name[i] rip sfp sfp

main()

login %esp %ebp %eip

verify()

#include <ctype.h> // tolower #include <string.h> // strcmp #include <stdio.h> // fgets, fputs void reveal_secret() { fputs("SUPER SECRET = 42\n", stdout); } int verify(const char* name) { char user[256]; int i; for (i = 0; name[i] != '\0'; ++i) user[i] = tolower(name[i]); user[i] = '\0'; return strcmp(user, "xyzzy") == 0; } int main() { char login[512]; fgets(login, 512, stdin); if (! verify(login)) return 1; reveal_secret(); return 0; } i user

256 bytes

slide-2
SLIDE 2

login rip sfp name[i] rip sfp sfp

main()

login %esp %ebp %eip

verify()

#include <ctype.h> // tolower #include <string.h> // strcmp #include <stdio.h> // fgets, fputs void reveal_secret() { fputs("SUPER SECRET = 42\n", stdout); } int verify(const char* name) { char user[256]; int i; for (i = 0; name[i] != '\0'; ++i) user[i] = tolower(name[i]); user[i] = '\0'; return strcmp(user, "xyzzy") == 0; } int main() { char login[512]; fgets(login, 512, stdin); if (! verify(login)) return 1; reveal_secret(); return 0; } i = 0 user

256 bytes

slide-3
SLIDE 3

login rip sfp name[i] rip sfp sfp

main()

login %esp %ebp %eip

verify()

#include <ctype.h> // tolower #include <string.h> // strcmp #include <stdio.h> // fgets, fputs void reveal_secret() { fputs("SUPER SECRET = 42\n", stdout); } int verify(const char* name) { char user[256]; int i; for (i = 0; name[i] != '\0'; ++i) user[i] = tolower(name[i]); user[i] = '\0'; return strcmp(user, "xyzzy") == 0; } int main() { char login[512]; fgets(login, 512, stdin); if (! verify(login)) return 1; reveal_secret(); return 0; } i = 1 user

256 bytes

slide-4
SLIDE 4

login rip sfp name[i] rip sfp sfp

main()

login %esp %ebp %eip

verify()

#include <ctype.h> // tolower #include <string.h> // strcmp #include <stdio.h> // fgets, fputs void reveal_secret() { fputs("SUPER SECRET = 42\n", stdout); } int verify(const char* name) { char user[256]; int i; for (i = 0; name[i] != '\0'; ++i) user[i] = tolower(name[i]); user[i] = '\0'; return strcmp(user, "xyzzy") == 0; } int main() { char login[512]; fgets(login, 512, stdin); if (! verify(login)) return 1; reveal_secret(); return 0; } i = 2 user

256 bytes

slide-5
SLIDE 5

login rip sfp name[i] rip sfp sfp

main()

login %esp %ebp %eip

verify()

#include <ctype.h> // tolower #include <string.h> // strcmp #include <stdio.h> // fgets, fputs void reveal_secret() { fputs("SUPER SECRET = 42\n", stdout); } int verify(const char* name) { char user[256]; int i; for (i = 0; name[i] != '\0'; ++i) user[i] = tolower(name[i]); user[i] = '\0'; return strcmp(user, "xyzzy") == 0; } int main() { char login[512]; fgets(login, 512, stdin); if (! verify(login)) return 1; reveal_secret(); return 0; } i = 3 user

256 bytes

slide-6
SLIDE 6

login login #include <ctype.h> // tolower #include <string.h> // strcmp #include <stdio.h> // fgets, fputs void reveal_secret() { fputs("SUPER SECRET = 42\n", stdout); } int verify(const char* name) { char user[256]; int i; for (i = 0; name[i] != '\0'; ++i) user[i] = tolower(name[i]); user[i] = '\0'; return strcmp(user, "xyzzy") == 0; } int main() { char login[512]; fgets(login, 512, stdin); if (! verify(login)) return 1; reveal_secret(); return 0; } f4 c8 f2 a9

  • name[i]

rip sfp sfp

main()

%esp %ebp %eip

verify()

i = 264 user

256 bytes

  • 0xc8f4f2a9
slide-7
SLIDE 7

&"xyzzy" user rip %esp %ebp %eip sfp

strcmp()

s t r c m p

#include <ctype.h> // tolower #include <string.h> // strcmp #include <stdio.h> // fgets, fputs void reveal_secret() { fputs("SUPER SECRET = 42\n", stdout); } int verify(const char* name) { char user[256]; int i; for (i = 0; name[i] != '\0'; ++i) user[i] = tolower(name[i]); user[i] = '\0'; return strcmp(user, "xyzzy") == 0; } int main() { char login[512]; fgets(login, 512, stdin); if (! verify(login)) return 1; reveal_secret(); return 0; } i login login f4 c8 f2 a9

  • sfp

main() verify()

user

256 bytes

slide-8
SLIDE 8

&"xyzzy" user rip %esp %ebp %eip sfp #include <ctype.h> // tolower #include <string.h> // strcmp #include <stdio.h> // fgets, fputs void reveal_secret() { fputs("SUPER SECRET = 42\n", stdout); } int verify(const char* name) { char user[256]; int i; for (i = 0; name[i] != '\0'; ++i) user[i] = tolower(name[i]); user[i] = '\0'; return strcmp(user, "xyzzy") == 0; } int main() { char login[512]; fgets(login, 512, stdin); if (! verify(login)) return 1; reveal_secret(); return 0; } i login login f4 c8 f2 a9

  • sfp

main() verify()

user

256 bytes

slide-9
SLIDE 9

&"xyzzy" user rip %esp %ebp %eip sfp #include <ctype.h> // tolower #include <string.h> // strcmp #include <stdio.h> // fgets, fputs void reveal_secret() { fputs("SUPER SECRET = 42\n", stdout); } int verify(const char* name) { char user[256]; int i; for (i = 0; name[i] != '\0'; ++i) user[i] = tolower(name[i]); user[i] = '\0'; return strcmp(user, "xyzzy") == 0; } int main() { char login[512]; fgets(login, 512, stdin); if (! verify(login)) return 1; reveal_secret(); return 0; } i login login f4 c8 f2 a9 sfp

main() verify()

user

256 bytes

slide-10
SLIDE 10

&"xyzzy" user rip %esp %ebp %eip sfp #include <ctype.h> // tolower #include <string.h> // strcmp #include <stdio.h> // fgets, fputs void reveal_secret() { fputs("SUPER SECRET = 42\n", stdout); } int verify(const char* name) { char user[256]; int i; for (i = 0; name[i] != '\0'; ++i) user[i] = tolower(name[i]); user[i] = '\0'; return strcmp(user, "xyzzy") == 0; } int main() { char login[512]; fgets(login, 512, stdin); if (! verify(login)) return 1; reveal_secret(); return 0; } i login login f4 c8 f2 a9 sfp

main() verify()

user

256 bytes

slide-11
SLIDE 11

&"xyzzy" user rip %esp %ebp %eip sfp #include <ctype.h> // tolower #include <string.h> // strcmp #include <stdio.h> // fgets, fputs void reveal_secret() { fputs("SUPER SECRET = 42\n", stdout); } int verify(const char* name) { char user[256]; int i; for (i = 0; name[i] != '\0'; ++i) user[i] = tolower(name[i]); user[i] = '\0'; return strcmp(user, "xyzzy") == 0; } int main() { char login[512]; fgets(login, 512, stdin); if (! verify(login)) return 1; reveal_secret(); return 0; } i login login f4 c8 f2 a9 sfp

main() verify()

user

256 bytes

slide-12
SLIDE 12

sfp &"xyzzy" user rip %esp %ebp %eip sfp #include <ctype.h> // tolower #include <string.h> // strcmp #include <stdio.h> // fgets, fputs void reveal_secret() { fputs("SUPER SECRET = 42\n", stdout); } int verify(const char* name) { char user[256]; int i; for (i = 0; name[i] != '\0'; ++i) user[i] = tolower(name[i]); user[i] = '\0'; return strcmp(user, "xyzzy") == 0; } int main() { char login[512]; fgets(login, 512, stdin); if (! verify(login)) return 1; reveal_secret(); return 0; } i login login sfp

main() verify()

user

256 bytes

slide-13
SLIDE 13

sfp login login sfp

main()

&"xyzzy" user rip %esp %ebp %eip sfp #include <ctype.h> // tolower #include <string.h> // strcmp #include <stdio.h> // fgets, fputs void reveal_secret() { fputs("SUPER SECRET = 42\n", stdout); } int verify(const char* name) { char user[256]; int i; for (i = 0; name[i] != '\0'; ++i) user[i] = tolower(name[i]); user[i] = '\0'; return strcmp(user, "xyzzy") == 0; } int main() { char login[512]; fgets(login, 512, stdin); if (! verify(login)) return 1; reveal_secret(); return 0; } i

verify()

user

256 bytes

slide-14
SLIDE 14

sfp login login sfp

main()

%esp %ebp %eip #include <ctype.h> // tolower #include <string.h> // strcmp #include <stdio.h> // fgets, fputs void reveal_secret() { fputs("SUPER SECRET = 42\n", stdout); } int verify(const char* name) { char user[256]; int i; for (i = 0; name[i] != '\0'; ++i) user[i] = tolower(name[i]); user[i] = '\0'; return strcmp(user, "xyzzy") == 0; } int main() { char login[512]; fgets(login, 512, stdin); if (! verify(login)) return 1; reveal_secret(); return 0; } stdout &"SUPER…" rip

fputs()

f p u t s

slide-15
SLIDE 15

sfp %esp %ebp %eip #include <ctype.h> // tolower #include <string.h> // strcmp #include <stdio.h> // fgets, fputs void reveal_secret() { fputs("SUPER SECRET = 42\n", stdout); } int verify(const char* name) { char user[256]; int i; for (i = 0; name[i] != '\0'; ++i) user[i] = tolower(name[i]); user[i] = '\0'; return strcmp(user, "xyzzy") == 0; } int main() { char login[512]; fgets(login, 512, stdin); if (! verify(login)) return 1; reveal_secret(); return 0; } 0ad339ea stdout sfp

main()

... dd65b287 &"SUPER…"

512 bytes

rip

fputs()

f p u t s

SUPER SECRET = 42