Hacking & Security/Malicious code and Reversing

clop - binary analysis(복호화 진행하기)

choideu 2022. 7. 21. 14:03

암호화 된 부분을 복호화하는 방법

 

IDA code

암호화 시작 부분은 v17 = aK_J이다.

 

해당 부분의 주소를 확인하면 0010C6이 나오고 해당 주소를 ollydbg(+400000)한 결과인 004010C6으로 이동한다.

ollydbg에서 해당 주소로 가보면 MOV [EBP-44] signed.0040831C 명령어가 있다. 해당 명령어는 파라미터에 변수를 넣는 =과 역할이 같다.

*MOV is =

 

0040831C는 앞에 aK_J에 해당한다.

 

그리고 나서 for문을 도는데 for문은 아래 형광펜으로 표시한 곳에 해당한다.

여기서 > 표시는 loop가 끝났음을 의미한다.

값을 넣어주는 부분을 클릭하면(v26) 아래 0000119C라는 주소가 나온다.

 

ollydbg에서 이 주소는 마지막 JMP위에 MOV가 있는데 여기 EDX값을 ECX+EAX*4로 넣고 있는 부분이다.

 

그래서 dump창에서 ctrl + G를 이용해서 ECX+EAX*4로 이동한다.

해당 loop 를 돌때마다 여기에 값이 써지는 것을 확인할 수 있다.

 

써진 부분을 드래그해서 오른쪽 클릭후 binary -> binary copy로 저장하면 binary 파일을 만들 수 있고 해당 파일을 또 IDA에서 분석하면 된다.

 

Tip)

ollydbg

- F2(breakpoint)를 걸고 실행 or F4를 사용해서 해당 cursor가 위치한 곳으로 이동

- file창을 누르고 open을 누르면 파라미터를 입력해서 파일을 열 수 있음(단축키는 F3)

IDA

- p(강제적 함수 만들기_ida에서 해당 함수를 인식못했을 때 함수로 만들어주는 것임) , F5(pseudocode 보여주기)

- 역슬래시(좀 더 깔끔하게 보임)

왼쪽이 하기 전, 오른쪽이 한 후임