2018. 4. 8. 23:28ㆍ0x07 CTF/[스스로 푼 것]
문제 의도
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 |