1. 程式人生 > >bugku ctf 奇怪的密碼

bugku ctf 奇怪的密碼

一、題目正文:

突然天上一道雷電

gndk€rlqhmtkwwp}z

二、分析題目

gndk€rlqhmtkwwp}z這個格式像不像flag{*******}?

我們比較一下"gndk"與"flag"的ASCII碼

gndk的10進位制的ASCII碼分別是:103 110 100 107

flag的10進位制的ASCII碼分別是  :102 108  97  103

發現ASCII以此減少 1 2 3 4,所以以此類推

c語言解密本子:

#include<stdio.h>
#include<string.h>
int main(){
    int i;
    char a[100];
    printf("請輸入被雷劈過的字串:\n");
    scanf("%s",a);
    printf("解密得:\n");
    for(i=0;i<strlen(a);i++){
        a[i]=a[i]-(i+1);
        printf("%c",a[i]);
    }
}

flag{lei_ci_jiami}

當然python最簡單,但是不知道怎麼處理'€'這個字元,暫時換成別的字元,最後在換成'{'

# -*- coding:utf-8 -*-
c="gndk{rlqhmtkwwp}z"
i=0
flag=""
while i < len(c):
	num=ord(c[i])-(i+1)
	flag+=chr(num)
	i+=1

print "解密:",flag


flag{lei_ci_jiami}