swamp journey writeup

2018. 4. 8. 23:280x07 CTF/[스스로 푼 것]

728x90

문제 의도 

UPX Unpacking 


문제 풀이 

1. 17자리문자열을 입력

2.  moduls = 14231234143212433LL (signed __int64)가 주어짐 

3. 17번 반복한다.

-> 조건 1. v3값은 moduls%10값이 되기 때문에 결과적으로 v3는 계속 변한다.

-> 변하는 값에 flag[i]를 뺀다

-> 그 결과 theresanotherstep이 되면 된다. 


코드

#include <stdio.h>

#include <stdlib.h>

#include <stdint.h>

unsigned char make_brute[] = { "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrsuvwxyzt" };

unsigned char over[] = { "theresanotherstep" };

int main()

{

unsigned char flag[18] = { 0 };

static  int64_t modulous = 14231234143212433LL;

__int64 subVal[17] = { 0 };

static int j = 0;

char result = 0;

// subVal 17개를 착착착 저장 

for (int i = 0; i < 17; i++)

{

subVal[i] = modulous % 10;

modulous /= 0xA;

}


// 저장된 subVal[i] 출력

for (int i = 0; i < 17; i++)

printf("%3d", subVal[i]);


for (int i = 0; i < 17; i++)

{

result = over[i] + subVal[i];

printf("%c", result);

result = 0; // init

}

//flag{wkitfudrpxkgsvviq}

return 0;


'0x07 CTF > [스스로 푼 것]' 카테고리의 다른 글

defcon 2015 babyecho  (0) 2018.04.09
swamp return writeup  (0) 2018.04.08
sunshine password writeup  (0) 2018.04.08
sunshine hackername writeup  (0) 2018.04.08
sunshine wrongbytes 시행착오  (0) 2018.04.08