작성자: 지현근
IDA를 통해 ShowFlag 함수를 살펴보면 "\\PJ\\fC|)L0LTw@Yt@;Twmq0Lw|qw@w2$a@0;w|)@awmLL|Tw|)LwZL2lhhL0k"
누가봐도 플래그를 암호화 시킨 문자열을 제공해준다.
이후 조금만 더 분석하면 암화화 시키는 로직을 발견할 수 있다.
대충 복구시켜 돌리면 플래그가 나온다.
#include <stdio.h>
int main(){
printFlag("\\PJ\\fC|)L0LTw@Yt@;Twmq0Lw|qw@w2$a@0;w|)@awmLL|Tw|)LwZL2lhhL0k");
return 0;
}
void printFlag(char *param_1){
char *__dest;
size_t sVar1;
int local_30;
__dest = (char *)malloc(0x40);
memset(__dest,0,0x40);
strcpy(__dest,param_1);
sVar1 = strlen(__dest);
local_30 = 0;
while (local_30 < (int)sVar1) {
__dest[local_30] = (char)((int)((((int)__dest[local_30] ^ 0xfU) - 0x1d) * 8) % 0x5f) + ' ';
local_30 = local_30 + 1;
}
puts(__dest);
return;
}
TUCTF{7h3r35_4lw4y5_m0r3_70_4_b1n4ry_7h4n_m3375_7h3_d3bu663r}
'CTF 중점 스터디' 카테고리의 다른 글
Protostar heap1 Writeup (0) | 2019.12.09 |
---|---|
Pwnable.kr asm Write-up (0) | 2019.12.08 |
N00bCTF_very ezzzzz!!_정세인 (0) | 2019.12.01 |
protostar_heap0 Write_up (0) | 2019.12.01 |
Wargame.kr_tmitter_Write up (0) | 2019.12.01 |