Facebook
From mc, 3 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 77
  1. ulong TestFlagi(void)
  2.  
  3. {
  4.   char cVar1;
  5.   uint uVar2;
  6.   FILE *__stream;
  7.   long lVar3;
  8.   eh_frame_hdr *peVar4;
  9.   eh_frame_hdr *peVar5;
  10.   ulong uVar6;
  11.   byte *pbVar7;
  12.   char *pcVar8;
  13.   ulong uVar9;
  14.   long in_FS_OFFSET;
  15.   byte bVar10;
  16.   undefined auVar11 [16];
  17.   undefined auVar12 [16];
  18.   undefined auVar13 [16];
  19.   byte bStack448;
  20.   char acStack444 [4];
  21.   undefined2 uStack440;
  22.   char acStack424 [256];
  23.   char user_input [64];
  24.   byte abStack104 [72];
  25.   long local_20;
  26.  
  27.   bVar10 = 0;
  28.   local_20 = *(long *)(in_FS_OFFSET + 0x28);
  29.   puts("what\'s the flag?");
  30.   fgets(user_input,0x40,stdin);
  31.   lVar3 = 0x40;
  32.   pcVar8 = user_input;
  33.   do {
  34.     pcVar8 = pcVar8;
  35.     if (lVar3 == 0) break;
  36.     lVar3 = lVar3 + -1;
  37.     pcVar8 = pcVar8 + (ulong)bVar10 * -2 + 1;
  38.     cVar1 = *pcVar8;
  39.     pcVar8 = pcVar8;
  40.   } while (cVar1 != '\n');
  41.   pcVar8[-1] = '\0';
  42.   __stream = fmemopen((void *)0x0,0x100,"w+");
  43.   uVar2 = 0x1f;
  44.   while (0x1ca08425U >> uVar2 == 0) {
  45.     uVar2 = uVar2 - 1;
  46.   }
  47.   fprintf(__stream,"%0*o24\n%n",(ulong)uVar2,0xb60a2e8f);
  48.   fseek(__stream,0,0);
  49.   __isoc99_fscanf(__stream,&DAT_00102022,acStack444);
  50.   uStack440._0_1_ = acStack444[0];
  51.   uStack440._1_1_ = bStack448;
  52.   auVar11 = (undefined  [16])0x5f3032667463616e;
  53.   auVar13 = (undefined  [16])0x706050403020100;
  54.   lVar3 = 0x20;
  55.   do {
  56.     auVar12 = pshufb(auVar13,auVar11);
  57.     auVar11 = pshufb(auVar11,auVar11);
  58.     auVar13 = CONCAT115(SUB161(auVar13 >> 0x78,0) + '\x10',
  59.                         CONCAT114(SUB161(auVar13 >> 0x70,0) + '\x10',
  60.                                   CONCAT113(SUB161(auVar13 >> 0x68,0) + '\x10',
  61.                                             CONCAT112(SUB161(auVar13 >> 0x60,0) + '\x10',
  62.                                                       CONCAT111(SUB161(auVar13 >> 0x58,0) + '\x10',
  63.                                                                 CONCAT110(SUB161(auVar13 >> 0x50,0)
  64.                                                                           + '\x10',CONCAT19(SUB161(
  65.                                                   auVar13 >> 0x48,0) + '\x10',
  66.                                                   CONCAT18(SUB161(auVar13 >> 0x40,0) + '\x10',
  67.                                                            CONCAT17(SUB161(auVar13 >> 0x38,0) +
  68.                                                                     '\x10',CONCAT16(SUB161(auVar13
  69.                                                   >> 0x30,0) + '\x10',
  70.                                                   CONCAT15(SUB161(auVar13 >> 0x28,0) + '\x10',
  71.                                                            CONCAT14(SUB161(auVar13 >> 0x20,0) +
  72.                                                                     '\x10',CONCAT13(SUB161(auVar13
  73.                                                   >> 0x18,0) + '\x10',
  74.                                                   CONCAT12(SUB161(auVar13 >> 0x10,0) + '\x10',
  75.                                                            CONCAT11(SUB161(auVar13 >> 8,0) + '\x10',
  76.                                                                     SUB161(auVar13,0) + '\x10'))))))
  77.                                                   )))))))));
  78.                     /* WARNING: Store size is inaccurate */
  79.     *(undefined *)(&uStack440 + lVar3 * 4) = auVar12;
  80.     lVar3 = lVar3 + -2;
  81.   } while (lVar3 != 0);
  82.   fclose(__stream);
  83.   peVar4 = (eh_frame_hdr *)&DAT_001020a0;
  84.   pbVar7 = abStack104;
  85.   do {
  86.     peVar5 = (eh_frame_hdr *)&peVar4->eh_frame_pointer_encoding;
  87.     uVar6 = (ulong)(byte)((((char)uStack440 + '\x01') - (char)abStack104) + (char)pbVar7);
  88.     uStack440._1_1_ = uStack440._1_1_ + acStack424[uVar6];
  89.     uVar9 = (ulong)uStack440._1_1_;
  90.     cVar1 = acStack424[uVar9];
  91.     acStack424[uVar9] = acStack424[uVar6];
  92.     acStack424[uVar6] = cVar1;
  93.     *pbVar7 = cVar1 + acStack424[uVar9] ^ peVar4->eh_frame_hdr_version;
  94.     peVar4 = peVar5;
  95.     pbVar7 = pbVar7 + 1;
  96.   } while (peVar5 != &eh_frame_hdr_001020d8);
  97.   uStack440 = CONCAT11(uStack440._1_1_,(char)uStack440 + '8');
  98.   uVar2 = strncmp(user_input,(char *)abStack104,0x38);
  99.   if (uVar2 == 0) {
  100.     puts("good job!");
  101.   }
  102.   else {
  103.     uVar2 = 1;
  104.     puts("nope, not this time!");
  105.   }
  106.   if (local_20 != *(long *)(in_FS_OFFSET + 0x28)) {
  107.                     /* WARNING: Subroutine does not return */
  108.     __stack_chk_fail();
  109.   }
  110.   return (ulong)uVar2;
  111. }