본문 바로가기

Wargame/Reversing-W

(24)
reversing kr ransomware 주어진 zip파일을 풀면 이렇게 세개의 파일이 나온다. 일단 readme.txt 부터 열어보면파일을 Decrypt 하란다. 파일 종류는 exe인 것 같다. run.exe 을 실행하면 이런 화면이 뜬다.Key를 입력하면 그 Key를 가지고 Decrypt 하는건가보다.5천억을 진짜 입금할 순 없으니 살펴보자. 일단 이건 암호화 된 파일이다. 뭔지 하나도 모르겠다.. 대충 아무 값이나 넣고 진행을 해보자. 흔히 보던 모습이 모이는 것 같긴하다.. 올리디에 던져서 분석을 좀 진행해봤다.위 그림의 부분은 그렇게 중요하지는 않다.암호화된 파일을 하나씩 읽어오는 작업을 하는 부분이다. 이 부분이 진짜 중요한데, 읽어온 값하고 입력받은 키 값을 이용해서암호화된 파일을 복호화 시키는 것이다위의 코드를 대충 정리하자면복호..
reversing kr ImagePrc ImagePrc.exe 파일이다. 실행시키면 그림을 그릴 수 있다.아무그림이나 대충 그려보자. 당연히 틀렸다고 말한다. 문자열 검색을 해보니 Wrong 도 있고Button도 있고.. 일단 저쪽으로 가보자 무언가 15F90의 크기만큼 계속 비교한다.그림의 15F90 크기만큼 비교한 뒤에, 맞으면 Wrong을 출력하지 않는 프로그램이다. BitBlt는 프로그램내에 저장되있는 비트맵 이미지를 지정된 크기만큼 복사해서 윈도우의 지정된 좌표에다 그려라.라는 함수이다.한마디로, 여기 BitBlt 함수의 너비와 높이를 참고하면 프로그램에서 요구하는비트맵의 너비와 높이를 알 수 있다.너비는 C8(200), 높이는 96(150)이다.그래서 찾아가보면 정말로 15F90 크기 만큼의 데이터들이 파일 끝 부분에 붙어있다.이 ..
reversing kr Replace 처음 파일을 다운로드받으면 Replace.exe 파일 하나가 주어진다. 실행하면 이렇게 입력받는 부분이 있다. 아마 검사해서 맞으면 Correct 라고 띄워주겠지.유의할점은 숫자만 입력가능하다 공백도, 문자도 다 불가능하다. 아무 숫자나 입력하고 Check를 눌렀을때.. 뻑난다.. 올리디에 던져서 성공문을 찾아보았다. 없다.의심가는건 맨위의 h4`~~ 정도? GetDlgItemInt는 숫자를 받아오는 함수이다.입력을 숫자로만 할 수 있었으니까, 여기에 브레이크포인트를걸고 살펴보도록하자. GetDlgItemInt 함수에 브레이크포인트를 건 상태에서 1111을 입력하고Check를 눌러주었다. 걸렸다. 사진을 대충 설명하자면GetDlgItemInt 함수에서 받아온 숫자를4084D0 에 저장하고나서0040466..
reversing kr Music Player zip파일을 압축해제하면 다음과 같이 3개의 파일이 나온다. ReadMe.txt를 읽어보면 이 MP3 Player는 1분 제한이 있고, 1분 이상 재생하면 플래그를 얻는다고한다. 실행시켰다. 1분동안 듣고나니 1분 미리듣기만 가능하다고 메시지박스가 뜬다. 올리디로 던져서 MsgBox라는 함수에 모두 브레이크포인트를 잡아주었다.이제 저 미리듣기만 가능합니다. 라고 뜨는 부분에서 브레이크포인트가 잡히겠지 잡혔다. 바로 이 부분이다근데 어디서 시간을 검사하는건가?위아래로 조금씩 더 훑어보았다. 저 MsgBox 함수 조금 위 부분에 보면CMP EAX,0EA60 이 있다.16진수 EA60은 10진수로 60000이다. 즉 1분이다이 부분을 1분보다 초과되도록 바꿔주자 필자는 FA60으로 바꾸어주었다. 하지만 EA6..
reversing kr Easy ELF elf 파일이다. elf 파일은 리눅스상에서 쓰여지는 파일 형식이다. elf다.. 하.. 올리디는 당연히 안되서 IDA로 열어보았다. 열자마자의 사진이다. 별로 중요하지않다. 이곳이 바로 입력받은걸 토대로 하나하나 비교해주는 곳이다.대충 정리하자면 5개의 문자를 비교한다.입력받은 5개의 문자를 연산한뒤에 비교한다.첫번째 34 ^ 78두번째 31세번째 7c ^ 32네번째 dd ^ ffffff88다섯번째 58 ^ 0이렇다.이걸 토대로 코드를 짜서 해결하였다. 12345678910string = [] string.append(chr(0x34 ^ 0x78))string.append(chr(0x31))string.append(chr(0x7c ^ 0x32))string.append(chr(0xdd ^ 0x88))s..
reversing kr Easy Unpack 받은 zip 파일을 풀면 사진과 같이 두개의 파일이 있다. ReadMe.txt 부터 읽어보면OEP를 찾으란다. 언팩하라는 말이다. 실행하면 아~~~무것도 안뜬다. peid로 올려보아도 Nothing found이다. 올리디버거에 던져보면, 엄청난 코드들이 등장한다.하지만 언패킹에서 중요한 것 한 가지를 기억하자.맨 마지막에 JMP문으로 OEP로 돌아간다는 것! 그래.. 제일 밑으로 내려가서 JMP문을 찾아보자... JMP문을 찾았다. OEP로 가는곳이다.여기에 브레이크포인트를 설치하고 쭉 실행시키고 OEP로 넘어가자. OEP를 찾았다. 끝.
reversing kr Easy Keygen zip파일을 받아서 압축을 풀면 사진과 같은 두 파일이 들어있다. ReadMe.txt부터 읽어보면시리얼이 5B134977135E7D13 일때의 이름을 찾으라고한다. 일단 실행해서 Name에 p3ngdump, Serial에 1234를 넣어줘봤다.틀렸다고한다. 올리디버거로 던져서 메인부분으로 들어와보면왼쪽 밑 부분에 Wrong, Correct 등등의 문자열이 보인다.저 곳으로 넘어가서 함수를 분석해보자. 스트링 검색으로 Correct 부분의 함수를 찾았다.그 곳으로 넘어가보자. 함수의 시작부이다.이름을 입력받는다. 딱히 다른일은 하지 않는다. 이름을 입력받고 나서 그 이름으로 무슨 연산을 계속 한다.xor을 해주고, or을 해주고.. 분석해보자면, 이름의 첫 문자부터 끝 문자까지 ecx의 값과 xor을 해준..
reversing kr Easy Crack 파일을 처음 다운로드받으면 위 사진과 같은 파일이 주어진다. 일단 실행시켜보면, 무언가를 입력받고 확인을 누르게끔 되어있다.무언가 입력받고 확인을 누르면 안에서 키와 비교를 거치고 성공문과 실패문을 출력해준다. 일단 키를 모르니까 1234라고 입력해주고 확인을 눌러봤다. 틀렸댄다. 당연한거다. 틀렸다. 이제 이 프로그램을 올리디로 던져서 내부 루틴을 한번 보도록하자 처음 올리디로 던지고 메인으로 넘어온 상태다.왼쪽 밑 부분을 살펴보면 Incorrect Password, Congratuation!! 이 보인다.저 곳을 찾아 이동해보도록 하자 스트링을 검색해보면 저렇게 떡하니 스트링들이 나와있다.저 곳으로 이동해서 저 함수 전체를 봐보도록 하자. 중요 부분만 보게되면004010B0에 입력받은 값과 61을 비..