히공

ShaktiCTF 2021 - hack 본문

write up/ShaktiCTF 2021

ShaktiCTF 2021 - hack

heegong 2021. 4. 5. 09:33
728x90

문제

 

 

int __cdecl main(int argc, const char **argv, const char **envp)
{
  int v4; // [rsp+8h] [rbp-28h]
  int i; // [rsp+Ch] [rbp-24h]
  char s[24]; // [rsp+10h] [rbp-20h] BYREF
  unsigned __int64 v7; // [rsp+28h] [rbp-8h]

  v7 = __readfsqword(0x28u);
  printf("Enter the string: ");
  __isoc99_scanf("%s", s);
  v4 = 1;
  if ( strlen(s) != 16 )
  {
    puts("I dont think so XD");
    exit(0);
  }
  for ( i = 0; s[i]; ++i )
  {
    if ( s[i] != (unsigned __int8)v2[i + 3] )
    {
      puts("Nope");
      exit(0);
    }
    ++v4;
  }
  if ( v4 == 17 )
    printf("Your Flag: shaktictf{%s}\n", s);
  return 0;
}

메인 함수

 

 

 

.data:0000000000201020 v2              dd 59h, 33h, 73h, 2 dup(5Fh), 48h, 34h, 63h, 4Bh, 5Fh
.data:0000000000201020                                         ; DATA XREF: main+92↑o
.data:0000000000201020                 dd 74h, 48h, 33h, 5Fh, 4Dh, 2 dup(30h), 6Eh, 2 dup(5Fh)
.data:0000000000201020                 dd 2 dup(21h), 5Fh, 48h, 6 dup(0)

v2

 

 

 

by = "59 00 00 00 33 00 00 00 73 00 00 00 5F 00 00 00 5F 00 00 00 48 00 00 00 34 00 00 00 63 00 00 00 4B 00 00 00 5F 00 00 00 74 00 00 00 48 00 00 00 33 00 00 00 5F 00 00 00 4D 00 00 00 30 00 00 00 30 00 00 00 6E 00 00 00 5F 00 00 00 5F 00 00 00 21 00 00 00 21 00 00 00 5F 00 00 00 48"
by = bytes.fromhex(by)

flag = ''
for i in by:
    if i!=0:
        flag+=chr(i)

flag = flag[3:3+16]
print("shaktictf{%s}"%flag)

간단하게 풀 수 있다.

 

 

플래그 : shaktictf{__H4cK_tH3_M00n_}

'write up > ShaktiCTF 2021' 카테고리의 다른 글

ShaktiCTF 2021 - Chunkies  (0) 2021.04.05
ShaktiCTF 2021 - PacMat  (0) 2021.04.05
ShaktiCTF 2021 - BomB  (0) 2021.04.05
ShaktiCTF 2021 - fusk  (0) 2021.04.05
ShaktiCTF 2021 - deceev  (0) 2021.04.05
Comments