본문 바로가기

분류 전체보기

(53)
About Me [First. 기본사항]이름 : 안알려줌드림핵 닉네임 : 쪼는거위E-mail : yj5062o24@gmail.comInstagram : @security_yoonj00.workBlog1 : https://velog.io/@y00nzoo/postsBlog2 : here. > 관심분야 : Cyber Threat Intelligence, Reversing, Digital Forensic [Second. 학력사항]2019.02 : 혜원여자고등학교 졸업2019.03 ~ 2022.02 : 서일대학교 컴퓨터공학과 전문학사2023.03 ~ ing : 이화여자대학교 사이버보안학과 학사 4학년 재학 중 [Third. 활동경력사항]2023.03 ~ ing : 교내 단과대 소속 사이버보안학과 동아리 EVI$ION 활동 중 (..
dreamhack : Collect Me writeup https://dreamhack.io/wargame/challenges/672 Collect MeDescription 이 문제에서 주어지는 프로그램은 이름이 func_n() 형태인 함수들을 가지고 있습니다. func_0()부터 func_927()까지 총 928개 함수가 있습니다. 각 함수는 char형 지역 변수 1개씩을 가지고 있습dreamhack.io 푸는중
dreamhack : secure-mail writeup https://dreamhack.io/wargame/challenges/92 Secure MailDescription 중요한 정보가 적혀있는 보안 메일을 발견하였습니다. 보안 메일의 비밀번호는 생년월일 6자리인 것으로 파악되나, 저희는 비밀번호 정보를 가지고 있지 않습니다. 비밀번호를 알아내dreamhack.io 이미지에 난독화되어있는 메일을 확인할 수 있는데생년월일이면 브루트 포스해도 괜찮을 것 같다.하지만 나는 자바스크립트 코드를 모르기 때문에남의 블로그 브루트포싱하는 자바스크립트를 분석할 것이다.(자바스크립트 공부⭐) window.alert = function ( text ) { console.log( 'tried to alert: ' + text ); return true; };위 코드는 웹 페이..
dreamhack : rev-basic-8 write-up https://dreamhack.io/wargame/challenges/22 rev-basic-8Reversing Basic Challenge #8 이 문제는 사용자에게 문자열 입력을 받아 정해진 방법으로 입력값을 검증하여 correct 또는 wrong을 출력하는 프로그램이 주어집니다. 해당 바이너리를 분석하여 correct를 출dreamhack.io step1. main 함수 분석입력을 받고, 해당 값이 맞으면 "Correct" 틀리면 "Wrong" 출력 step2. main 함수 내부 함수 분석sub_140001000함수 if문에 (unsigned __int8)(-5**(_BYTE *)(a1+i)) != byte_140003000[i]가 거짓이겠끔 파이썬을 구현해줘야함 step3. 역연산unsigne..
dreamhack : rev-basic-6 writeup https://dreamhack.io/wargame/challenges/20 rev-basic-6Reversing Basic Challenge #6 이 문제는 사용자에게 문자열 입력을 받아 정해진 방법으로 입력값을 검증하여 correct 또는 wrong을 출력하는 프로그램이 주어집니다. 해당 바이너리를 분석하여 correct를 출dreamhack.io step1. main함수 분석입력하고 입력값이 맞으면 Correct, 틀리면 Wrong 출력하는 함수이다. step2. main 내부 함수 분석sub_140001000함수8비트 값을 byte_140003020 배열의 인덱스로 사용하고 있음. 해당 인덱스 위치에서 값을 가져옴byte_140003020 data는 아래와 같음byte_140003000은 0~18..
dreamhack : rev-basic-4 write-up step1. main 함수 분석알맞은 입력을 한다면 Correct 출력되고, 올바르지 않다면 Wrong이다. step2. main 내부 함수 분석__int64 __fastcall sub_140001000(__int64 a1){ int i; // [rsp+0h] [rbp-18h] for ( i = 0; (unsigned __int64)i > 4)) != byte_140003000[i] ) return 0i64; } return 1i64;}if문 중심으로 보쟈지피티 출처>>>a1 주소로부터 i 바이트 떨어진 위치의 값을 _BYTE로 읽어옵니다.읽어온 값을 16배(읽어온 값을 4비트 오른쪽으로 시프트(>> 4)합니다.두 연산의 결과를 OR 연산(|)으로 결합합니다.결합된 결과를 byte_140..
dreamhack : rev-basic-2 write-up step1. main 함수 분석input 문자열 출력하고입력을 받는 것으로 보인다.입력받은게 맞다면 correct 틀리면 wrong을 출력한다.sub_140001210과 sub_140001000을 알아보자. Step2. main 내부 함수 분석1. sub_140001210 함수 -> scanf 같음   2. sub_140001000 함수⭐이거 중요한 함수일듯  aC 배열의 4 * i 번째 위치에 있는 4바이트를 DWORD로 읽어옵니다.a1 주소로부터 i만큼 떨어진 위치의 1바이트를 unsigned __int8 타입으로 읽어옵니다.이 두 값을 비교합니다.만약 값이 같지 않으면 0을 반환합니다.aC배열이 중요한 것 같아서 들어가보았다.엇 저기에 있는 문자인가 해서DH{Comp4re_the_arr4y}이렇게 ..
dreamhack : simple-operation write-up Step1. main 함수 분석 main 함수에서 Random number와 Input 값을 XOR연산해주면 어떤 값이 나오는데연산 값과 "a0b4c1d7"같으면 "Congrats!"이 나오는 것으로 확인 이게 아니고for문을 살펴보면i=0일때, s[7-0] = s[7]을 s1[0]에 저장i=1일때, s[7-1] = s[6]을 s1[1]에 저장...i=5일때, s[7-5] = s[2]을 s1[5]에 저장i=6일때, s[7-6] = s[1]을 s1[6]에 저장i=7일때, s[7-7] = s[0]을 s1[7]에 저장거꾸로 저장하는 것을 알 수 있음!!!!저기 주어진 a04c1d7"이 아니라 거꾸로 "7d1c40a"이다. step2. 역연산XOR연산은 A ^ B = C이면 C ^ A = B을 만족.그리고 입력..