Reversing/Reversing.kr

[Reversing.kr]Ransomware

dcho 2019. 7. 25. 23:20
SMALL
처음에 ransomware 파일을 실행시켜보았다.


아무렇게나 Key를 입력하고 보니 응(?) 파일을 복구했다고 한다. 
근데 보니 올바른 키값을 받아야 정상화가 되고 잘못된 키값을 넣으면 파일이 망가진다고 한다. 

무슨소린고 하고 readme를 보았다.

이게 아마 힌트인듯 싶다 복호화 해야하고 EXE ..

일단 실행파일 EXE파일을 리버싱하기위해 보니 안되는 부분이 많았다. 

그래서 검색을 통해 다음과 같은 툴을 이용하게 되었다. 

  • Exeinfo PE 는 A.S.L 이 만든 소프트웨어이며, 프리웨어 버전 이라고 되있는걸 보아하니 유료 버전도 있는 것 같다. 본 소프트웨어는 PEiD 와 같은 분석 툴이며, 실행 후 드래그&드롭 으로 간편하게 해당 프로그램이 어느 언어로 컴파일 되었는지, 또 패킹, 크립팅, 프로텍팅 여부와 어느 툴에 의해 패킹되었는지 볼 수 있다.

  • PEiD 도 유명한 편이지만 ExeInfo PE 가 PEiD 보다 볼 수 있는 정보가 많다고 알고있다.


요런식으로 정보를 수집!

여기서 패킹과 언패킹에 대해 공부를 하고 다음으로 진행하였다.

UPX로 패킹이 되어있으므로 언패킹을 진행을 해줄것이다.

UPX를 이용하여 언패킹 진행!




친절하게 다 나오는 Exeinfo PE 짱짱

.text 이 뭐지 텍스트?? 찾아보다가 PE File Format에서 본것 같다고 생각이 들었다.


오홍 그러면 IAT는 뭘까? 

나뭇잎 책에서 가라사대 PE 헤더를 처음 배울 때 최대 난관이 IAT(Import Address Table)이라고 하신다..
  • IAT에는 Windows 운영체제의 핵심 개념인 process, memory, DLL 구조 등에 대한 내용이 함축되어 있다. 
  • 즉, IAT만 잘 이해해도 Windows 운영체제의 근간을 이해한다고 할 수 있다.
  • IAT란 쉽게 말해서 프로그램이 어떤 라이브러리에서 어떤 함수를 사용하고 있는지 기술한 테이블

자세한건 나뭇잎 책에서 읽어 보았고 나중에 필요한 지식이겠거니 하고 다음으로 넘어간다.

일단 PE 구조에 대해 알아보았을때 PE Header 부분중 DOS Header가 있다 
거기서 알아볼 수 있는 부분은 모든 PE파일은 시작부분 (e_magic)의 DOS signature(MZ)가 존재. 라고 모든에 중점을 맞추고 보았다. 

run.exe PE 파일에도 MZ가 존재했다. 


그렇다면 이제 디버거로 분석을 할 차례!

기본적으로 문자열을 출력하고 입력을 받는 부분인 main을 찾기위해 수많은 스텝인, 오버를 거친 끝에... 


찾...았...다...  앞에 쓰레X같은 hum.. 무튼 

이제 진짜 시작!

쭉 따라가다가 

반복문 중 file을 열고 무엇을 하는데 AL에 보니 file 헥스값이 있다.


요런식으로 0x5415B8 부터(진짜 이것을 못찾아서 고생을 너무 많이 했다..)
 읽기 모드로 file 을 가져와서 헥스 값들을 차례대로 메모리에 저장한다.


그 다음 반복문을 보니 내가 넣은 key 랑 xor 등등 이것저것 해서 암복호화 하는것 같다 
그런 담에 아까 불러온 file 이 메모리에 저장되어있는 값을 바꾼다!!



보아하니 아래 전에서는 쓰기모드로 file을 불러왔었다. 
그리고 지금 보는 코드는 집어 넣고 즉시 변환한다. 
즉, 틀리면 망가지고 맞으면 정상으로 되겠지? 



이제 해야할 것은 어떻게 복호화 할지 생각해야 하는데 

이 힌트를 보면 복호화된 파일은 EXE 파일이라고 예상해 볼 수 있다.

key값의 길이를 구하기 위해 file 에서 반복되는 부분의 길이를 구할수 있다. (라업을 참고했다.. 그 이유는 흠 더 공부하는걸로)


file 과 run 파일에서 처음 위치에 있는 13글자를 이용해 복호화를 진행하였다.



exe 파일로 변경후 정상적인 PE파일 DOS Signature 를 가진것을 확인했다. 


그런데 이게 끝이 아닌줄 알았지만 확인해보니 끝날때까지 끝난게 아니였다. 
upx .. 언패킹을 해준다.



결과는 대성공!






'Reversing > Reversing.kr' 카테고리의 다른 글

[Reversing.kr]Direct3D FPS  (0) 2019.07.30
[Reversing.kr]ImagePrc  (0) 2019.07.26
[Reversing.kr]Easy_KeygenMe  (0) 2019.07.25
[Reversing.kr]Position (미완성)  (0) 2019.07.24
[Reversing.kr]Easy_CrackMe  (0) 2019.07.24