본문 바로가기

dreaMhack/Reverse Engineering

(12)
[드림핵] rev_basic_9 풀이/어셈블리어 해석 문제 파일을 다운로드받고 압축을 풀어준다 참고로 이번 문제는 내용이 많이 길고 복잡하지만 암호학 내용을 학습하기 좋은 문제이기 때문에 혼자 풀이해 본 뒤 내 풀이를 참고하는 식으로 보는 게 좋을 것 같다 1. x64bug 해석 본 함수의 코드들인데 여기에서 주목해야 할 점은 correct와 wrong을 출력해주는 부분이다 이 이전에 있는 함수에서 해당 문자열을 고를 반환값을 줬을 가능성이 높기 때문이다 call challo.7FF7C0A11000 따라서 위의 코드 속 함수 주소를 더블 클릭 해주면 우리가 해석해야하는 함수의 코드들이 나오게 된다 이 함수에서 쓰이는 어셈블리어 함수 종류 mov 두 번째에서 첫 번째로 데이터 이동 call 프로시저 호출 (함수 호출) movsxd 길이가 일치하지 않아도 이동..
[드림핵] rev_basic_2 풀이/어셈블리어 해석 문제 파일을 다운로드받고 압축을 풀어준다 1. x64bug 해석 본 함수의 코드들인데 여기에서 주목해야 할 점은 correct와 wrong을 출력해주는 부분이다 이 이전에 있는 함수에서 해당 문자열을 고를 반환값을 줬을 가능성이 높기 때문이다 call challo.7FF746F81000 따라서 위의 코드 속 함수 주소를 더블 클릭 해주면 우리가 해석해야하는 함수의 코드들이 나오게 된다 이 함수에서 쓰이는 어셈블리어 함수 종류 mov 두 번째에서 첫 번째로 데이터 이동 jmp 무조건 분기 movzx 길이가 일치하지 않아도 이동(빈 공간 0) jae 결과가 크거나 같으면 분기(부호화 안 된 수) movsxd 길이가 일치하지 않아도 이동(빈 공간 1) je 결과 값 0이면 분기(이동) cmp 두 인자 내용 비..
[드림핵] rev_basic_8 풀이/어셈블리어 해석 문제 파일을 다운로드받고 압축을 풀어준다 1. x64bug 해석 본 함수의 코드들인데 여기에서 주목해야 할 점은 correct와 wrong을 출력해주는 부분이다 이 이전에 있는 함수에서 해당 문자열을 고를 반환값을 줬을 가능성이 높기 때문이다 call challo.7FF614ED1000 따라서 위의 코드 속 함수 주소를 더블 클릭 해주면 우리가 해석해야하는 함수의 코드들이 나오게 된다 이 함수에서 쓰이는 어셈블리어 함수 종류 mov 두 번째에서 첫 번째로 데이터 이동 jmp 무조건 분기 movzx 길이가 일치하지 않아도 이동(빈 공간 0) jae 결과가 크거나 같으면 분기(부호화 안 된 수) movsxd 길이가 일치하지 않아도 이동(빈 공간 1) je 결과 값 0이면 분기(이동) sub 캐리 포함하지 않..
[드림핵] rev_basic_7 풀이/어셈블리어 해석 문제 파일을 다운로드받고 압축을 풀어준다 1. x64bug 해석 본 함수의 코드들인데 여기에서 주목해야 할 점은 correct와 wrong을 출력해주는 부분이다 이 이전에 있는 함수에서 해당 문자열을 고를 반환값을 줬을 가능성이 높기 때문이다 call challo.7FF675BB1000 따라서 위의 코드 속 함수 주소를 더블 클릭 해주면 우리가 해석해야하는 함수의 코드들이 나오게 된다 이 함수에서 쓰이는 어셈블리어 함수 종류 mov 두 번째에서 첫 번째로 데이터 이동 jmp 무조건 분기 movzx 길이가 일치하지 않아도 이동(빈 공간 0) jae 결과가 크거나 같으면 분기(부호화 안 된 수) movsxd 길이가 일치하지 않아도 이동(빈 공간 1) je 결과 값 0이면 분기(이동) sub 캐리 포함하지 않..
[드림핵] rev_basic_6 풀이/어셈블리어 해석 문제 파일을 다운로드받고 압축을 풀어준다 1. x64bug 해석 본 함수의 코드들인데 여기에서 주목해야 할 점은 correct와 wrong을 출력해주는 부분이다 이 이전에 있는 함수에서 해당 문자열을 고를 반환값을 줬을 가능성이 높기 때문이다 call challo.7FF799781000 따라서 위의 코드 속 함수 주소를 더블 클릭 해주면 우리가 해석해야하는 함수의 코드들이 나오게 된다 이 함수에서 쓰이는 어셈블리어 함수 종류 mov 두 번째에서 첫 번째로 데이터 이동 jmp 무조건 분기 movzx 길이가 일치하지 않아도 이동(빈 공간 0) jae 결과가 크거나 같으면 분기(부호화 안 된 수) movsxd 길이가 일치하지 않아도 이동(빈 공간 1) je 결과 값 0이면 분기(이동) sub 캐리 포함하지 않..
[드림핵] rev_basic_5 풀이/어셈블리어 해석 문제 파일을 다운로드받고 압축을 풀어준다 1. x64bug 해석 본 함수의 코드들인데 여기에서 주목해야 할 점은 correct와 wrong을 출력해주는 부분이다 이 이전에 있는 함수에서 해당 문자열을 고를 반환값을 줬을 가능성이 높기 때문이다 call challo.7FF6A2B91000 따라서 위의 코드 속 함수 주소를 더블 클릭 해주면 우리가 해석해야하는 함수의 코드들이 나오게 된다 이 함수에서 쓰이는 어셈블리어 함수 종류 mov 두 번째에서 첫 번째로 데이터 이동 jmp 무조건 분기 movzx 길이가 일치하지 않아도 이동(빈 공간 0) jae 결과가 크거나 같으면 분기(부호화 안 된 수) movsxd 길이가 일치하지 않아도 이동(빈 공간 1) je 결과 값 0이면 분기(이동) sub 캐리 포함하지 않..
[드림핵] rev_basic_4 풀이/어셈블리어 해석 문제 파일을 다운로드받고 압축을 풀어준다 1. x64bug 해석 본 함수의 코드들인데 여기에서 주목해야 할 점은 correct와 wrong을 출력해주는 부분이다 이 이전에 있는 함수에서 해당 문자열을 고를 반환값을 줬을 가능성이 높기 때문이다 call challo.7FF63A091000 따라서 위의 코드 속 함수 주소를 더블 클릭 해주면 우리가 해석해야하는 함수의 코드들이 나오게 된다 이 함수에서 쓰이는 어셈블리어 함수 종류 mov 두 번째에서 첫 번째로 데이터 이동 jmp 무조건 분기 movzx 길이가 일치하지 않아도 이동(빈 공간 0) jae 결과가 크거나 같으면 분기(부호화 안 된 수) movsxd 길이가 일치하지 않아도 이동(빈 공간 1) je 결과 값 0이면 분기(이동) sub 캐리 포함하지 않..
[드림핵] rev_basic_3 풀이/어셈블리어 해석 문제 파일을 다운로드받고 압축을 풀어준다 1. x64bug 해석 본 함수의 코드들인데 여기에서 주목해야 할 점은 correct와 wrong을 출력해주는 부분이다 이 이전에 있는 함수에서 해당 문자열을 고를 반환값을 줬을 가능성이 높기 때문이다 call challo.7ff77c961000 따라서 위의 코드 속 함수 주소를 더블 클릭 해주면 우리가 해석해야하는 함수의 코드들이 나오게 된다 이 함수에서 쓰이는 어셈블리어 함수 종류 mov 두 번째에서 첫 번째로 데이터 이동 jmp 무조건 분기 movzx 길이가 일치하지 않아도 이동(빈 공간 0) jae 결과가 크거나 같으면 분기(부호화 안 된 수) movsxd 길이가 일치하지 않아도 이동(빈 공간 1) je 결과 값 0이면 분기(이동) sub 캐리 포함하지 않..