List soal PWN untuk KSL Seleksi
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

73 lines
1.5 KiB

5 years ago
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. #include <unistd.h>
  5. int wallet = 18;
  6. char burung[8];
  7. void secret_message(){
  8. system("/bin/sh");
  9. }
  10. void buy_flag(){
  11. if(wallet < 999999999999) printf("kamu terlalu lemah dude :)\n");
  12. else secret_message();
  13. }
  14. void jual_burung(){
  15. char buffer[64];
  16. printf("burung apa yang kamu mau jual ?\n");
  17. read(0,buffer,128);
  18. }
  19. void menu(){
  20. printf("+--------------------------------+\n");
  21. printf("------------PASAR BURUNG----------\n");
  22. printf("+--------------------------------+\n");
  23. printf("1. beli flag (999999 ruby)\n");
  24. printf("2. beli garuda (10 ruby)\n");
  25. printf("3. lihat burung yang udah di beli\n");
  26. printf("4. jual burung\n");
  27. printf("5. check wallet\n");
  28. printf("6. exit\n");
  29. }
  30. int main()
  31. {
  32. while(1){
  33. char pilihan;
  34. menu();
  35. printf(">>");
  36. fflush(stdout);
  37. scanf("%s",&pilihan);
  38. switch(pilihan){
  39. case '1' :
  40. buy_flag();
  41. break;
  42. case '2' :
  43. if(wallet > 10){
  44. printf("burung berhasil di beli\n");
  45. wallet = wallet - 10;
  46. strcpy(burung,"garuda");
  47. } else printf("uang gak cukup!\n");
  48. break;
  49. case '3' :
  50. if(strlen(burung) == 0) printf("belum ada yang kamu beli!\n");
  51. else printf("burung yg dah di beli : %s\n",burung);
  52. break;
  53. case '4' :
  54. jual_burung();
  55. break;
  56. case '5' :
  57. printf("isi wallet : %d ruby\n",wallet);
  58. break;
  59. case '6' :
  60. printf("makasih udah berkunjung :)\n");
  61. exit(0);
  62. break;
  63. default :
  64. fprintf(stderr,"bad request!\n");
  65. exit(0);
  66. }
  67. }
  68. }