CpawCTF Q20.[Crypto]Block Cipher
与えられたC言語のソースコードを読み解いて復号してフラグを手にれましょう。
暗号文:cpaw{ruoYced_ehpigniriks_i_llrg_stae}
crypto100.c
crypto100.cをダウンロードして、ソースコードを確認する。for文が1行になってたりするので、少しだけ見やすく修正。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char* argv[]){
int i;
int j;
int key = atoi(argv[2]);
const char* flag = argv[1];
printf("cpaw{");
for(i = key - 1; i <= strlen(flag); i+=key){
for(j = i; j>= i - key + 1; j--){
printf("%c", flag[j]);
}
}
printf("}\n");
return 0;
}
ソースコードを見ると、引数としてflagとkeyを渡してflagの文字列の順番を入れ替えているようだ。与えられた暗号文を見ると、keyとして4を渡すとよさそうなので、コンパイルして実行してみる。
$ gcc crypto100.c -o crypto100
$ ./crypto100 ruoYced_ehpigniriks_i_llrg_stae 4
cpaw{Your_deciphering_skill_is_great}
答え:cpaw{Your_deciphering_skill_is_great}
この記事が気に入ったらサポートをしてみませんか?