sysmagic.c

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
void get_flag(){
        int fd ;
        int password;
        int magic ;
        char key[] = "Do_you_know_why_my_teammate_Orange_is_so_angry???";
        char cipher[] = {75925211166130981845408910030220485228317190,
126286210301110746660449149852303316763066};
        fd = open("/dev/urandom",0);
        read(fd,&password,4);
        printf("Give me maigc :");
        scanf("%d",&magic);
        if(password == magic){
                for(int i = 0 ; i < sizeof(cipher) ; i++){
                        printf("%c",cipher[i]^key[i]);
                }
        }
}
 
 
int main(){
        setvbuf(stdout,0,2,0);
        get_flag();
        return 0 ;
}  
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter

 

slv.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
def main():
 
        flag=""
 
        key="Do_you_know_why_my_teammate_Orange_is_so_angry???"
 
        cipher = [7592521116613098184540891003022048522831719012628
6210301110746660449149852303316763066]
 
        for i in range(0len(cipher)):
 
                flag += chr(ord(key[i]) ^ cipher[i])
 
        print (flag)
 
 
 
if __name__ == '__main__':
 
        main()
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter

이렇게 python으로 짜서 flag값을 구해도 되고

디버깅으로 조건문을 맞춰줘도 flag값이 나온다.

'System > Hitcon training' 카테고리의 다른 글

190403-lab6  (0) 2019.04.03
190403-lab5  (0) 2019.04.03
190403-lab4  (0) 2019.04.03
190403-lab3  (0) 2019.04.03
190403-lab2  (0) 2019.04.03

+ Recent posts